verilog错误及解决方法
1.Identifier must be declared with a port mode: acount.
端口定义存在问题 未定义acount,bcount为输出还是输出:
odule traffic(clk,en,lampa,lampb,acount,bcount);
input clk;
input en;
output [3:0] lampa;
output [3:0] lampb;
解决方案
module traffic(clk,en,lampa,lampb,acount,bcount);
input clk;
input en;
output [3:0] lampa;
output [3:0] lampb;
output [10:0]acount;
output [10:0]bcount;
2.Illegal reference to net “counta”.
reg、wire的定义错误:
wire [2:0] counta;
always @(posedge clk)begin
if(en)begin
if(!tempa)begin
tempa<=1;
case(counta)
0:begin
numa=agreen;
lampa<=4'b0010;
counta<=1;
解决方案
always设计的信号中都定义为reg型
wire [2:0] counta;
**改为**reg [2:0] counta;
注意: always设计中可能存在的错误还有阻塞赋值、非阻塞赋值
组合逻辑中应使用阻塞赋值“=”
时序逻辑中使用非阻塞赋值“<=“
3.near “wire”: syntax error, unexpected wire, expecting IDENTIFIER or TYPE_IDENTIFIER or NETTYPE_IDENTIFIER.
赋值语句语法错误:
module yinyue (sys_clk,beep,);
input sys_clk;
output beep;
reg beep_r;
reg [7:0] state;
reg [15:0] count,
wire [15:0] count_end;
reg [23:0] count1,
解决方案
reg [23:0] count1,
将,改为;
即reg [23:0] count1;
更多推荐
verilog错误及解决方法
发布评论