verilog HDL 编译出错syntax error:input <-

来源:百度知道 编辑:UC知道 时间:2024/05/18 22:54:04
verilog HDL syntax error:input <-
这个原因是什么?
代码:
/*分频电路
clk_48m输入48mhz时钟
输出:clk_1k,clk,clk2,clk_50
文件名:cfen.v
最后修改日期:2009.11.26
*/

module cfen(clk_48m,clk_1k,clk,clk2,clk_50)
input clk_48m;
output clk_1k,clk,clk2,clk_50;
reg clk_1k,clk,clk2,clk_50;
reg counter1,counter2,counter3;

always @(posedge clk_48m)
if (counter1==23999) begin counter1<=0; clk_1k<=~clk_1k;end
else counter1<=counter1+1;

always @(posedge clk_1k)
if (counter2==124) begin counter2<=0; clk<=~clk;end
else counter2<=counter2+1;

always @(posedge clk_1k)
clk2<=~clk2;

always @(posedge clk2)
if(counter3==4) begin counter3<=0;clk_50=clk_50;end
else counter3<=counter3+1;

endmodule

module cfen(clk_48m,clk_1k,clk,clk2,clk_50)
该行最后要加冒号

output clk_1k,clk,clk2,clk_50;
reg clk_1k,clk,clk2,clk_50;
这里output和reg重复声明了同样的信号名
要不就用 output reg clk_1k,clk,clk2,clk_50;

要不就另声明一个reg r_clk_1k,r_clk,r_clk2,r_clk_50;
然后
assign clk_1k = r_clk_1k;
assign clk = r_clk;
assign clk2 = r_clk2;
assign clk_50 = r_clk_50;
个人建议第二个,麻烦点,但是思路清晰。

水平有限,错误请指正