首先:最好写成非阻塞赋值,保证所有的信号是同时置0的
if(rst)
begin
data0[3:0]<=0;
data1[3:0]<=0;
data2[3:0]<=0;
end
其次,你是否确定你的rst是高电平复位,而不底电平复位吗?
如果 是低电平复位,应写成:
always @(posedge key1 or negedge rst) //个位加
if(!rst)
begin
data0[3:0]<=0;
data1[3:0]<=0;
data2[3:0]<=0;
end
望采纳,欢迎追问~~
1 case语句第一条
casez ({present_state, coin_in, detect_car, reset})
{STATE_BLOCKING, 3'b10}:
begin
boom_up = UP;
next_state = STATE_RECEIVING;
end
对应状态图:
含义:当栏杆处于“阻隔”(blocking)状态时,只要发现刷卡(coin_in=1),则抬起栏杆(boom_up=1),下一个状态即进入到放行(receiving)状态;
2 case语句第二条
{STATE_BLOCKING, 3'b00}:
begin
boom_up = DOWN;
next_state = STATE_BLOCKING;
end
对应状态图:
含义:当栏杆处于“阻隔”(blocking)状态时,如果没有恢复初始状态信号(reset=0),也没有刷卡(coin_in=0),则无论有没有检测到汽车(detect_car=x),栏杆都保持放下(boom_up=0),下一个状态保持原来的“阻隔”(blocking)状态。
3 case语句第三条
{1'b, 3'b1}:
begin
boom_up = DOWN;
next_state = STATE_BLOCKING;
end
对应状态图:
含义:不管原来状态是什么,只要恢复初始状态信号有效(reset=1),则栏杆保持放下(boom_up=0),下一个状态保持原来的“阻隔”(blocking)状态。
4 case语句第四条
{STATE_RECEIVING, 3'b00}:
begin
boom_up = UP;
next_state = STATE_RECEIVING;
end
对应状态图:
含义:放行状态下,无论有没有刷卡(coin_in=x),只要没有检测到汽车(car_detect=0),没有reset信号,则栏杆保持抬起(boom_up=1),下一个状态保持原来的“放行”(receiving)状态。
5 case语句第五个状态
{STATE_RECEIVING, 3'b10}:
begin
boom_up = DOWN;
next_state = STATE_BLOCKING;
end
对应状态图:
含义:放行状态下,无论有没有刷卡(coin_in=x),如果检测到汽车(car_detect=1),没有reset信号,则栏杆放下(boom_up=0),下一个状态进入到“阻隔”(blocking)状态。
关于时序逻辑解释:
always @(posedge clock)
begin
present_state <= next_state;
end
含义:在时钟的上升沿,将组合逻辑完成的下一个状态(next_state,组合逻辑电路输出)保存进状态寄存器(present_state,时序逻辑输出)
verilog是硬件描述语言,不是软件。一般情况下,硬件的运行速度仅取决于系统时钟频率。但随着时钟频率的提高,关键路径成为制约硬件速度的瓶颈。至于最高速度,要基于具体的工艺库,并用DC、PT等专业软件做静态时序分析才能得出来。
二处错误:第一是在 count<=count+23'dl;这句,d后面是数字1,而你的是字母l。第二处是在最后一句,end module ,不应该有空格分开的,应是:endmodule
下面是修改后的:
module LED(
clk48M,
RST,
ledout
);
input clk48M;
input RST;
output ledout;
reg led_reg;
wire led_clk;
reg[22:0] count;
assign led_clk=count[22];
always@(posedge clk48M or posedge RST)
if(RST)
count<=23'd0;
else
count<=count+23'd1;
always@(posedge led_clk or posedge RST)
if(RST)
led_reg<=0;
else
led_reg<=~led_reg;
assign ledout=led_reg;
endmodule
以上就是关于帮忙看一段关于赋值的verilog程序全部的内容,包括:帮忙看一段关于赋值的verilog程序、verilog程序分析、您好!谢谢您的回答,我想问问给定一段RTL代码,即一段verilog的程序,怎么知道这段程序的运行多长时间呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)