C
Cesar
Hello:
I've been always coding VHDL in 'data-flow' way. For my last module, I
tried to code it in 'one-process' style. Functional simulation was ok,
but post-synthesis simulation has different results. I use XST and
Modelsim and my device is a Spartan-3.
I've employed RTL viewer from Xilinx ISE 11.4 to check out the
synthesis results and I've discovered that there is a problem
inferring a block-RAM.
I only read the block-RAM (ROM). When reading, a block-RAM should
latch-in the address in the active clock edge and, after Tco, the data
should be output at DO. Synchronously speaking, reading the block-RAM
should imply one clock period delay.
When inferring the block-RAM in 'one-process' style, XST automatically
and always add a register for the address input and a register for the
data output (independently of the VHDL code you have).
This fact implies that functional simulation does not meet post-
synthesis one and adds an aditional clock period delay when reading
the block-RAM.
Does any body has have a similar problem? Any solution?
Unfortunally I think I'll have to recode my module in the old style :-
(
Regards,
César
I've been always coding VHDL in 'data-flow' way. For my last module, I
tried to code it in 'one-process' style. Functional simulation was ok,
but post-synthesis simulation has different results. I use XST and
Modelsim and my device is a Spartan-3.
I've employed RTL viewer from Xilinx ISE 11.4 to check out the
synthesis results and I've discovered that there is a problem
inferring a block-RAM.
I only read the block-RAM (ROM). When reading, a block-RAM should
latch-in the address in the active clock edge and, after Tco, the data
should be output at DO. Synchronously speaking, reading the block-RAM
should imply one clock period delay.
When inferring the block-RAM in 'one-process' style, XST automatically
and always add a register for the address input and a register for the
data output (independently of the VHDL code you have).
This fact implies that functional simulation does not meet post-
synthesis one and adds an aditional clock period delay when reading
the block-RAM.
Does any body has have a similar problem? Any solution?
Unfortunally I think I'll have to recode my module in the old style :-
(
Regards,
César