У меня есть пример кода о T-Bird Tail Lights, и он передает состояния следующему модулю. Я изменил код, который не должны передавать состояние, но, кажется, выход не меняется (остается 000 все время)Модуль неправильно создан?
Вот мой модифицированный код:
module TBird(E,B,L,R,int_clk,L_Light,R_Light);
input E,B,L,R,int_clk;
output [2:0] L_Light;
output [0:2] R_Light;
reg [19:0] C;
wire int_clk;
One_Side U1 (E,B,R,int_clk,R_Light);
One_Side U2 (E,B,L,int_clk,L_Light);
endmodule
module One_Side(e,b,t,clk,light_eb);
input e,b,t,clk;
output reg [2:0] light_eb=3'b000;
always @(posedge clk or e or b or t)
begin
case ({e,b,t})
3'b000: light_eb=3'b000;
3'b0?1: begin
if (light_eb==3'b000) begin
light_eb=3'b001;
end else if (light_eb==3'b001) begin
light_eb=3'b011;
end else if(light_eb==3'b011) begin
light_eb=3'b111;
end else begin
light_eb=3'b000;
end
end
3'b?10: light_eb=3'b111;
3'b10?: begin
if (light_eb!==(3'b000|3'b111)) begin
light_eb=3'b000;
end
light_eb=~light_eb;
end
3'b111: begin
if (light_eb==3'b000) begin
light_eb=3'b001;
end else if (light_eb==3'b001) begin
light_eb=3'b011;
end else if(light_eb==3'b011) begin
light_eb=3'b111;
end else begin
light_eb=3'b000;
end
end
endcase
end
endmodule
У меня были некоторые опыт работы на Java, но я мало знаю о verilog, поэтому я даже не знаю, где идет не так (в Java, eclipse есть точки останова и отладчик и тому подобное), любые предложения/рекомендации оценены.
'always @ (posedge clk или e or b or t)' должно быть 'always @ (posedge clk)' для синхронной логики. или 'always @ *' для комбинационной логики. Выбери один. – Greg