微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC后端设计交流 > 每日一思2

每日一思2

时间:10-02 整理:3721RD 点击:
为鼓励大家讨论,勤学多思,开设每日一思栏目,涉及基本概念,设计技巧,前沿话题。无论是新人还是资深工程师,你只需每天花一点时间去思考,参与讨论,我们后端版区的囗号是:每天进步一点点!
——————————————————————————
考虑设计这样一个电路:
给定源时钟为CLK,给定选择信号为sel,sel来选择CLK,CLK的2分频,CLK的4分频,CLK的8分频这四路中的任意一路时钟。要求:无论sel从高速时钟切向低频时钟,还是由低频时钟切向高速时钟,选择出来的时钟要求glich-free。(sel是由它选择出来的时钟来驱动的)。
1.用门搭建这样的电路。
2.在后端怎样配合约束。

求大神们解答
后端小白表示完全看不懂,只见过这样的结构是四个两输入与门的输出接入一个四输入的与门

琢磨很久啊,窃以为高向低切换glitch free比较好实现,但低向高切换就比较不容易做到啦。

glich-free是什么意思?是说选择出来的时钟尽可能独立吗?


4个上升沿触发寄存器,4个下降沿触发寄存器,4个2输入与门,1个4输入或门,4个4输入与门,一个编码器
1.编码器将sel信号编码成sel0,sel1,sel2,sel3四个信号
2.上升沿寄存器0,与下降沿寄存器0进行级联(相同时钟驱动clk),下降沿时钟生成两个信号——q0,q0n
3.将q0与clk进行&逻辑,生成clk_gate输出
4.复制2和3步骤3次,分别实现clk2,clk4,clk8的门控功能,并且生成q1n,q2n,q3n和clk2_gate,clk4_gate,clk8_gate.
5.其中上升沿寄存器0的D端连接sel0&q1n&q2n&q3n,依次类推,上升沿寄存器1的D端连接sel1&q0n&q2n&q3n。
6.将生成的clk_gate,clk2_gate,clk4_gate,clk8_gate使用四输入的或门进行“|”逻辑
7.完成
但是小编说的是分频时钟,所以可以选择取消上升沿寄存器直接使用1级下降沿寄存器,但是通常我会选择级联使用。
后端处理:
1.综合的时候需要使用create_generated_clock进行时钟的指定,并且使用-add加载到最终生成的线上
2.但是这样还会出现时钟门控处的时序问题,我的做法是使用Macromodule将寄存器的时钟树长缓
3.不过不知道能不能使用IO/D pin balance这种方法实现,还没有试过。最后仿真,没问题就OK 了。
小编有答案么?

小编,求答案!

假设输入那个时钟叫做root_clk
选出来的clk_clk所连接的逻辑应该都约束在root_clk时钟频率上,分频的时钟做到上升沿对齐,用root_clk_inv做cnt,sel只在这个cnt=0的时候变

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top