这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » FPGA » 菜鸟求助(LED 移位显示问题)

共16条 1/2 1 2 跳转至

菜鸟求助(LED 移位显示问题)

助工
2014-04-06 22:22:59     打赏
自己尝试写了一个4位的LED 移位显示工程,可是Modelsim 的LED 输出一直是初始状态4'b1111,尝试配置到开发板里面之后,却又只能循环显示3个LED。请教各位大大是哪里出了问题?谢谢
工程源代码如下:
module led_shift(sys_clk       ,
  sys_rstn      ,
  led
  );
//
input              sys_clk       ;
input              sys_rstn      ;
output    [3:0]    led           ;
//
reg       [3:0]    led           ;
reg       [24:0]   delay_cnt     ;
//
always@(posedge sys_clk or negedge sys_rstn)
begin
if(!sys_rstn)
delay_cnt<=25'd0;
else if(delay_cnt==25'd24999999)
delay_cnt<=25'd0;
else
delay_cnt<=delay_cnt+1'b1;
end
always@(posedge sys_clk or negedge sys_rstn)
begin
if(!sys_rstn)
led<=4'b1111;
else if(delay_cnt==25'd24999999)
led =led << 1;
else if(led== 4'b0000)
led = 4'b1111;
else
led<=led;
end
endmodule 
TB源代码如下:
module led_shift_tb;


// Inputs
reg sys_clk;
reg sys_rstn;


// Outputs
wire [3:0] led;



led_shift led_shift_inst (
.sys_clk(sys_clk), 
.sys_rstn(sys_rstn), 
.led(led)
);


initial begin
// Initialize Inputs
sys_clk = 0;
sys_rstn = 0;


// Wait 100 ns for global reset to finish
#100;
        
sys_rstn = 1;


end
  always 
     #10 sys_clk=~sys_clk; 
endmodule



关键词: LED 移位显示     Modelsim 仿真问题    

院士
2014-04-07 10:42:58     打赏
2楼
耐心等待

院士
2014-04-07 10:54:36     打赏
3楼

楼主,咱们论坛有插入代码的功能,在第一行的第六个图标。

这样的代码很难看懂的……

万一大牛们没有耐心看,您的问题岂不是很久后才能解答。


专家
2014-04-07 10:55:33     打赏
4楼
是啊,有点乱啊

工程师
2014-04-07 13:05:39     打赏
5楼

楼主的代码里面,既有阻塞赋值,又有非阻塞赋值,,,‘


这样就导致你只有3个灯亮,


另外仿真时,LED一直为“1111”从你的代码看,没得什么问题,

我猜想你的仿真时间过短导致的


工程师
2014-04-07 13:06:24     打赏
6楼

建议楼主将代码要么改成非阻塞,要么改成阻塞,


刚开始不要混用,容易出问题


高工
2014-04-07 17:56:31     打赏
7楼

循环显示3个LED

楼主这个LED 输出一直是初始状态4'b1111,什么意思


菜鸟
2014-04-09 10:29:24     打赏
8楼
;l';l'l;'l;

助工
2014-04-09 20:26:10     打赏
9楼
谢谢提醒,我下次注意

助工
2014-04-09 20:30:03     打赏
10楼
谢谢您的指点,我的本意,是初始状态4'b1111时高电平不点亮LED, 只有低电平点亮LED。

共16条 1/2 1 2 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]