我用cpld做一个简单时序转换的程序,但是改了很多次ISE还是不能综合,
请兄弟们看看哪里有问题??似乎非阻塞赋值有问题.
综合时报错例如Line 54: Syntax error near "<=".很多很多
我觉得语法上可能有错误
请大家指正
module RESOLVER_DATA_CHANGE(CLK20M,CLK_IN,DATA_IN,CLK_OUT,DATA_OUT,CS);
input CLK20M; //外挂有源晶振20M
input CLK_IN; //外部同步时钟输入
input DATA_IN; //外部信号输入
output DATA_OUT; //数据输出
output CLK_OUT; //同步时钟信号输出
output CS; //片选信号输出
reg DATA_OUT; //寄存器声明
reg CLK_OUT;
reg CS;
reg [3:0] CNT; //4位计数器声明
reg [6:0] CNT20M; //7位计数
initial
begin
CNT<=2'b00000;
DATA_OUT<=1;
CLK_OUT<=0; //旋变的时钟输入空闲时候为低电平
CS<=0; //初始值cs使能,上电时可读
end
always @ ( posedge CLK20M )
if(CNT20M==40)
CNT20M<=CNT20M+1;
CS<=0;
DATA_OUT<=1;
else if(CNT20M==13)
CNT20M<=CNT20M+1;
DATA_OUT<=DATA_IN;
else if(CNT20M==10)
CNT20M<=CNT20M+1;
CLK_OUT<=0;
else if(CNT20M==30)
CNT20M<=CNT20M+1;
DATA_OUT<=0;
else
CNT20M<=CNT20M+1;
always @ ( negedge CLK_IN )
begin
if (CNT==13)
begin CNT<=0;
CS<=1;
end
else if (CNT==0)
begin
CNT<=CNT+1;
CLK_OUT<=1;
CNT20M<=0;
DATA_OUT<=0;
end
else
begin
CNT<=CNT+1;
CLK_OUT<=1;
CNT20M<=0;
end
end
endmodule |