B
Blackie Beard
Guest
Here's one I've had problems with in the past, and never have
gotten a straight answer on...
I need to have an asynchronous output that toggles on with
one signal edge (not the clock), and stays on until another
signal (can be clocked reg output) goes away. Example
below with two such flops which are mutually exclusive:
assign #1 aout1 = ain1 & ~aout2 | hold & aout1;
assign #1 aout2 = ain2 & ~aout1 | hold & aout2;
When "hold" drops out, the output is supposed to drop.
In simulation this only works because of the #1. But when
synthesized for PLD, the #1 is ignored, and optimization is
hosing my flops. One flop is always on, the other is always
off. Yes, I'm stupid, I can't even make a flipflop. Although
this may not technically be a flipflop.
Perhaps there is some directive I'm not familiar with. I don't
want to have to do gates because I'm in Altera and those
LUT's could get messy.
Thanks,
BB
gotten a straight answer on...
I need to have an asynchronous output that toggles on with
one signal edge (not the clock), and stays on until another
signal (can be clocked reg output) goes away. Example
below with two such flops which are mutually exclusive:
assign #1 aout1 = ain1 & ~aout2 | hold & aout1;
assign #1 aout2 = ain2 & ~aout1 | hold & aout2;
When "hold" drops out, the output is supposed to drop.
In simulation this only works because of the #1. But when
synthesized for PLD, the #1 is ignored, and optimization is
hosing my flops. One flop is always on, the other is always
off. Yes, I'm stupid, I can't even make a flipflop. Although
this may not technically be a flipflop.
Perhaps there is some directive I'm not familiar with. I don't
want to have to do gates because I'm in Altera and those
LUT's could get messy.
Thanks,
BB