Verilog HDL第59行报10170语法错误:posedge处需操作数求解决
Verilog语法错误Error (10170)解决方法
错误原因
第59行的posedge(clk)是非法用法。你写的是边沿触发的always块,敏感列表@(posedge clk or negedge nReset)已经指定了代码块的触发时机是时钟上升沿或复位下降沿,代码块内部不需要再用posedge(clk)来判断时钟沿——这个条件完全多余且不符合Verilog语法规范,这就是报错“posedge附近缺少操作数”的原因。
修正后的代码
always @(posedge clk or negedge nReset) begin if (minute_start_in == 1'b1) begin counter <= 0; end else if (nReset == 1'b0) begin counter <= 0; dcf_values <= 59'b0; end else if (clk_en_1hz == 1'b1) begin // 修正第59行,去掉posedge(clk)判断 dcf_values[counter] <= ~dcf_Signal_in; counter <= counter + 1; end end
额外说明:原代码末尾的end;是多余写法,end后无需加分号,修正时已一并去除。
内容的提问来源于stack exchange,提问作者SilverShroud
相关产品推荐
相关产品推荐

