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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 937|回复: 7

[讨论] IC前端设计Clock_Swith_Glitch_Free_Verdi

[复制链接]
发表于 2023-8-11 11:14:12 | 显示全部楼层 |阅读模式

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

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

x
今天看了Clock_Swith的代码,受到震撼,原来还可以这样思考,像是为我开启一扇新的大门,代码本身比较简单,越看越感觉奇妙,不知道设计的人是怎么想出来的。

wire in0_sel=(cgm_sel==2'b00)?1:0;
wire in1_sel=(cgm_sel==2'b01)?1:0;
wire in2_sel=(cgm_sel[1]==1'b1)?1:0;

wire in0_used=in0_sel|in0_en_sync1|in0_en_sync2|in0_en_sync3;
wire in1_used=in1_sel|in1_en_sync1|in1_en_sync2|in1_en_sync3;
wire in2_used=in2_sel|in2_en_sync1|in2_en_sync2|in2_en_sync3;

wire in0_en = ~in1_used & ~in2_used;
wire in1_en = ~in0_used & ~in2_used;
wire in2_en = ~in0_used & ~in1_used;
本人是搞FPGA的,买开发板自学出身,这种组合逻辑是肯定想不出来的,经过我头脑风暴一段时间,结论如下:
这个设计者,应该是在大脑里熟练运用了数字电路的公式 ~(A | B | C | D)=(~A) & (~B) & (~C) & (~D).
数字电路公式不止这一个, 能把这种公式深深融入自己大脑的思维深入,需要专业的训练
这应该是接受过某种系统化训练,才有这种思维模式。
现在求教,什么样的课程?  什么样的数据能练习这样的设计思路?

clock_switch.rar

2.18 KB, 下载次数: 30 , 下载积分: 资产 -2 信元, 下载支出 2 信元

简单代码分享

发表于 2023-8-11 13:40:28 | 显示全部楼层
这是自学学不来的的 呵呵呵
发表于 2023-8-11 16:37:32 | 显示全部楼层
去看看国内外大学的专业课都要学啥尤其是国外大学的毕竟人家是现在科技的发源地
发表于 2023-8-12 10:55:52 | 显示全部楼层
奇妙点在哪里
 楼主| 发表于 2023-8-17 11:14:56 | 显示全部楼层


先关闭一个时钟,再打开另一个时钟,设计思路很简单,同步关闭,同步打开。如果我来设计,肯定傻乎乎先判断一个时钟关闭,然后再判断另一个时钟打开,把开关使能en同步到各自的时钟上去。 这里用的是交叉判断的思路,因为代码简单,从读者的角度看,很简单,从设计者的角度看,很难理解,因为我无论如何也想不出来这种写法。
发表于 2023-8-17 17:01:11 | 显示全部楼层
这段确实很精彩,used信号和使能信号条理清晰
从思路上讲,假设现在clk_1为输出时钟切换clk_0,首先使能clk_0需要clk_1和clk_2处在unused状态,而为了同步时钟,used状态的表示就把三级同步和sel选择信号放在一起或,这样sel变化时,拉高了clk_0的used信号,使得clk_1的使能拉低,同步后clk_1的used被拉低,clk_0使能。
我觉得优秀的地方有二
1. 利用信号的电平关系生成使能信号而不是条件判断
这点我觉得需要心里有一个电路的基本波形才能想到,就像边沿检测的代码一样,心中有波形才能这样去写
2. 尽可能采用连续赋值,也就是组合电路把逻辑表述
这个就是思路的问题了,比如判断512bit数据,电平为1的最高位的位置,简单的思路直接从最高位每个时钟读一位判断是否为1,计数器记录,但这样耗费的时钟很大,最不理想可能需要511个时钟周期;但是如果采用二分法,可以利用组合电路直接完成。
我的理解是,首先想办法把信号按照一定的规则分组,然后对分组分别进行逻辑运算,并行逻辑运算,就会让代码简洁不少(注意组合逻辑过长)

这玩意我感觉想找教程肯定是没有的,只能是靠积累,分析RTL时候,不仅看功能,也看思路、时序波形和电路,看一个就算一个,哪怕先把RTL理解着背下来也是积累。
不过我也是个刚入门的菜鸡就是了……没仿真,想问一下是需要5个时钟时钟完成切换的吗?
发表于 2023-9-6 16:48:10 | 显示全部楼层
有没有一种可能,fab给的标准库就有这个功能的cell?
发表于 2023-9-7 15:37:45 | 显示全部楼层
下载文件已损坏,是我这边的问题吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-5-7 13:56 , Processed in 0.027148 second(s), 9 queries , Gzip On, Redis On.

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