проблем код генериране на нежелан ключалки

  • Thread starter indomitable12345
  • Start date
I

indomitable12345

Guest
вижте attatched Verilog и source.when се опитват да синтезират този модул с номинация (до) rtus, нежелана ключалки са създадени за цялата продукция мрежи .. това е поговорка, че мрежите add1_temp, add2_temp, go_temp и т.н. са запазване на техните предишни стойност чрез една или повече пътеки в изграждане на ... винаги може някой да ми помогне в решаването на този проблем?

 
Тук съм изпращане на код.Моля, Ур кодове по този начин.вместо да се създаде
Дума DOC и след това качване.Кодът трябва да се назъбен porperly.Аз го направих това време.

Тук, в Ур код в случай изявление сте смесване на двете seqential, както и
комбинаторни задачи.Това е един много добър пример за много лош Verilog кодиране
за синтез.Аз съм да кажа, че съжалявам.Първо, мисля за логиката искате
и след това да използвате HDL (Verilog) просто да го опиша.

Код:

НЧ "срок 1 / 1 PS

модул control_unit_statemac (add1_temp,

add2_temp,

op_code_temp,

sel_temp,

d_bus,

push_temp,

pop_temp,

go_temp,

clkin_temp,

pclk, RS,

CLK,

RST,

int0,

int1,

IR,

Сс,

Z,

Кипър);продукция [13:0] add1_temp, add2_temp;

продукция [2:0] op_code_temp;

продукция [3:0] sel_temp;

Inout [15:0] d_bus;

pclk продукция, go_temp, push_temp, pop_temp, clkin_temp, RS;

въвеждане на CLK, RST, int0, int1, DZ, Z, Кипър;

вход [21:0] IR;обл [13:0] add1_temp, add2_temp;

обл [2:0] op_code_temp;

обл [3:0] sel_temp;

обл [15:0] d_out, d_bus_temp;

обл pclk, push_temp, pop_temp, go_temp, clkin_temp, RS;параметър нулиране = 18'd0,

а = 18'd1,

B = 18'd2,

C = 18'd4,

D = 18'd8,

E = 18'd16,

F = 18'd32,

ж = 18'd64,

H = 18'd128,

I = 18'd256,

J = 18'd512,

к = 18'd1024,

L = 18'd2048,

М = 18'd4096,

N = 18'd8192,

O = 16384,

P = 18'd32768,

Q = 18'd65536,

R = 18'd131072;параметър a_add = 7'b0110010,

b_add = 7'b0110011,

c_add = 7'b0110100,

pc_add = 7'b0010000,

stack_add = 7'b0101111;обл [17:0] p_state, n_state;Винаги @ (posedge CLK) започва

IF (RST)

p_state <= Reset;

в противен случай

p_state <= n_state;

приключвамвинаги започва @ * / / (p_state)

случай (p_state)

Reset: започва

n_state <= A;

op_code_temp <= 3'bzzz;

add1_temp [13:0] <= 14'hzzzz;

add2_temp [13:0] <= 14'hzzzz;

go_temp <= 1'b0;

pclk <= 1'b0;

push_temp <= 1'b0;

pop_temp <= 1'b0;

clkin_temp <= 1'b0;

RS <= 1'b1;

приключвамA: започва

casex (IR)

22'b000001xxxxxxxxxxxxxxxx: започва

n_state <= L;

@ (posedge CLK) започва

add1_temp [6:0] <= IR [14:8];

add1_temp [13:7] <= stack_add;

sel_temp [3:0] <= 4'b0011;

push_temp <= 1'b1;

/ / add2_temp [13:0] <= 14'bzzzzzzzzzzzzzz;

/ / d_out [15:0] <= 16'hzzzz;

/ / op_code_temp [2:0] <= 3'bzzz;

/ * pop_temp <= 1'b0;

go_temp <= 1'b0;

clkin_temp <= 1'b0; * / край

pclk <= 1'b0;

RS <= 1'b0;

приключвам22'b000010xxxxxxxxxxxxxxxx: започва

n_state <= M;

@ (posedge CLK) започва

add1_temp [6:0] <= stack_add;

add1_temp [13:7] <= IR [14:8];

pop_temp <= 1'b1;

sel_temp [3:0] <= 4'b0011;

/ * add2_temp [13:0] <= 14'bzzzzzzzzzzzzzz;

push_temp <= 1'b0;

op_code_temp [2:0] <= 3'bzzz;

go_temp <= 1'b0;

d_out [15:0] <= 16'hzzzz;

clkin_temp <= 1'b0; * /

приключвам

pclk <= 1'b0;

RS <= 1'b0;

приключвам22'b001xxxxxxxxxxxxxxxxxxx: започва

n_state <= B;

@ (posedge CLK) започва

add1_temp [13:7] <= a_add;

add1_temp [6:0] <= IR [6:0];

add2_temp [13:7] <= b_add;

add2_temp [6:0] <= IR [14:8];

sel_temp [3:0] <= 4'b1111;

/ * d_out [15:0] <= 16'hzzzz;

op_code_temp [2:0] <= 3'bzzz;

go_temp <= 1'b0;

push_temp <= 1'b0;

pop_temp <= 1'b0;

clkin_temp <= 1'b0; * /

приключвам

pclk <= 1'b0;

RS <= 1'b0;

приключвам22'b010xxxxxxxxxxxxxxxxxxx: започва

n_state <= D;

@ (posedge CLK) започва

d_out [7:0] <= IR [7:0];

add1_temp [13:7] <= a_add;

/ / add1_temp [6:0] <= 7'bzzzzzzz;

add2_temp [13:7] <= b_add;

add2_temp [6:0] <= IR [14:8];

sel_temp [3:0] <= 4'b1110;

/ * d_out [15:8] <= 8'hzz;

op_code_temp [2:0] <= 3'bzzz;

go_temp <= 1'b0;

push_temp <= 1'b0;

pop_temp <= 1'b0;

clkin_temp <= 1'b0; * /

приключвам

pclk <= 1'b0;

RS <= 1'b0;

приключвам22'b011xxxxxxxxxxxxxxxxxxx: започва

n_state <= E;

@ (posedge CLK) започва

add1_temp [13:7] <= IR [14:8];

add1_temp [6:0] <= IR [6:0];

sel_temp [3:0] <= 4'b0011;

/ * add2_temp [13:0] <= 14'bzzzzzzzzzzzzzz;

d_out [15:0] <= 16'hzzzz;

op_code_temp <= 3'bzzz;

go_temp <= 1'b0;

pclk <= 1'b0;

push_temp <= 1'b0;

pop_temp <= 1'b0;

clkin_temp <= 1'b0; * /

приключвам

pclk <= 1'b0;

RS <= 1'b0;

приключвам22'b100xxxxxxxxxxxxxxxxxxx: започва

n_state <= G;

@ (posedge CLK) започва

d_out [7:0] <= IR [7:0];

add1_temp [13:7] <= IR [14:8];

sel_temp [3:0] <= 4'b0010;

/ * add1_temp [6:0] <= 7'bzzzzzzz;

add2_temp [13:0] <= 14'bzzzzzzzzzzzzzz;

op_code_temp [2:0] <= 3'bzzz;

d_out [15:8] <= 8'hzz;

go_temp <= 1'b0;

push_temp <= 1'b0;

pop_temp <= 1'b0;

clkin_temp <= 1'b0; * / край

pclk <= 1'b0;

RS <= 1'b0;

приключвам22'b101001xxxxxxxxxxxxxxxx: започва

n_state <= ч;

@ (posedge CLK) започва

add1_temp [13:7] <= stack_add;

add1_temp [6:0] <= pc_add;

sel_temp [3:0] <= 4'b0011;

/ * add2_temp [13:0] <= 14'bzzzzzzzzzzzzzz;

op_code_temp [2:0] <= 3'bzzz;

d_out [15:0] <= 16'hzzzz;

go_temp <= 1'b0;

push_temp <= 1'b0;

pop_temp <= 1'b0;

clkin_temp <= 1'b0; * / край

pclk <= 1'b0;

RS <= 1'b0;

приключвам22'b101010xxxxxxxxxxxxxxxx: започва

n_state <= J;

@ (posedge CLK) започва

add1_temp [13:7] <= pc_add;

add1_temp [6:0] <= stack_add;

pop_temp <= 1'b1;

sel_temp [3:0] <= 4'b0011;

/ * add2_temp [13:0] <= 14'bzzzzzzzzzzzzzz;

d_out [15:0] <= 16'hzzzz;

op_code_temp [2:0] <= 3'bzzz;

go_temp <= 1'b0;

push_temp <= 1'b0;

clkin_temp <= 1'b0; * / край

pclk <= 1'b0;

RS <= 1'b0;

приключвам22'b110xxxxxxxxxxxxxxxxxxx: започва

n_state <= N;

@ (posedge CLK) започва

add1_temp [13:7] <= pc_add;

d_out [7:0] <= IR [15:8];

sel_temp [3:0] <= 4'b0010;

/ * add1_temp [6:0] <= 7'bzzzzzzz;

add2_temp [13:0] <= 14'bzzzzzzzzzzzzzz;

op_code_temp [2:0] <= 3'bzzz;

d_out [15:8] <= 8'hzz;

go_temp <= 1'b0;

push_temp <= 1'b0;

pop_temp <= 1'b0;

clkin_temp <= 1'b0; * /

приключвам

pclk <= 1'b0;

RS <= 1'b0;

приключвам22'b111001xxxxxxxxxxxxxxxx: започва

pclk <= 1'b0;

RS <= 1'b0;

ако (DZ == 0) започва

n_state <= O; clkin_temp <= 1'b1;

приключвам

в противен случай

n_state <= Q;

приключвам22'b111010xxxxxxxxxxxxxxxx: започва

pclk <= 1'b0;

RS <= 1'b0;

ако (Z! = 0)

n_state <= O;

в противен случай

n_state <= Q;

приключвам22'b111011xxxxxxxxxxxxxxxx: започва

ако (Z == 0) n_state <= O;

иначе n_state <= Q;

pclk <= 1'b0;

RS <= 1'b0;

приключвам22'b111100xxxxxxxxxxxxxxxx: започва

pclk <= 1'b0;

RS <= 1'b0;

ако (CY == 0)

n_state <= O;

в противен случай

n_state <= Q;

приключвам22'b111101xxxxxxxxxxxxxxxx: започва

pclk <= 1'b0;

RS <= 1'b0;

ако (Кипър! = 0)

n_state <= O;

в противен случай

n_state <= Q;

приключвампо подразбиране: n_state <= Reset;endcaseприключвамB: започва

n_state <= C;

@ (posedge CLK) започва

/ / add2_temp [13:0] <= 14'bzzzzzzzzzzzzzz;

/ / add1_temp [13:0] <= 14'bzzzzzzzzzzzzzz;

sel_temp [3:0] <= 4'b0000;

op_code_temp <= IR [18:16];

go_temp <= 1'b1;

приключвам

приключвамC: започва

n_state <= A;

@ (posedge CLK) започва

add1_temp [13:7] <= IR [14:8];

add1_temp [6:0] <= c_add;

sel_temp [3:0] <= 4'b0011;

op_code_temp <= 3'bzzz;

go_temp <= 1'b0;

приключвам

pclk <= 1'b1;

приключвамD: започва

n_state <= C;

@ (posedge CLK) започва

/ / add2_temp [13:0] <= 14'bzzzzzzzzzzzzzz;

/ / add1_temp [13:7] <= 7'bzzzzzzz;

sel_temp [3:0] <= 4'b0000;

op_code_temp <= IR [18:16];

go_temp <= 1'b1;

приключвам

приключвамE: започва

n_state <= F;

@ (posedge CLK)

sel_temp [3:0] <= 4'b0000;

/ / add1_temp [13:0] <= 14'bzzzzzzzzzzzzzz;

приключвамF: започва

n_state <= A;

pclk <= 1'b1;

приключвамG: започва

n_state <= F;

@ (posedge CLK) започва

d_out [7:0] <= 8'hzz;

sel_temp [3:0] <= 4'b0000;

/ / add1_temp [13:7] <= 7'bzzzzzzz;

приключвам

приключвамч: започва

n_state <= I;

@ (posedge CLK)

push_temp <= 1'b1;

приключвамI: започваn_state <= A;

@ (posedge CLK) започва

add1_temp [13:7] <= pc_add;

d_out [7:0] <= IR [15:8];

sel_temp [3:0] <= 4'b0010;

/ / add1_temp [6:0] <= 7'bzzzzzzz;

приключвам

приключвамJ: започваn_state <= K;

@ (posedge CLK) започва

pop_temp <= 1'b0;

sel_temp [3:0] <= 4'b0000;

приключвам

приключвамК: започва

n_state <= A;

приключвамл: започва

n_state <= F;

@ (posedge CLK) започва

push_temp <= 1'b0;

sel_temp [3:0] <= 4'b0000;

приключвам

приключвамм: започва

n_state <= F;

@ (posedge CLK) започва

pop_temp <= 1'b0;

sel_temp [3:0] <= 4'b0000;

приключвам

приключвамN: започва

n_state <= K;

@ (posedge CLK) започва

sel_temp [3:0] <= 4'b0000;

/ / add1_temp [13:7] <= 7'bzzzzzzz;

d_out [7:0] <= 8'hzz;

приключвам

приключвамО: започва

n_state <= P;

@ (posedge CLK) започва

sel_temp [3:0] <= 4'b0010;

add1_temp [13:7] <= pc_add;

d_out [7:0] <= IR [15:8];

приключвам

приключвамP: започва

n_state <= A;

@ (posedge CLK) започва

sel_temp [3:0] <= 4'b0000;

/ / add1_temp [13:7] <= 7'bzzzzzzz;

d_out [7:0] <= 8'hzz;

приключвам

приключвамВъпрос: започва

n_state <= R;

/ * @ (posedge CLK) започва

add1_temp [13:0] <= 14'bzzzzzzzzzzzzzz;

add2_temp [13:0] <= 14'bzzzzzzzzzzzzzz;

d_out [15:0] <= 16'hzz;

push_temp <= 1'b0;

pop_temp <= 1'b0;

go_temp <= 1'b0;

clkin_temp <= 1'b0;

op_code_temp [2:0] <= 3'bzzz; края * /

приключвамR: започва

n_state <= A;

/ * @ (posedge CLK) започва

add1_temp [13:0] <= 14'bzzzzzzzzzzzzzz;

add2_temp [13:0] <= 14'bzzzzzzzzzzzzzz;

d_out [15:0] <= 16'hzz;

push_temp <= 1'b0;

pop_temp <= 1'b0;

go_temp <= 1'b0;

clkin_temp <= 1'b0;

op_code_temp [2:0] <= 3'bzzz; края * /

pclk <= 1'b1;

приключвампо подразбиране: n_state <= Reset;

endcase/ * @ (posedge CLK)

започвам

ADD1 [13:0] <= add1_temp [13:0];

ADD2 [13:0] <= add2_temp [13:0];

/ / данни [15:0] <= d_bus_temp [15:0];

op_code [2:0] <= op_code_temp [2:0];

натиснете <= push_temp;

поп <= pop_temp;

clkin <= clkin_temp;

Отиди <= go_temp;

d_bus_temp <= d_out [15:0];

приключвам

* /

край / / винаги @ *Винаги @ (posedge CLK)

d_bus_temp [15:0] <= d_out [15:0];

присвоите d_bus [15:0] = d_bus_temp [15:0];

endmodule
 

Welcome to EDABoard.com

Sponsor

Back
Top