在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2086|回复: 4

[求助] clkmux以及多个时钟约束

[复制链接]
发表于 2023-4-13 05:20:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
我们在设计一个数字钟表的芯片。芯片的时钟由晶振提供,但是我们担心晶振电路不能用,所以设计了另一个port叫external_clk,我们预想的是综合结果是一个mux,输入分别的晶振和external_clk,输出是clk_out,这个clk_out会连接到所有的dff上。但是现在综合的结果并没有生成一个clk_mux,而是生成了一个由nand,or等逻辑门组成的模块,但是这个模块和mux的功能是一样的,所以我感觉应该是sdc写的不对。

另外整个设计中另一个clk_strobe, 频率是1mhz。

总的来说 3个clk, crystal和external_clk都应该是32khz,是mux的输入。clk_strobe是1mhz

以下是我的sdc

set clock_period1 30517
set clock_period2 1000
creat_clock -name clk0 -period $clkperiod1 [get_ports crystal]
creat_clock -name clk1 -period $clkperiod1 [get_ports external_clk]
creat_clock -name clk2 -period $clkperiod2 [get_ports external_clk]

set_clock_groups -logically_exclusive -group{clk0} -group{clk1}


set_clock_groups -asynchronous -group{clk0 clk1} -group{clk2}

综合后没有报错,但是看netlist文件,并没有生成clkmux。
发表于 2023-4-13 08:14:37 | 显示全部楼层
手动例化std cell。设置dont touch.   另外想想要不要考虑glitch free mux
发表于 2023-4-13 09:08:27 | 显示全部楼层
约束不应该影响代码综合方式。使用组合逻辑做clkmux的话,得综合软件能够识别对应电路。
如果使用的是fpga,clkmux有专门的原语,比如BUFGMUX,推荐使用这种方式。
 楼主| 发表于 2023-4-13 22:21:19 | 显示全部楼层


拾冠 发表于 2023-4-13 09:08
约束不应该影响代码综合方式。使用组合逻辑做clkmux的话,得综合软件能够识别对应电路。
如果使用的是fpga ...


感谢回答,不过我不是用fpga,我试过最简单的ifelse 也试过assign ?:这种方式,但是没有用,会不会是因为这两个clk的频率是一样的所以工具综合不出来mux呢?我过会儿准备试试用两个不同频率的clk。
发表于 2023-4-27 16:20:08 | 显示全部楼层


zhaoxueji 发表于 2023-4-13 22:21
感谢回答,不过我不是用fpga,我试过最简单的ifelse 也试过assign ?:这种方式,但是没有用,会不会是因 ...


前面已经有人跟你说清楚了呀,直接用standcell的clkmux instantiate 在RTL里,综合的时候,将该cell 设置为dont touch。而且根据你的应用,不应该是简单的clkmux,应该是需要glitch free 的mux。
综合主要是保证功能一样,具体用什么cell,除非在rtl就实例化库里的cell,用dont touch来约束,否则真的很难指定工具选什么cell。




您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-3-19 08:59 , Processed in 0.021048 second(s), 9 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表