[modelsim]

为什么我的计数器不计数呢 求大神讲解一下

[复制链接]
1174|9
手机看帖
扫描二维码
随时随地手机跟帖
fpgalover|  楼主 | 2019-9-23 15:56 | 显示全部楼层 |阅读模式
module led1(clk,rst,led);

input clk,rst;
output led;

parameter time_1 = 27'd5000_0000;

reg[26:0] cnt;
reg led;

always @(posedge clk or negedge rst)
                        if(!rst)
                                cnt <= 27'd0;
                        else if(cnt == time_1)
                                cnt <= 27'd0;
                        else
                                cnt <= cnt + 1'b1;
                               
always @(posedge clk or negedge rst)
                        if(!rst)
                                led <= 1'b1;
                        else if(cnt == time_1)
                                led <= ~led;
                       
endmodule

`timescale 1 ns/ 1 ns
module led1_vlg_tst();
reg eachvec;
reg clk;
reg rst;
reg cnt;                                               
wire led;
                        
led1 i1 (  
        .clk(clk),
        .led(led),
        .rst(rst)
);
initial                                                
begin                                                  
                     
clk = 0;
rst = 0;
#100
rst = 1;                                          
end  
always #1 clk = ~clk;                                                  
endmodule


cnt 一直为 x 不计数
                       

使用特权

评论回复

相关帖子

zhangmangui| | 2019-9-23 22:14 | 显示全部楼层
clk有波形吗   

使用特权

评论回复
fpgalover|  楼主 | 2019-9-24 10:29 | 显示全部楼层
有的

使用特权

评论回复
fpgalover|  楼主 | 2019-9-24 10:49 | 显示全部楼层

C:\Users\dell\Desktop

使用特权

评论回复
fpgalover|  楼主 | 2019-9-24 11:30 | 显示全部楼层
有的
QQ图片20190923155543.png

使用特权

评论回复
xinhaisc| | 2019-9-24 13:59 | 显示全部楼层
你这个波形里面的cnt不是你的module里面的吧,这个是你在tb里面定义的,你把module里面的cnt拿出来看一下

使用特权

评论回复
fpgalover|  楼主 | 2019-9-24 16:44 | 显示全部楼层
xinhaisc 发表于 2019-9-24 13:59
你这个波形里面的cnt不是你的module里面的吧,这个是你在tb里面定义的,你把module里面的cnt拿出来看一下 ...

不是被综合了吗 咋看呢

使用特权

评论回复
zhangmangui| | 2019-9-24 23:08 | 显示全部楼层
fpgalover 发表于 2019-9-24 16:44
不是被综合了吗 咋看呢

always @(posedge clk or negedge rst)
                         if(!rst)
                                 cnt <= 27'd0;
                         else if(cnt == time_1)
                               begin
                                 cnt <= 27'd0;
                                 led <= ~led;
                               end
                         else
                                 cnt <= cnt + 1'b1;

使用特权

评论回复
fpgalover|  楼主 | 2019-9-25 17:18 | 显示全部楼层
zhangmangui 发表于 2019-9-24 23:08
always @(posedge clk or negedge rst)
                         if(!rst)
                            ...

不是组合逻辑与时序逻辑的关系吧,板子都能正常工作,结果仿真不出来也是很尴尬

使用特权

评论回复
zhangmangui| | 2019-9-25 21:36 | 显示全部楼层
fpgalover 发表于 2019-9-25 17:18
不是组合逻辑与时序逻辑的关系吧,板子都能正常工作,结果仿真不出来也是很尴尬 ...

不知道什么问题了   仿真时钟都有  

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

25

帖子

0

粉丝