首先想问一下,你这个模块里面定义里面是否有个输出引脚叫Run_LED,如果是的,那么就好说了;
assign Run_LED = Run_LED语句右边的Run_LED是wire型的寄存器,它与runmodule模块中的LED_Out连接,左边Run_LED是这个模块对应的输出,整个assign语句意思就是将LED_Out的值给模块的Run_LED输出。
个人建议程序别这样写,你可以将wire [2:0]Run_LED替换成为LED_Out,这样好理解一些。
给你写一个例子,下面是一个设计文件和一个对应的测试程序,希望能起到抛砖引玉的和用:
/
File Name : testv
Author : >
module traffic(clk,leg_sega,leg_diga);
input clk;
output leg_sega;
output leg_diga;
reg[7:0] leg_sega;
reg[4:0] leg_diga;
reg f2;
integer a1=2;
integer a2=5;
integer n;
//a1=2; 赋初值不能这样,要在定义它的时候赋,像上面我该的那样
//a2=5;
always @(posedge clk) begin
if(n==9999999) begin
n<=0;
f2<=~f2;
end
else begin
n<=n+1;
end
//end在VERILOG里不管怎样你的语句都应该在赋值语句里(assign,always等等)这个end结束了上一个always又没有其他的always包含下面的CASE所以出错或者你没给全代码。不过下面的CASE语句没错。
case(a2)
0:begin leg_sega<=8'b11111100; leg_diga<=4'b0001;end
1:begin leg_sega<=8'b01100000; leg_diga<=4'b0001;end
2:begin leg_sega<=8'b11011010; leg_diga<=4'b0001;end
3:begin leg_sega<=8'b11110010; leg_diga<=4'b0001;end
4:begin leg_sega<=8'b01100110; leg_diga<=4'b0001;end
5:begin leg_sega<=8'b10110110; leg_diga<=4'b0001;end
6:begin leg_sega<=8'b10111110; leg_diga<=4'b0001;end
7:begin leg_sega<=8'b11100000; leg_diga<=4'b0001;end
8:begin leg_sega<=8'b11111110; leg_diga<=4'b0001;end
9:begin leg_sega<=8'b11110110; leg_diga<=4'b0001;end
endcase
case(a1)
0:begin leg_sega<=8'b11111100; leg_diga<=8'b0010;end
1:begin leg_sega<=8'b01100000; leg_diga<=8'b0010;end
2:begin leg_sega<=8'b11011010; leg_diga<=8'b0010;end
endcase
if(!X) //这里我估计是你没给全代码的原因,不过你也要给它加上begin end,因为IF下肯能包含多个语句,还有就是下面你要开始一个新的always 那就样加个END来结束上一个,还有这里X你没在前面定义。
begin
end
end
always @(posedge f2)
begin
if(a2==0)
begin
a2<=9;
a1<=a1-1;
end
else
begin
a2<=a2-1;
end
end
endmodule
PS:虽然我每次都很认真的回答问题,可是总能遇到那种关闭问题的恶心人,我不知道还能坚持多久。
以上就是关于verilog中assign A=A是什么意思全部的内容,包括:verilog中assign A=A是什么意思、怎么写verilog 测试程序、急求高手改verilog程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)