Špatný výkon a zároveň se snaží využít modulu opakovaně .. Help!

D

deepavlsi

Guest
Kód najít NSD ...
Chci najít NSD kód do Foll.Metoda ..
gcd (a_in, b_in, a_out, b_out)
(If ((b_in == 0) | | (b_in == 1))
(A_out = a_in;
b_out = b_in;
)
jiné
(Gcd (a_in, že jo b_in%); / / rekurzivní funkce
)
)

To je logika v C. .... ale v Verilog dont já vím, jak se repeadtedly volat modul modul, který ploutve a_in% b_in ..

Below is my Verilog kódu, plese mi říct, kde se mýlím ...
Kód:

Modul gcd (clk, start, a_in, b_in, a_out, b_out, uzavřená);

vstup clk;

vstup start;

příkon [31:0] a_in;

příkon [31:0] b_in;

Výstup reg [31:0] a_out = 0;

Výstup reg [31:0] b_out = 0;

Výstup reg done = 0;

reg [3:0] cnt = 0;

reg rst_in = 0;

reg rst_start;

integer, b;

drátu [31:0] výsledek;

drát recv = 0;Vždy @ (posedge CLK) begin

if (start) begin

<= a_in;

b <= b_in;cnt = 1;

konec

else if (b == 0 | | b == 1) begin

a_out <=;

b_out <= b;

uzavřená <= 1'b1;

cnt = 2;

konec

else if (cnt == 1) begin

rst_in <= 1;

cnt = 2;

konec

else if (recv == 1) begin

<= b;

b <= mod_gcd.result;

a_out <= 1;

rst_in <= 0;

cnt = 1;

koneckonecmodul mod_gcd (clk, start, rst_in, a, b, výsledek, recv);endmodule

 
Nazdar,
tento kousek kódu jsem dostal od čistého ...Verilog algoritmické úrovni modelu
Modul GCD_ALG;
Parametr Width = 8;
reg [š-1: 0] A_in, B_in, A, B, Y, Y_Ref;
reg [š-1: 0] A_reg, B_reg, Swap;
parametr GCD_tests = 6;
číslo N, M;
Prošel reg, FailTime;
SimResults integer;
/ / Declare paměti pole testovacích dat
/ / ----------------------------------
reg [š-1: 1] AB_Y_Ref_Arr [1: GCD_tests * 3];
//----------------------------------
/ / Model algoritmus NSD
//----------------------------------
Vždy @ (A nebo B)
begin: GCD
= A_in;
B = B_in;
if (! = 0 & & B! = 0)
while (B! = 0)
while (> = B) begin
= A - B;
Swap =;
A = B;
B = Swap;
konec
jiné
= 0;
Y =;
konec

 
nemíchejte blokování a jiné využití přiřazení na blokování vždy jeden blok.Myslím, že to je špatné kódování styl a to se nedoporučuje.

kromě toho, RTL jsou souběžné programování a jsou odlišné v porovnání s software kódování stylu.takže nemůžete opakovaně "CALL" jediného modulu.neexistuje žádná taková věc, jako je volání v RTL.

můžete instanci téhož modulu několikrát s různými instantní jméno ale tento modul bude i nadále vykonávat současně.

 
Díky hoši ... Myslím, že mám osvěžit hodně, než jsem se může dostat do Verilog kódování ...vypadá to, že jednoduché kódování, ale funguje úplně jinak ...řekni mi nějaké knihy, se může vztahovat i tak můžu začít chápat, co se kódu, a co ne ...

 

Welcome to EDABoard.com

Sponsor

Back
Top