verilog - 带有二进制数的 For 循环
问题描述
我想for
在 Verilog 中使用循环从二进制 0000000 到 0011111。我对for
循环的增量部分有疑问。我应该如何移动才能到达 0011111?
我尝试了以下代码,但它给了我一个错误。
for(DATA_IN=7'b0000000; DATA_IN<=7'b0011111; 1<<DATA_IN);
解决方案
要在每次循环中增加 1,请使用DATA_IN=DATA_IN+1
. 这是一个独立的示例:
module tb;
reg [7:0] DATA_IN;
initial begin
for (DATA_IN=7'b0000000; DATA_IN<=7'b0011111; DATA_IN=DATA_IN+1) begin
$displayb(DATA_IN);
end
end
endmodule
输出:
00000000
00000001
00000010
00000011
00000100
00000101
00000110
00000111
00001000
00001001
00001010
00001011
00001100
00001101
00001110
00001111
00010000
00010001
00010010
00010011
00010100
00010101
00010110
00010111
00011000
00011001
00011010
00011011
00011100
00011101
00011110
00011111
推荐阅读
- amazon-web-services - AWS Elastic Beanstalk:未知主机
- sql - 尝试更新非事务性表时出现 Hive 错误
- javascript - 如何从 TODO 列表中显示删除按钮
- r - 如何将 SharePoint 列表加载到 R 中的小标题中?
- android - 如果用户隐藏了通知通道,关联的前台服务是否还能成功启动?
- halide - Halide: Var 声明格式
- python-3.x - 为什么 anaconda3 安装似乎以 python2 而不是 python3 结束
- typescript - 如何在 VS 代码中禁用保存时自动加入行?
- python - 解析 XML 时出错:列表索引必须是整数或切片,而不是 Str
- powershell - 当显示名称中有特殊字符时,获取通讯组中所有显示名称的 SMTP 地址