J
Jaytersen
Guest
Hello everybody
i'm making a multiprocessor system in vhdl and i've come across a
problem. The thing is that when one of the processors try to get onto
the bus but someone else is using it, that processor will have to wait
for its turn. The processors(or rather microcontrollers) does not have
built in facilities for this, so i have to devise a way to make them
halt until the bus is free. The way i'm going, is to try and halt the
clock signal for the individual unit. However i'm having alot of trouble
doing this. The way i'm trying to do it is by making an entity with a
"clk" input(of course) and a "clk_o" output and two control signals
("start" and "stop"). Now: when "stop"(bus request) goes high, the clock
signal should be latched, and when "start" (bus granted) goes high the
"clk_o" should resume the clock.
One of the things i'm trying to avoid is the situation where the latched
clock signal was high for instance and then the "start" signal goes high
just before a rising clock edge, thereby getting a very fast change from
high to low and back to high again.
Another problem is how vhdl handles the fact that "clk_o" is not a
"real" clock signal. For instance i get a lot of warnings about "gated
clock signal" and "clock output driven by combinatorial logic" and stuff.
I'm using Xilinx web-pack 4.2 and the hardware is to be implemented on a
Spartan-2 fpga.
Any views on this would be highly appreciated.
--
Jay
i'm making a multiprocessor system in vhdl and i've come across a
problem. The thing is that when one of the processors try to get onto
the bus but someone else is using it, that processor will have to wait
for its turn. The processors(or rather microcontrollers) does not have
built in facilities for this, so i have to devise a way to make them
halt until the bus is free. The way i'm going, is to try and halt the
clock signal for the individual unit. However i'm having alot of trouble
doing this. The way i'm trying to do it is by making an entity with a
"clk" input(of course) and a "clk_o" output and two control signals
("start" and "stop"). Now: when "stop"(bus request) goes high, the clock
signal should be latched, and when "start" (bus granted) goes high the
"clk_o" should resume the clock.
One of the things i'm trying to avoid is the situation where the latched
clock signal was high for instance and then the "start" signal goes high
just before a rising clock edge, thereby getting a very fast change from
high to low and back to high again.
Another problem is how vhdl handles the fact that "clk_o" is not a
"real" clock signal. For instance i get a lot of warnings about "gated
clock signal" and "clock output driven by combinatorial logic" and stuff.
I'm using Xilinx web-pack 4.2 and the hardware is to be implemented on a
Spartan-2 fpga.
Any views on this would be highly appreciated.
--
Jay