verilog 十六位减法器 每一秒减一

Super_CCo 2016-05-23 07:48:17
module clock_div(
input clk,
output clkout
);
reg clkout=0; //此处有错误
reg [25:0] div_counter=0;
always@(posedge clk)
begin
if(div_counter>=50000000) begin
clkout<=~clkout;
div_counter<=0;
end else begin
div_counter<=div_counter+1;
end
end
endmodule
以上为分频器单独运行没有问题


module counter16(
input clk1,
output [15:0] counter,
output clkout1,
input restn
);
// parameter clk_fre=16'b1000;

reg [15:0] counter;

clock_div u(.clk(clk1),.clkout(clkout1));
always@(posedge clkotut or negedge restn)
begin
if(!restn)
counter=16'b0;
else begin
if(counter==0) counter=16'b1111111111111111;
else counter=counter-1;
end
end


//else begin


// end
endmodule

这是十六位减法器 每秒减一 可是每次运行就会有错误存在在分频器里
[Synth 8-2611] redeclaration of ansi port clkout is not allowed ["C:/Users/Administrator/EX_5/clock_div/clock_div.srcs/sources_1/new/clock_div.v":27]
如上
...全文
1679 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_29370191 2016-07-17
  • 打赏
  • 举报
回复
你第二个的模块里边的敏感变量有问题吧,怎么会使用 clkout? 那个是wire形的
wuyanwen1 2016-07-08
  • 打赏
  • 举报
回复
围观,学习
  • 打赏
  • 举报
回复
module counter16这个模块中都没有clkotut,always@(posedge clkotut or negedge restn)这个引用应该过不去吧?
chyupn 2016-05-26
  • 打赏
  • 举报
回复
在端口定义中直接定义reg类型,如下试试 module clock_div( input clk, output reg clkout ); //reg clkout=0; //此处有错误
Super_CCo 2016-05-24
  • 打赏
  • 举报
回复
哪里有做输入的?? 上面的分屏器单独可以用 但是引用模块到计数器里就报错说是分屏器有问题。。 想请教一下怎么改
fly 100% 2016-05-24
  • 打赏
  • 举报
回复
你的clkout 是输出的,你怎么做输入用的
fly 100% 2016-05-24
  • 打赏
  • 举报
回复
module counter16( input clk1, output [15:0] counter, output clkout1, input restn ); // parameter clk_fre=16'b1000; reg [15:0] counter; reg clkout_div=0 clock_div u(.clk(clk1),.clkout(clkout_div)); clkout1 <=clkout_div; always@(posedge clkotut or negedge restn) begin if(!restn) counter=16'b0; else begin if(counter==0) counter=16'b1111111111111111; else counter=counter-1; end end //else begin // end endmodule 这样试试

6,125

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 硬件设计
社区管理员
  • 硬件设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧