interig 发表于 2010-6-26 00:49:06

这段程序怎么运行的?

本帖最后由 fpgaw 于 2010-7-12 12:26 编辑

module sled (seg , sl , clock);                  //定义模块结构
      output seg;                     //定义数码管段输出引脚
    output sl;                  //定义数码管选择输出引脚
      input clock;                        //定义输入时钟引脚

    reg seg_reg;                  //定义数码管段输出寄存器
    reg sl_reg;                  //定义数码管选择输出寄存器
    reg disp_dat;                  //定义显示数据寄存器
    reg count;                  //定义计数器寄存器

always @(posedge clock)                           //定义clock信号下降沿触发
begin
    count=count+1;                  //计数器值加1
end

always
begin
    sl_reg=4'b0000;
end

always @(count)                           //定义显示数据触发事件
begin
    disp_dat = count;                              //显示个位数值
end

always @(disp_dat)                        //显示译码输出
begin
    case (disp_dat)                  //选择输出数据
      4'h0: seg_reg = 8'hc0;                //显示0
      4'h1: seg_reg = 8'hf9;                //显示1
      4'h2: seg_reg = 8'ha4;                //显示2
      4'h3: seg_reg = 8'hb0;                //显示3
      4'h4: seg_reg = 8'h99;                //显示4
      4'h5: seg_reg = 8'h92;                //显示5
      4'h6: seg_reg = 8'h82;                //显示6
      4'h7: seg_reg = 8'hf8;                //显示7
      4'h8: seg_reg = 8'h80;                //显示8
      4'h9: seg_reg = 8'h90;                //显示9
      4'ha: seg_reg = 8'h88;                //显示a
      4'hb: seg_reg = 8'h83;                //显示b
      4'hc: seg_reg = 8'hc6;                //显示c
      4'hd: seg_reg = 8'ha1;                //显示d
      4'he: seg_reg = 8'h86;                //显示e
      4'hf: seg_reg = 8'h8e;                //显示f
    endcase
end

assign seg=seg_reg;                        //输出数码管译码结果
assign sl=sl_reg;                        //输出数码管选择

endmodule

对于这段程序有个问题:寄存器count是一个8位的寄存器,当它计数满以后,即FF后,程序还能运行吗?为什么

interige 发表于 2010-6-26 01:24:04

FF加1以后变为100,这样count变为00,因此电路可以工作

VVC 发表于 2010-6-26 02:13:19

可以运行<br>
计数到FF后会再到0

usd 发表于 2010-6-26 03:16:59

谢谢版主和loong的回答!<br>
但对于这段程序我直接建了一个tbw波形文件进行仿真,为何不行,一定要写testbench吗?

encounter 发表于 2010-6-26 03:49:58

不一定非写testbench的吧<br>
看看是不是别的地方出了什么问题

VVC 发表于 2010-6-26 04:48:37

为什么我仿真这段程序的时候,老报&ldquo;# ** Error: (vsim-3601) Iteration limit reached at time 0 ps.<br>
ERROR: VSim failed to simulate annotated testbench&rdquo;的错误信息,对于其他的时序电路也是这个错误,但组合电路就没有这个错误信息,这是什么原因呢?

longtim 发表于 2010-6-26 06:46:11

hehehehehhehehhe

ATA 发表于 2010-6-26 07:55:30

关注啊

interi 发表于 2010-6-26 08:57:41

fffffffffffffffffffffffffffffffffffffffffff

Sunlife 发表于 2015-6-24 10:22:17


FF加1以后变为100,这样count变为00,因此电路可以工作
页: [1]
查看完整版本: 这段程序怎么运行的?