OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6944|回复: 4

[ALTERA] verilog程序执行,仿真问题

[复制链接]

1

主题

9

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2018-4-17
在线时间
12 小时
发表于 2019-12-9 15:38:50 | 显示全部楼层 |阅读模式
5金钱

先上程序::::

always @(posedge sys_clk or negedge sys_rst_n) begin

    if(!sys_rst_n)begin
        mid_cnt <= 28'd0;
        counter <= 28'd0;
        ceshi_up1 <= 1'b0;
        ceshi_up <= 1'b0;
    end
    else begin
        mid_cnt <= mid_cnt + 1'b1;
        if(double_edge) begin
            ceshi_up1 <= ~ceshi_up1;//            1
            counter <= mid_cnt;//                     2
            mid_cnt <= 28'd0;//                        3
        end
        else begin
            if(jus) begin
                mid_cnt <= 28'd0;
            end
            else begin
                //counter <= counter;
                ceshi_up <= ~ceshi_up;

            end
        end

    end

end

仿真示意图

仿真示意图


按照程序描述,当double_edge被检测到时,后面标注“//”的程序1、2、3都会被执行。但是在仿真图中,仅有程序1、2被执行了,程序3没有被执行,这是咋回事啊?有没有人能指导一下。



最佳答案

查看完整内容[请看2#楼]

已经知道哪的问题了,这个寄存器之前的值与将要变化的这个值相等。因此此处看不到数值的变化。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

9

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2018-4-17
在线时间
12 小时
 楼主| 发表于 2019-12-9 15:38:51 | 显示全部楼层
已经知道哪的问题了,这个寄存器之前的值与将要变化的这个值相等。因此此处看不到数值的变化。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165186
金钱
165186
注册时间
2010-12-1
在线时间
2106 小时
发表于 2019-12-10 02:07:58 | 显示全部楼层
帮顶
回复

使用道具 举报

49

主题

151

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
203
金钱
203
注册时间
2018-3-14
在线时间
71 小时
发表于 2019-12-10 09:11:00 | 显示全部楼层
如果能把信号名称也截出就好了,看看是不是重复赋值,或者mid_cnt刚好=0
回复

使用道具 举报

1

主题

9

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2018-4-17
在线时间
12 小时
 楼主| 发表于 2019-12-12 09:13:18 | 显示全部楼层

已经知道哪的问题了,这个寄存器之前的值与将要变化的这个值相等。因此此处看不到数值的变化。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-10-3 09:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表