Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
20704 Discussions

How the "PARAMETER"/"localparam" in verilog mapped to hardware?

HBhat2
New Contributor II
1,688 Views

Hi,

I have a very basic question regarding RTL and FPGA.

In RTL, generally we use parameter or localparam to define the design configuration.

My question is how this "PARAMETER' or "localparam" is mapped to FPGA primitives/hardware?

( in a way similar to a simple single bit sequential logic maps into a flip flop )

 

With Regards,

HPB

0 Kudos
3 Replies
sstrell
Honored Contributor III
1,353 Views

Parameters have to resolve to a fixed value at compile time, so the design is simply synthesized based on the parameter value used. If you're using a parameter, for example, to specify a bus width and you set the parameter to 8, enough resources will be used to implement an 8-bit wide bus.

 

#iwork4intel

0 Kudos
HBhat2
New Contributor II
1,353 Views

@sstrell​ ,

 

For example, I have a header pattern to send (localparam header = 0xA5A5), I will store this as local parameter and I will assign my databus for defined interval. (data_o <= header ;). As, data_o inferred into multiple D-flip flops, my specific question is how does the header will be inferred? Whether this localparam will be stored in block RAM or by means of any other primitives ?

 

With Regards,

HPB

0 Kudos
sstrell
Honored Contributor III
1,353 Views

For your example, it would probably be synthesized as just pull-ups and pulldowns since it's a constant value.

 

#iwork4intel

0 Kudos
Reply