verilog小程序求救

402关注514浏览

展开全部
收起
2回答
提交回答
  • 至过去的我

    2044人对此回答表示赞同

    我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多>
    发布于
  • justsososo

    43人对此回答表示赞同

    always@(posedge clk) begin singnal => ..; end 在时序逻辑的赋值里面必须用阻塞赋值 而且一个always块操作一个被赋值信号! 修改前: always@(posedge clk) begin if(aaa==0) begin aaa=1; show=0; end else begin show=show+1; end end 修改后: //for reg aaa always@(posedge clk) begin if(aaa==0) aaa《=
    展开
    43
    0回复
    发布于 8年前

    评论(0)

    收起评论

  • RossiWu

    43人对此回答表示赞同


    always@(posedge clk)
    begin
    singnal => ..;

    end
    在时序逻辑的赋值里面必须用阻塞赋值
    而且一个always块操作一个被赋值信号!
    修改前:
    always@(posedge clk)
    begin
    if(aaa==0)
    begin
    aaa=1;
    show=0;
    end
    else
    begin
    show=show+1;
    end
    end

    修改后:
    //for reg aaa
    always@(posedge clk)
    begin
    if(aaa==0)
    aaa《=1;

    end

    //for reg show
    always@(posedge clk) begin
    if(aaa==0)
    show => 1'b0;
    else
    begin
    show=>show+1;
    end
    end

    请分清楚是同步reset还是异步reset
    always@(posedge rst)
    begin
    aaa=0;
    end
    你这种写法会使编译器发疯的
    想一想:如果posedge rst && aaa==0
    然后aaa的值是多少???

    所以你应该这么写
    1.根据一个always块操作一个被赋值信号
    always@(posedge clk or posedge rst)
    if(rst)
    aaa => 1'b0;
    else
    if (..)
    ...
    else
    ...
    end

    最后一点,请把名字起得好一点 通俗一点
    别起什么aaa的破名字!!
    展开
    43
    0回复
    发布于 8年前

    评论(0)

    收起评论

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
咨询热线

13312967497

扫码添加业务即可随时咨询 还可领取小程序推广攻略

业务咨询: 13312967497
扫码咨询

扫码咨询套餐

回到顶部