不知道for循环里出什么问题了,verilog的问题求教

Error (10170): Verilog HDL syntax error at Verilog1.v(6) near text "for"; expecting an identifier ("for" is a reserved keyword ), or "endmodule", or a parallel statement

module CRC_SER(Data_in,Crc_out);
input [63:0] Data_in;
integer i,j,Soc;
output [15:0] Crc_out;
assign Crc_out=16'hFFFF;
for(i=63;i>0;i=i-8)
begin
Crc_out[7:0]= Crc_out[7:0]^ Data_in[i:i-7];
for(j=1;j<9;j=j+1)
begin
Soc=Crc_out[0];
Crc_out>>1;
if(Soc)
Crc_out=Crc_out^16'h1021;
end
end
$display("The CRC-16 code is %h hex",Crc_out);
endmodule

verilog编程建议少使用或不使用For循环,for循环占用太多的资源,尽量用if语句
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-13
module verilog1(Data_in,Crc_out);
input [63:0] Data_in;
integer i,j,Soc;
output [15:0] Crc_out;
assign Crc_out=16'hFFFF;
always@(Crc_out or Data_in)
begin
for(i=63;i>0;i=i-8)
begin
Crc_out[7:0]= Crc_out[7:0]^ Data_in[i:i-7];
for(j=1;j<9;j=j+1)
begin
Soc=Crc_out[0];
Crc_out <= Crc_out >> 1;
if(Soc)
Crc_out=Crc_out^16'h1021;
end
end
end
endmodule
您这个太混乱了不知道你要实现什么功能?
我就改到这里,还有一个问题Crc_out可能需要再多加一个寄存器.你好好看看语法书吧
相似回答
大家正在搜