返回信息流想用一个整数来控制循环,可是定义integer i;后出现如下错误
** Error: E:/knn/knn.v(14): near "integer": syntax error, unexpected "integer"
在另外一个文件中,同样的方法定义了一个integer j;,错误如下:
** Error: E:/knn/knn_tseter.v(17): Declarations not allowed in unnamed block.
求助大牛这是为啥呢~~~?》
这是一条镜像帖。来源:北邮人论坛 / circuit / #15313同步于 2010/10/25
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Circuit机器人发帖
【求助】modlesim中的整数问题
pekinlcc
2010/10/25镜像同步10 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
Verilog中也要加库吗?。。。。
好吧,确实没有加
【 在 sharpwinner 的大作中提到: 】
: 注意检查附近有没有语法错误
: 是不是没有加入IEEE.std_logic_1164.all?
: --
: ...................
`timescale 1ns/1ns
module discomp(knn_dis,knn_cid,comp_buffer_dis,comp_buffer_cid);
parameter k=4;
input [7:0] knn_dis [0:k-1];
input knn_cid [0:k-1];
input [7:0] comp_buffer_dis [0:k-1];
input comp_buffer_cid [0:k-1];
reg [7:0] temp [0:k-1];
always @ (dis_to_comp)
integer i;//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!错误在此
for(i=0;i<k;i=i+1)
begin
if(knn_dis[i]>comp_buffer_dis[i])
temp[i]=knn_dis[i];
knn_dis[i]=comp_buffer[i];
comp_buffer[i]=temp[i];
else
$display("No need to exchange");
end
endmodule
** Error: E:/knn/knn_tseter.v(17): Declarations not allowed in unnamed block.
这样不就很清楚咯
错误说明:不允许在未命名的模块中声明变量
要么给这个块加个名字(具体怎么加我也不清楚,⊙﹏⊙b汗),要么把i的声明放到always块外边。
用generate吧
给你个例子,照着葫芦画瓢
不光是例化,所有这种重复性的语句都可以用generate
[quote]
generate
genvar ii;
for (ii=0; ii<=31; ii=ii+1) begin : uut_Interp_linear_GOP
Interp_linear_GOP unit (
//input
.rst_n ( rst_n ),
.clk_122m88 ( clk_122m88 ),
.data_in ( q[ii] ),
.data_in_valid ( data_valid_demux_linear ),
.bit_R ( bit_R ),
//output
.data_out ( data_out_wire[ii] ),
.data_out_valid ( d_out_30m72_valid[ii] )
);
end
endgenerate
[/quote]
【 在 pekinlcc (helloworld) 的大作中提到: 】
: `timescale 1ns/1ns
: module discomp(knn_dis,knn_cid,comp_buffer_dis,comp_buffer_cid);
: parameter k=4;
: ...................