Verilog 语言求助

[复制链接]
查看11 | 回复2 | 2010-5-14 16:41:10 | 显示全部楼层 |阅读模式
WCDMA中ovsf码的扩频码FPGA仿真有两个错请高手给点指点 错行有标记!!错误说明在下面
module ovsf(clk,reset,SF,K,code);!!!!!!!!!!!!!!!!
input clk;
input reset;
input [2:0]SF;
input [8:0]K;
output code;
reg[8:0]cnt;
wire[8:0]dsf;
assign dsf=(SF==3`b000)?3:(SF==3`b001)?7:(SF==3`b010)?15:(SF==3`b011)?31:(SF==3`b100)?:63(SF==3`b101)?127:(SF==3`b110)?255:511;!!!!!!!!!!!!!!!!!
wire[8:0]k_tmp;

always@(posedge clk)begin

if(!reset)

cnt<=dsf;

else

if(cnt==dsf)

cnt<=0;

else

cnt<=cnt+1;

end

assign k_tmp=(SF==3`b000)?{1`b0,1`b0,1`b0,1`b0,1`b0,1`b0,1`b0,K[0],K[1]}:

(SF==3`b001)?{1`b0,1`b0,1`b0,1`b0,1`b0,1`b0,K[0],K[1],K[2]}:

(SF==3`b010)?{1`b0,1`b0,1`b0,1`b0,1`b0,K[0],K[1],K[2],K[3]}:

(SF==3`b011)?{1`b0,1`b0,1`b0,1`b0,K[0],K[1],K[2],K[3],K[4]}:

(SF==3`b100)?{1`b0,1`b0,1`b0,K[0],K[1],K[2],K[3],K[4],K[5]}:

(SF==3`b101)?{1`b0,1`b0,K[0],K[1],K[2],K[3],K[4],K[5],K[6]}:

(SF==3`b110)?{1`b0,K[0],K[1],K[2],K[3],K[4],K[5],K[6],K[7]}:

{K[0],K[1],K[2],K[3],K[4],K[5],K[6],K[7],K[8]};


assign code=^(k_tmp&cnt);



endmodule
错误行说明
Error (10112): Ignored design unit "ovsf" at ovsf.v(1) due to previous errors
Error (10170): Verilog HDL syntax error at ovsf.v(10) near text ":";expecting an identifier, or a number, or a system task, or "(", or "{", or unary operator
解答后有加分多谢

回复

使用道具 举报

千问 | 2010-5-14 16:41:10 | 显示全部楼层
主要是由第二个错误引起的,assign dsf=(SF==3`b000)?3:(SF==3`b001)?7:(SF==3`b010)?15:(SF==3`b011)?31:(SF==3`b100)?:63(SF==3`b101)?127:(SF==3`b110)?255:511;!!!!!!!!!!!!!!!!!中括号的数量不是对应的,最后导致code没有输出,整个模块无效,修改第二个错误,前一个错误自然就没有了! 修改如下:module ovsf(clk,reset,SF,K,code); input clk; input reset; input [2:0]SF; input [8:0]K; ou
回复

使用道具 举报

千问 | 2010-5-14 16:41:10 | 显示全部楼层
always不是循环语句,always是一个进程块。always@(aorborc)我们经常能看到的always语句如上面那句,当括号里的a,b或c信号发生变化的时候,这个always模块就被激活,模块中的语句才能执行。括号里的信号称之为敏感信号列表。所有的always块之间是并行的关系,谁在前谁在后不影响执行的顺序。fo
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行