蓝志少 2022-03-10 14:06 采纳率: 50%
浏览 34
已结题

HDLbits中Mux256to1v例题报错

HDLbits Multipluxers这一节

问题题干:
Create a 4-bit wide, 256-to-1 multiplexer. The 256 4-bit inputs are all packed into a single 1024-bit input vector. sel=0 should select bits in[3:0], sel=1 selects bits in[7:4], sel=2 selects bits in[11:8], etc.

代码

module top_module( 
    input [1023:0] in,
    input [7:0] sel,
    output [3:0] out );
    
  //正确答案为:
    assign out = {in[sel * 4 + 3], in[sel * 4 + 2], in[sel * 4 + 1], in[sel * 4]};
   //为什么 assign out=in[sel * 4 + 3:sel * 4]; 会报错

endmodule

为什么用:assign out=in[sel * 4 + 3:sel * 4]; 编译就会报错,显示sel不是一个constant value?

  • 写回答

1条回答 默认 最新

  • 老皮芽子 2022-03-10 15:30
    关注

    数组按位寻址使用
    比如 in[a]
    a 可以是变量也可以是常量。
    数组不按位寻址使用
    比如 in[a:b]
    a,b 只能是是常量。

    你可以这样写会简单些
    assign b =in >> (sel * 4);

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 3月18日
  • 已采纳回答 3月10日
  • 创建了问题 3月10日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度