搜索
bottom↓
回复: 24

分频的时钟信号能否作为always的时钟?

[复制链接]

出0入0汤圆

发表于 2015-9-3 06:53:42 | 显示全部楼层 |阅读模式
本帖最后由 atom100 于 2015-9-3 06:57 编辑

请教,使用xilinx 的xc6slx ,输入了一个10mhz的时钟,通过pll得到了一个100mhz的时钟,此时想再得到一个25mhz的时钟,但因为参数的关系,不能通过fpga的pll获得,而是只能通过
reg [2:0]cnt;
reg        clk_25m;

                    always@(posedge clk100mhz or negedge rst_n)
                         if(!rst_n)
                                cnt <= 2'd0;
                        else  
                                cnt <= cnt  + 2'd1;
      

                    always@(posedge clk100mhz or negedge rst_n)
                         if(!rst_n)
                                 clk_25m <= 1'b0;
                        else  if(cnt == 2'd0)
                                 clk_25m <= ~clk_25m ;       
下面通过分频获得的 clk_25m是否 可以作为另外一个always@(posedge clk_25m or negedge rst_n)模块的 驱动时钟 ?
或者是否有其他好的解决办法 ?

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

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2015-9-3 07:32:19 | 显示全部楼层
我在别人写的代码里面见过这样用的

出0入0汤圆

 楼主| 发表于 2015-9-3 08:17:20 | 显示全部楼层
pl的倍频分频不合适,能这样用吗 ?感觉 有点问题

出0入8汤圆

发表于 2015-9-3 08:42:34 | 显示全部楼层
性能不如pll好吧
pll走的是全局时钟网络没有延时,用计数器分出来的时钟会有延时

出0入0汤圆

发表于 2015-9-3 09:06:03 来自手机 | 显示全部楼层
不建议,这种类型的计数器类似于行波计数器,属异步时序设计范畴。

出0入0汤圆

发表于 2015-9-3 09:55:24 | 显示全部楼层
简单的应用也行,但在稍复杂的工程中,就会出现问题。一般不建议这样用。

出0入0汤圆

发表于 2015-9-3 19:17:48 | 显示全部楼层
可以的,但是不建议你这么做因为你这样做你的工程会是在多个时钟域下面,形成成跨时钟域

出0入0汤圆

发表于 2015-9-3 22:12:27 来自手机 | 显示全部楼层
完了,我这么做了好多个工程啊。。需要100k的时钟,难道也必须要pll吗?

出0入0汤圆

发表于 2015-9-3 22:52:03 | 显示全部楼层
在ASIC设计里面可以这样做,只要在约束时表明generated clock;在FPGA里面应该也是没问题,在clock约束部分要说明;另外,这种四分频的话,是属于同步时钟,但是如果有数据要跨时钟域,就要用FIFO之类的做隔离,或者做延时等等

出0入0汤圆

发表于 2015-9-3 22:57:45 来自手机 | 显示全部楼层
既然你上来问了,就不建议你这样用。见过很多大厂家的asic这样用的。要约束好,不然会出问题。

出0入0汤圆

发表于 2015-9-4 12:07:17 | 显示全部楼层
可以把分频获得的 clk_25m用作使能信号,时钟还是用100m

出0入0汤圆

发表于 2015-9-7 09:51:57 | 显示全部楼层
可以用的,已经在项目中验证,的确可能存在跨时钟域问题

出0入0汤圆

发表于 2015-9-7 10:06:46 | 显示全部楼层
本帖最后由 dr2001 于 2015-9-7 10:23 编辑

具体看所实现逻辑的需求。

在FPGA内,最常见的方法是CKE做Gating。即低速逻辑依然用100M CLK驱动,但是用低占空比的CKE把实际工作频率拉下来。
这么干的缺点是默认情况下,布局布线还是按照100M来的;REG-REG延迟大的话(比如用到复杂组合逻辑),又没有正确给出时序约束,静态时序检查可能不过。
好处就是没跨时钟域的问题。
如果能正确加约束,这个对于新的FPGA来说,似乎是首选。(新的FPGA一般CKE可以上全局线;老版本的FPGA不一定支持这个功能。)

分频获得的时钟是组合逻辑时钟,可以用于驱动REG,这点没问题。如果需要把这个时钟馈给全局时钟线,可能需要例化全局时钟的Buffer或者给出相关的约束。
这个的好处是实打实的时钟频率低了,容易给约束;而且布局布线都按照低频时钟来的,容易过。
缺点是时钟的Jitter会比较大,不一定满足设计的要求;此外就是时钟网络中的时钟和原始时钟没有非常严格的相位关系,一般来说要多CDC的处理。
(其实相位关系是相对稳定的,但是FF和布线延迟带来的Jitter大,不一定需要CDC。)

出0入0汤圆

发表于 2015-9-7 14:53:46 | 显示全部楼层
本帖最后由 jm2011 于 2015-9-7 14:54 编辑
kongethan 发表于 2015-9-7 09:51
可以用的,已经在项目中验证,的确可能存在跨时钟域问题


点击错了,看下一个回复;

出0入0汤圆

发表于 2015-9-7 14:54:32 | 显示全部楼层
lanliang714 发表于 2015-9-4 12:07
可以把分频获得的 clk_25m用作使能信号,时钟还是用100m

基本原理,标准做法,赞一个;

否则就用PLL吧;

出0入0汤圆

 楼主| 发表于 2015-9-8 00:16:34 | 显示全部楼层
xiaocat85 发表于 2015-9-3 22:52
在ASIC设计里面可以这样做,只要在约束时表明generated clock;在FPGA里面应该也是没问题,在clock约束部分 ...

“在FPGA里面应该也是没问题,在clock约束部分要说明;”
请教:使用generate clock来表明这是个 时钟  就可以了吧 ?

出0入59汤圆

发表于 2015-9-8 08:41:03 | 显示全部楼层
绝大多数应用都是没问题的,但是必须做好声明和约束,另外要注意跨时钟域处理

把分频获得的 clk_25m用作使能信号,时钟还是用100m      是更标准的做法

出0入0汤圆

发表于 2015-9-8 13:22:57 | 显示全部楼层
不建议使用,因为分频时钟的延迟会产生奇奇怪怪的问题。越复杂的设计,出问题的概率越大。我认为加时钟约束不是最好的办法,因为这样加大了工作量,同时也引入了问题点。最好的办法还是pll,如果情况特殊可以另当别论

出0入0汤圆

发表于 2015-9-8 23:31:24 | 显示全部楼层
atom100 发表于 2015-9-8 00:16
“在FPGA里面应该也是没问题,在clock约束部分要说明;”
请教:使用generate clock来表明这是个 时钟   ...

是的,在Quartus里面可以直接用SDC约束

出0入0汤圆

 楼主| 发表于 2015-9-9 04:48:18 | 显示全部楼层
dykwai1 发表于 2015-9-8 08:41
绝大多数应用都是没问题的,但是必须做好声明和约束,另外要注意跨时钟域处理

把分频获得的 clk_25m用作使 ...

请教,clk_25m做使能信号?是做一个寄存器的使能信号?没理解

出0入59汤圆

发表于 2015-9-9 10:01:22 | 显示全部楼层
以100m为时钟,每一个上升沿,判断clk25信号的状态高低,找到clk25的边沿

出0入0汤圆

发表于 2015-9-9 10:15:54 | 显示全部楼层
  1. always@(posedge system_clk)
  2. begin
  3.         clk_buf <= divider_clk;
  4. end
  5. always@(posedge system_clk)
  6. begin
  7.         if(!clk_buf && divider_clk)//detected the rise edge of divider clk
  8.         begin
  9.                 ****
  10.         end
  11.         else
  12.         begin
  13.                 ****
  14.         end
  15. end
复制代码

出0入0汤圆

发表于 2015-9-9 16:03:39 | 显示全部楼层
当然是可以的啊

出0入0汤圆

发表于 2015-9-15 15:45:24 | 显示全部楼层
可以的,但尽量少用敏感信号

出0入0汤圆

发表于 2015-9-15 17:15:43 | 显示全部楼层
这种信号少的话,也是可以使用的,综合的时候也会到时钟网络上去,不用担心
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-10 08:27

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

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