陈晖洁的首席小迷弟 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日

悬赏问题

  • ¥15 Stata链式中介效应代码修改
  • ¥15 latex投稿显示click download
  • ¥15 请问读取环境变量文件失败是什么原因?
  • ¥15 在若依框架下实现人脸识别
  • ¥15 添加组件无法加载页面,某块加载卡住
  • ¥15 网络科学导论,网络控制
  • ¥100 安卓tv程序连接SQLSERVER2008问题
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用