verilog - 在 for 循环中使用 assign
问题描述
我试图在 for 循环中分配 I/O 向量以节省空间。我不确定这是不可能的,或者我遇到了语法问题。
我已经尝试使用 generate 并且仍然遇到问题
我目前的代码如下:
module Test_IO
(
output [7:0] led,
input [7:0] sw
);
genvar i;
generate
for(i = 0;i < 8; i = i + 1)
{
assign led<i> = sw<i>;
}
endgenerate
endmodule
我希望节省空间,而不必使用 8 个分配语句,但我收到以下错误:
ERROR:HDLCompiler:806 -
"C:/Users/Danie/Desktop/Digilent/Projects/Test_IO/Test_IO.v" Line 31:
Syntax error near "{".
解决方案
我假设您使用的是verilog。试试下面的代码。你真的不需要 genvar 来完成你正在做的任务。
module Test_IO
(
output [7:0] led,
input [7:0] sw
);
genvar i;
generate
for(i = 0;i < 8; i = i + 1)
assign led[i] = sw[i];
endgenerate
endmodule
或者你也可以试试下面的
module Test_IO
(
output reg [7:0] led,
input [7:0] sw
);
integer i;
always@(*)
begin
for(i=0;i<8;i=i+1)
led[i] = sw[i];
end
endmodule
推荐阅读
- snmp - 如何使用 snmpwalk 从自定义 mib 文件中列出节点?
- python - 不和谐机器人嵌入
- javascript - 为什么在 map 异步循环中更改参数仅适用于第一个异步函数调用?
- python - 如何使用 groupy 创建数据框,以便分组标准包含在数据中
- python - 当我尝试获取所有盒子分数时出现回溯错误
- java - Textview 中的大十进制值支持
- javascript - 无法使用客户端签名调用将图像上传到 Cloudinary - 签名无效
- angular - 在转换管道中使用链式可观察对象
- javascript - 从嵌入消息 Discord.JS 中读取信息
- c - 为什么我的字符串在离开它所包含的 for 循环后会改变内容