표준 양식 (64 비트 숫자의 경우 IEEE 754 부동 소수점 표준)으로 제공해야하는 52 비트 승수에 대한 코드를 작성했습니다. 그래서 나중에 나는 얼마나 많은 비트가 64를 초과했는지를 검사하고 있습니다. 그래서 그 수를 지수로 넣을 것입니다.Verilog 코드 오류 : 범위는 상수 식으로 제한되어야합니다.
module mul1(output reg [103:0] p,
output reg [51:0] c,
input [51:0] x,
input [51:0] y);
reg [103:0]a;
integer i;
always @(x , y)
begin
a=x;
p=0; // needs to zeroed
for(i=0;i<104;i=i+1)
begin
if(y[i])
p=p+a; // must be a blocking assignment
a=a<<1;
end
for(i=103;i>=0;i=i-1)
begin
if (p[i])
c=p[i:i-51];
break;
end
end
endmodule
가 에러를 제공한다 : 범위 선의 상수 식에 의해 제한되어야한다 : C = P [I : I-51]; 어떻게 해결할 수 있습니까?
가능한 중복 [Verilog : "... is not a constant"] (http://stackoverflow.com/questions/29815974/verilog-is-not-a-constant) – Qiu