Reply by Jim Wu March 30, 20052005-03-30
> > > There are two ways to synthesize a memory in an FPGA. One is to use > > > verilog's reg as you suggested, the other one is to use Vendor > Specific > > > Primitive. Using verilog's reg is the most portable one. It works > with > > > all FPGAs with little or no modification. But it takes valuable > space > > > in your FPGA logic that otherwise can be used for other purposes. > > > > Most of the synthesis tools are able to infer dedicated RAM blocks. > > With XST, how do I know that my code is synthesized to a RAM made from > the logic, or RAM made from the dedicated RAM blocks?
The synthesis report will tell you if the tool inferred RAM. Jim jimwu88NOOOSPAM@yahoo.com (remove capital letters) http://www.geocities.com/jimwu88/chips
Reply by Hendra March 30, 20052005-03-30
Jim Wu wrote:
> "Hendra" <u1000393@email.sjsu.edu> wrote in message > > There are two ways to synthesize a memory in an FPGA. One is to use > > verilog's reg as you suggested, the other one is to use Vendor
Specific
> > Primitive. Using verilog's reg is the most portable one. It works
with
> > all FPGAs with little or no modification. But it takes valuable
space
> > in your FPGA logic that otherwise can be used for other purposes. > > Most of the synthesis tools are able to infer dedicated RAM blocks.
With XST, how do I know that my code is synthesized to a RAM made from the logic, or RAM made from the dedicated RAM blocks? Hendra
Reply by Jim Wu March 28, 20052005-03-28
"Hendra" <u1000393@email.sjsu.edu> wrote in message
news:1112055725.715876.230210@l41g2000cwc.googlegroups.com...
> paulw@mmail.ath.cx wrote: > > Is it a good idea to use verilog's reg to declare a large block of > > memory and expect it will be synthesizable? > > There are two ways to synthesize a memory in an FPGA. One is to use > verilog's reg as you suggested, the other one is to use Vendor Specific > Primitive. Using verilog's reg is the most portable one. It works with > all FPGAs with little or no modification. But it takes valuable space > in your FPGA logic that otherwise can be used for other purposes.
Most of the synthesis tools are able to infer dedicated RAM blocks. Jim jimwu88NOOOSPAM@yahoo.com (remove capital letters) http://www.geocities.com/jimwu88/chips An
> alternative way is to instantiate Vendor Specific Primitive. This > method is not portable. You must instantiate different primitive for > different chips family and vendors. However, you will safe a lot of > space in your chips since instantiating a Vendor Specific Primitive > means you will use a dedicated memory in the chip, leaving the logic > free to be used for other purposes. > > Hendra >
Reply by Hendra March 28, 20052005-03-28
paulw@mmail.ath.cx wrote:
> Is it a good idea to use verilog's reg to declare a large block of > memory and expect it will be synthesizable?
There are two ways to synthesize a memory in an FPGA. One is to use verilog's reg as you suggested, the other one is to use Vendor Specific Primitive. Using verilog's reg is the most portable one. It works with all FPGAs with little or no modification. But it takes valuable space in your FPGA logic that otherwise can be used for other purposes. An alternative way is to instantiate Vendor Specific Primitive. This method is not portable. You must instantiate different primitive for different chips family and vendors. However, you will safe a lot of space in your chips since instantiating a Vendor Specific Primitive means you will use a dedicated memory in the chip, leaving the logic free to be used for other purposes. Hendra
Reply by Kevin Neilson March 28, 20052005-03-28
paulw@mmail.ath.cx wrote:
> Hi > > Someone must have ask this question before. Is it a good idea to use > verilog's reg > to declare a large block of memory and expect it will be synthesizable? > > > Thanks >
Most synthesizers will infer such a block as FPGA block memory if the HDL is written in a certain way. Look at the user's guide of your synthesizer for more details. -Kevin
Reply by March 28, 20052005-03-28
Hi

Someone must have ask this question before. Is it a good idea to use
verilog's reg
to declare a large block of memory and expect it will be synthesizable?


Thanks