陈晖洁的首席小迷弟 2022-10-16 22:18 采纳率: 33.3%
浏览 14
已结题

Verilog中遇到的一些问题

在Verilog中用always来编写程序

always @(posedge clk,negedge rst_n)begin
    if( rst_n==0 )
        begin
            state <= s01;
            led <= 1'b1;
        end
    else
        if (flag2 == 1'b1)
            begin
            state <= s00;
            led <= 1'b0;
            end
        else
            if (flag3 == 1'b1)
                begin
                state <= s01;
                led <= 1'b1;
                end
    //assign led = (flag3 == 1'b1)?1'b0:1'b1;
    //assign led = (flag2 == 1'b1)?1'b1:1'b0;    
    //assign led = (rst_n == 0)?1'b1:1'b0;
    end
endmodule

仿真如中输出的led为00和01,如果想要显示为0或者1,就要用assign来输出led,但是在这段里面assign无论如何都插入不进去,就是那三行注释部分,只是不知道放哪所以放在那,想问一下有没有办法把那三行放进去或者是说还有别的方法可以输出只显示0和1

  • 写回答

1条回答 默认 最新

  • 老皮芽子 2022-10-16 22:39
    关注
    1. always 中是不能插入 assign 语句
    2. led 在 always 中赋值后,就不能在其他的 always 或 assign中赋值
    3. 你可以定义一个中间值,再用 assign 赋值
    module mx(
        input a,clk,
        output led);
    reg led_r;
    always@(posedge clk)
    begin
    led_r <=a;
    end
    assign led=led_r;
    endmodule
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 10月25日
  • 已采纳回答 10月17日
  • 创建了问题 10月16日

悬赏问题

  • ¥20 求文心中文心理分析系统(TextMind)
  • ¥15 chipyard环境搭建问题
  • ¥15 python,pyopenGL的OBV渲染无法设置透明
  • ¥20 matlab可以把多个二维图合成为三维瀑布图吗
  • ¥15 EEPROM,软件i2c
  • ¥500 求解读该段JS代码,需要知道是用干什么的
  • ¥20 qt4代码实现二进制文件读取显示,以及显示的内容进行搜索
  • ¥15 Labview获取LK-G3001数据
  • ¥15 我知道什么是混合树,但是怎么写代码啊
  • ¥50 开发板linux系统安装dpkg,apt函数库 有偿