keyboardcowboy
Member level 3

I am implementing an arithmetic block with a 2 flag pull interface. Random numbers from a test bench are pushed into this block with a 2 bit command which instructs the block what operation is to be performed on the input. I am done implementing all the functions, but I am stuck at the output interface of the block. The output is a 2 flag pull interface, the testbench can request data at any time. The 2 pull signals are "pullout" and "stopout". If the testbench issues a pullout signal then I am suppose to output result with stopout 0, otherwise stopout is one. The problem is that pullout can be of any duration, and when the pullout is high I have to provide the result and stopout 0 signal before it goes low. Please see the attached image for more clear picture.
In the image when the pullout goes high, I provide the result on the next positive edge of the clock but by that time pullout has gone low, and the output result is not considered, and i get an error message. I am required to use sequential, and synthesizable verilog.
In the image when the pullout goes high, I provide the result on the next positive edge of the clock but by that time pullout has gone low, and the output result is not considered, and i get an error message. I am required to use sequential, and synthesizable verilog.