Kuka tahansa voi korjata tämä virhe?

H

hoangthanhtung

Guest
Tämä on koodin toteuttaa FIR on Verilog varten FPGA.
Olen simuloitava se qu (at) rtus 4,0 ja todeta, että tulos ei ole korjattu ensimmäisen syklin mutta korjattu toisen vaiheen.En voi selittää miksi?

Pidän minun simulointi tiedosto ja merkitse virheestä kahden jaksoissa.

Kuka tahansa voi auttaa minua?//************************************************ *********
/ / IEEE STD 1364-1995 Verilog Asiakirjatyyppi: fir_gen.v
/ / Tekijähaku-SÄHKÖPOSTI: Uwe.Meyer-Baese (at) ieee.org
//************************************************ *********
/ / Tämä on yleinen FIR suodatin generaattori
/ / Se käyttää W1 bittinen data / kertoimet bittiä
moduuli fir_gen (CLK, Load_x, x_in, c_in, y_out);
//------------------------------------------------ ---------
parametri W1 = 9, / / Input bittinen leveys
W2 = 18 / / Kerroin bittinen leveys 2 * W1
L = 4 / / Suodata pituus tai lukumäärä kosketa
W3 = 19, / / Lisätoiminto width = W2 log2 (L) -1
W4 = 11, / / Output bittinen leveys
Mpipe = 3; / / Pipeline vaiheet kerrannaisvaikutus

panos CLK, Load_x; / / std_logic
input [W1-1: 0] x_in, c_in; / / Panokset = 9 bittiä
tuotos [W4-1: 0] y_out; / / Tulokset tuotos 11 bittiä = 10 bittiä tiedot 1 bittiä signaali

reg [W1-1: 0] x;
lanka [W3-1: 0] y;

/ / 2D array tyypit eli muistoja ei tue MaxPlusII
/ / in Verilog, käytä siis yhden vektorit

reg [W1-1: 0] C0, C1, C2, C3; / / Kerroin array
lanka [W2-1: 0] p0, P1, P2, P3; / / Tuotteen array
reg [W3-1: 0] A0, A1, A2, A3; / / Lisätoiminto array

lanka [W2-1: 0] summa; / / Auxilary signaaleja
lanka clken, aclr;

//----> Kuormitustiedot tai Kerroin
aina @ (posedge CLK)
alkaa: Load
if (Load_x == 0)
aloittaa
/ / Kertoimet siirtää yksi
/ / Store kerroin rekisterin
c3 <= c_in;
c2 <= c3;
c1 <= c2;
C0 <= c1;
loppu
muuten
aloittaa
x <= x_in; / / Hanki yksi tieto näyte kerrallaan
loppu
loppu

//----> Compute sum-of-tuotteet
aina @ (posedge CLK)
alkaa: SOP
/ / Laske osaksi suodatin lisäyksiä
/ / W2 = 18: Multiplier bittinen leveys 2 * W1
A0 <= (p0 [W2-1], p0) a1;
a1 <= (p1 [W2-1], p1) a2;
a2 <= (p2 [W2-1], p2) a3;
a3 <= (p3 [W2-1], p3) 19'd00000; / / First TAP on vain rekisteriin
loppu
antaa y = A0;

/ / Instantiate L Liukuhihnakäsittelyä kerrannaisvaikutus
lpm_mult mul_0 / / kerrotaan x * C0 = p0
(. kellon (CLK),. dataa (x),. datab (C0),. tulos (p0));
defparam mul_0.lpm_widtha = W1;
defparam mul_0.lpm_widthb = W1;
defparam mul_0.lpm_widthp = W2;
defparam mul_0.lpm_widths = W2;
defparam mul_0.lpm_pipeline = Mpipe;
defparam mul_0.lpm_representation = "ALLEKIRJOITETUT";

lpm_mult mul_1 / / kerrotaan x * c1 = p1
(. kellon (CLK),. dataa (x),. datab (C1),. tulos (p1));
defparam mul_1.lpm_widtha = W1;
defparam mul_1.lpm_widthb = W1;
defparam mul_1.lpm_widthp = W2;
defparam mul_1.lpm_widths = W2;
defparam mul_1.lpm_pipeline = Mpipe;
defparam mul_1.lpm_representation = "ALLEKIRJOITETUT";

lpm_mult mul_2 / / kerrotaan x * c2 = p2
(. kellon (CLK),. dataa (x),. datab (C2),. tulos (p2));
defparam mul_2.lpm_widtha = W1;
defparam mul_2.lpm_widthb = W1;
defparam mul_2.lpm_widthp = W2;
defparam mul_2.lpm_widths = W2;
defparam mul_2.lpm_pipeline = Mpipe;
defparam mul_2.lpm_representation = "ALLEKIRJOITETUT";

lpm_mult mul_3 / / kerrotaan x * c3 = p3
(. kellon (CLK),. dataa (x),. datab (C3),. tulos (p3));
defparam mul_3.lpm_widtha = W1;
defparam mul_3.lpm_widthb = W1;
defparam mul_3.lpm_widthp = W2;
defparam mul_3.lpm_widths = W2;
defparam mul_3.lpm_pipeline = Mpipe;
defparam mul_3.lpm_representation = "ALLEKIRJOITETUT";

antaa y_out = y [W3-1: W3-W4];

endmodule
Anteeksi, mutta sinun on kirjautumistunnuksen nähdäksesi tämän liitäntävaatimuksia

 
Voitko lähettää minulle Verilog moduuli tiedosto lpm_mult mul_2?
Ja Verilog testbench?Niin että voin toistaa ongelma täällä!

 
nand_gates wrote:

Voitko lähettää minulle Verilog moduuli tiedosto lpm_mult mul_2?

Ja Verilog testbench?
Niin että voin toistaa ongelma täällä!
 

Welcome to EDABoard.com

Sponsor

Back
Top