Verilog problem Array dimensionering

M

mc_navman

Guest
Hej,

Jeg ønsker at indstille arraysize baseret på max værdi at være repræsenteret.Er dette muligt i verilog?
dvs

parameter CLK_DIV = 27.210;

reg [14 .. 0] CLK_DIV_REG; //<<-- hvordan indstiller jeg dette array-størrelse automatisk til, når jeg ændre parameter.

 
parameter CLK_DIV = 27.210;
reg [CLK_DIV-1: O] CLK_DIV_REG;

eller

parameter CLK_DIV = 27.210;
reg [31:0] CLK_DIV_REG [CLK_DIV-1: 0];

 
Tak.Men jeg arbejdede ud af hvordan man gør det i sidste ende.Dit eksempel vil give 27.209 bits til at repræsentere et tal, der er et stort antal.

Her er den måde, der virker.

parameter CLK_DIVISION_FACTOR = 131;
localparam DIV_BITS = clog2 (ADC_CLK_DIVISION_FACTOR);

/ / definerer clogb2 funktion
/ / denne funktion returnerer celing af log2 af input værdi
/ / Dvs log2 (200) returnerer 8 (8 bit til at repræsentere)
funktion integer clog2;
input [31:0] værdi;
begynd
værdi = værdi - 1;
for (clog2 = 0; værdi> 0; clog2 = clog2 1)
value = værdi>> 1;
ende
endfunction

funktionen skal være i modulet.Jeg bruger en »omfatte at medtage den i modulet.

 
det er umuligt at realisere dine hensigter

af en sådan skriftlig.tidlig assembler sprog

kan støtte en sådan skriftlig.

venlig hilsenmc_navman skrev:

Hej,Jeg ønsker at indstille arraysize baseret på max værdi at være repræsenteret.
Er dette muligt i verilog?

dvsparameter CLK_DIV = 27.210;reg [14 .. 0] CLK_DIV_REG; //<<-- hvordan indstiller jeg dette array-størrelse automatisk til, når jeg ændre parameter.
 
Jeg tror ikke, det er en god idé.hvis u behøver ikke at gøre dette. Jeg tror, du skal bruge indbyggede RAM i FPGA.

 

Welcome to EDABoard.com

Sponsor

Back
Top