求教verilog秒表
求教大神:我现在写了一秒表
这是计数块(由于篇幅限制,秒,小时的计数省略):
always@(negedge reset or posedge clk_out )
if(!reset)
begin
co[0]<=0;
Millisecond<=0;
end
else if( Millisecond==7'd99)
begin
co[0]<=1;
Millisecond<=7'd0;
end
else begin
co[0]<=0;
Millisecond<= Millisecond+7'd1;
end
下面这个是存数模块:(即每来一个POS记一个人的时间,只记三个人的时间)
always@(posedge POS or negedge reset)
if(!reset)
begin
M<=2'd0;
Memory[0]<=0;
Memory[1]<=0;
Memory[2]<=0;
end
else if( M==2'd0)
begin
Memory[0]<={Hour, Minute,Second,Millisecond};
M <= M+2'd1;
end
else if( M==2'd1)
begin
Memory[1]<={Hour, Minute,Second,Millisecond};
M <= M+2'd1;
end
else if( M==2'd2)
begin
Memory[2]<={Hour, Minute,Second,Millisecond};
M <= 2'd0;
end
else
M<=2'd0;
下面是显示计数模块(即每摁一次SHOW,显示一次成绩)
always@(posedge SHOW or negedge reset )
if(!reset)
SH<=2'd0;
else if(SH==2'd0)
begin
{Hour, Minute,Second,Millisecond}<= Memory[0];
SH<= SH+2'd1;
end
else if(SH==2'd1)
begin
{Hour, Minute,Second,Millisecond}<= Memory[1];
SH<=SH+2'd1;
end
else if(SH==2'd2)
begin
{Hour, Minute,Second,Millisecond}<= Memory[2];
SH<= 2'd0;
end
else
SH<=2'd0;
endmodule
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
问题是用赛灵思ISE综合是不能在两个always块中对同一变量赋值(即Hour, Minute,Second,Millisecond),该怎么改代码呢?
这是计数块(由于篇幅限制,秒,小时的计数省略):
always@(negedge reset or posedge clk_out )
if(!reset)
begin
co[0]<=0;
Millisecond<=0;
end
else if( Millisecond==7'd99)
begin
co[0]<=1;
Millisecond<=7'd0;
end
else begin
co[0]<=0;
Millisecond<= Millisecond+7'd1;
end
下面这个是存数模块:(即每来一个POS记一个人的时间,只记三个人的时间)
always@(posedge POS or negedge reset)
if(!reset)
begin
M<=2'd0;
Memory[0]<=0;
Memory[1]<=0;
Memory[2]<=0;
end
else if( M==2'd0)
begin
Memory[0]<={Hour, Minute,Second,Millisecond};
M <= M+2'd1;
end
else if( M==2'd1)
begin
Memory[1]<={Hour, Minute,Second,Millisecond};
M <= M+2'd1;
end
else if( M==2'd2)
begin
Memory[2]<={Hour, Minute,Second,Millisecond};
M <= 2'd0;
end
else
M<=2'd0;
下面是显示计数模块(即每摁一次SHOW,显示一次成绩)
always@(posedge SHOW or negedge reset )
if(!reset)
SH<=2'd0;
else if(SH==2'd0)
begin
{Hour, Minute,Second,Millisecond}<= Memory[0];
SH<= SH+2'd1;
end
else if(SH==2'd1)
begin
{Hour, Minute,Second,Millisecond}<= Memory[1];
SH<=SH+2'd1;
end
else if(SH==2'd2)
begin
{Hour, Minute,Second,Millisecond}<= Memory[2];
SH<= 2'd0;
end
else
SH<=2'd0;
endmodule
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
问题是用赛灵思ISE综合是不能在两个always块中对同一变量赋值(即Hour, Minute,Second,Millisecond),该怎么改代码呢?
...全文
相关推荐
基于Verilog语言的电子秒表设计
基于Verilog语言的电子秒表设计,使用的FPGA板为Cyclone IV E:EP4CE6E22C8
verilog秒表计时器
设计电子表,电子表指示的时间由nexys4 DDR开发板的8个数码管显示,从左到右数码管的前两个显示小时(范围0-24),第3-4个数码管显示分(范围0-59,计数到60,向小时位进1),第5-6个数码管显示秒(范围0-59,计数到60向分位进1),第7-8个数码管显示毫秒(范围0-99,计数到100向秒位进1) 。要求实现如下功能: (1)跑表的计时范围为0.01s~59min59.99s,计时精度为10ms。 (2)具有异步清零、启动功能。 (3)计时频率为100Hz。 (4)数字跑表的分和秒在数码管上显示出来,百分秒的BCD码在8个led上显示出来。
秒表计时器(Verilog)
使用Verilog在开发板上模拟计时器的实现
FPGA-verilog秒表设计
基于FPGA的秒表设计代码及解释,使用Verilog编写,对学习数字电路的同学有所帮助
哈工大 EDA课程设计 verilog编程 数字秒表
哈工大 EDA课程设计 verilog编程 数字秒表哈工大 EDA课程设计 verilog编程 数字秒表


分析与设计
