I work on Xilinx ISE, and my synthesis tool is XST and synplify.
I use verilog to write a Inverter Chain (delay ) like out = ~(~(~(~...in)).
But the circuit be synthesised cancel all the invorter.
How to synthesis out all the inverter chain I want?
Any suggestions will be appreciated!
Best regards,
Davy
You need to declare individual wires for each signal (not just a boolean expression with lots of ~ operators), and then use the KEEP constraint to prevent XST from optimizing them away.
I'm curious -- how will a delay help you build a random data generator?
Delays are usually bad things. Try modifying the design to eliminate the need for delays.
If you really need a half-clock delay, or a third-clock delay, or something like that, then I would consider using a frequency multiplier (such as Xilinx DCM) to increase the clock frequency, and then use it to clock a small shift register that delays the signal.
You can't built a true random number generator digitally.
You can build a pseudo-random number generator digitally. For example, a simple linear feedback shift register (LFSR) outputs a pseudo-random bit stream:
There are countless other pseudo-random number generators of varying quality. Search Google.