搜索
bottom↓
回复: 6

一个简单的FPGA分频

[复制链接]

出0入0汤圆

发表于 2009-12-16 20:05:15 | 显示全部楼层 |阅读模式
这样的分频程序很多吧,边沿触发,实现16分频。
/**************************************************/
module clk_generator(reset_n,clk_in,clk_out);
input reset_n,clk_in;
output clk_out;
/**************************************************/
reg clk_out;
reg [3:0] i;
/**************************************************/
always @(negedge clk_in or negedge reset_n) begin
if(!reset_n) i=4'b0000;
else begin  
      i=i+1'b1;
      clk_out=i[3];
      end
end
endmodule
/**************************************************/
下面这个呢?
/**************************************************/
module clk_generator(clk_in,clk_out);
input clk_in;
output clk_out;
/**************************************************/
reg clk_out;
reg [3:0] i;
/**************************************************/
always @(clk_in) begin
      i=i+1'b1;
      clk_out=i[3];
end
endmodule
/**************************************************/
只是改为了电平触发,会出现下面的警告:
Warning: Verilog HDL Always Construct warning at LED.v(60): variable "i" is read inside the Always Construct but isn't in the Always Construct's Event Control.
提示i不在敏感变量里面。仿真结果也不对。
不知道这样为什么不行,请大虾指点下?感激不尽!

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2009-12-16 20:25:10 | 显示全部楼层
坚持同步时序逻辑设计,不要用电平触发

出0入0汤圆

发表于 2009-12-16 21:29:47 | 显示全部楼层
你改下看怎么样?
always @(clk_in or i) begin

不过不推荐这么做。

出0入0汤圆

发表于 2009-12-16 22:15:39 | 显示全部楼层
always @(negedge clk_in or negedge reset_n) begin
if(!reset_n) i=4'b0000;
else begin  
      i<=i+1'b1;
     
      end
end
assign  clk_out=i[3];

endmodule

出0入0汤圆

 楼主| 发表于 2009-12-18 11:44:14 | 显示全部楼层
改成always @(clk_in or i) 不行,原理上也不对啊。
用边沿触发可以得到正确的分频,用电平触发就不可以了,还是没搞清楚为什么...........。

出0入0汤圆

发表于 2009-12-18 13:58:51 | 显示全部楼层
always @(clk_in)这样写综合成组合逻辑
always @(posedge clk_in)被综合成时序逻辑

组合逻辑是只要输入变了输出就会变,时序逻辑和时钟有关系。

你把 i=i+1 这种表达形式拆开成与或非的表达形式看看就明白为什么

而且你这么写与综合器和器件都有很大关系,用cyclone都被综合掉,用cycloneii还有三个lut,我手上没板子,你自己可以试下。

出0入0汤圆

发表于 2011-10-25 16:56:21 | 显示全部楼层
mark 分频
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 11:28

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表