verilog简单问题求助.

[复制链接]
2057|7
 楼主| resxpl 发表于 2013-2-19 23:19 | 显示全部楼层 |阅读模式
module counter1(nrst, clk, load, din, dout);
        parameter N = 2;
        input nrst;
        input clk;
        input load;
        input [N-1 : 0] din;
        output [N-1 : 0] dout;
        reg [N-1 : 0] dout;
       
        always @(posedge clk or negedge nrst)
        begin
                if(nrst == 0)
                        dout <= 0;
                else
                begin
                        if(load)
                                dout <= din;
                        else
                                dout <= dout + 1;
                end
        end
endmodule


图中load没起作用, 是什么原因呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
nm2012 发表于 2013-2-20 00:28 | 显示全部楼层
always后面的@里要加load,不知道对不对
Backkom80 发表于 2013-2-20 08:33 | 显示全部楼层
本帖最后由 Backkom80 于 2013-2-20 08:37 编辑

代码没有问题,我不清楚是不是你仿真的有问题,反正我仿真了下,是正确的。如下图:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

评分

参与人数 1威望 +3 收起 理由
resxpl + 3 很给力!

查看全部评分

jlass 发表于 2013-2-20 09:43 | 显示全部楼层
同意2楼的看法,你的逻辑不完整,必须在always后面的@里要加load
rosedao 发表于 2013-2-20 09:53 | 显示全部楼层
这是时序逻辑,不需要加load信号,逻辑上没问题,估计还是楼主其他地方出差错了
ifpga 发表于 2013-2-20 12:58 | 显示全部楼层
代码应该是没问题的,不用加 load
 楼主| resxpl 发表于 2013-2-20 20:17 | 显示全部楼层
如果加load会报错的.
 楼主| resxpl 发表于 2013-2-20 20:39 | 显示全部楼层


:victory::victory::victory:好了. 可能是仿真软件的问题.
重建一个工程就好了. 诡异.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

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

本版积分规则

3

主题

156

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部