搜索
bottom↓
回复: 9

我自己总结的XILINX FPGA知识,欢迎大家交流

[复制链接]

出0入0汤圆

发表于 2022-2-18 21:21:41 | 显示全部楼层 |阅读模式
这是B站视频网址

https://www.bilibili.com/video/BV1rP4y1F75y/

附件是自己做的PPT.

本帖子中包含更多资源

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

x

出0入133汤圆

发表于 2022-2-18 21:36:59 来自手机 | 显示全部楼层
我提一句吧。同步复位,但是放到代码最后。这样就充分避免了ce的产生和额外的fanout,又保证了复位的正确性。

出0入0汤圆

 楼主| 发表于 2022-2-18 21:38:15 | 显示全部楼层
wye11083 发表于 2022-2-18 21:36
我提一句吧。同步复位,但是放到代码最后。这样就充分避免了ce的产生和额外的fanout,又保证了复位的正确性 ...
(引用自2楼)

嗯嗯,我觉着在理。

出0入85汤圆

发表于 2022-2-18 21:57:47 来自手机 | 显示全部楼层
电工要学得多

出10入12汤圆

发表于 2022-2-18 22:30:30 | 显示全部楼层
wye11083 发表于 2022-2-18 21:36
我提一句吧。同步复位,但是放到代码最后。这样就充分避免了ce的产生和额外的fanout,又保证了复位的正确性 ...
(引用自2楼)

我感觉大多数情况根本不用复位,只有对初始值敏感的寄存器才需要复位

出0入133汤圆

发表于 2022-2-18 22:59:06 | 显示全部楼层
本帖最后由 wye11083 于 2022-2-18 23:02 编辑
xxdd 发表于 2022-2-18 22:30
我感觉大多数情况根本不用复位,只有对初始值敏感的寄存器才需要复位
(引用自5楼)


是啊。但是只要你用if(reset){}else{}写法,则你的所有else里面的东西都会被加个ce——这个bug我查了一星期才确定ce来源。所以我现在是全部{}if(reset){}这种写法,确保只有关键信号会被复位,且不产生任何多余的ce。

实际上在一100KLUT+200KDFF工程里面,使用后置复位写法,省掉了至少10K LUT+DFF用于走线。这也是fpga开发的一个天坑:(1)模块不可能没有复位,所有鼓吹FPGA不需要复位的都是大忽悠,(2)不管同步复位还是异步复位,只要在代码里复位时dff不做任何操作,就默认是DFFCE,全部按复位信号使能ce管脚。后置复位可以解决ce无穷多的问题,但是会带来额外的功耗——dff哪怕在复位时仍然无限翻转。这在asic设计中还是应当尽量避免。

出0入4汤圆

发表于 2022-2-19 09:01:48 | 显示全部楼层
我开始编写CPLD时, 有个分频输出没有复位, 结果总是没有输出信号. 郁闷了好几天.  
后来全部用异步有效, 两级D缓冲后的时钟同步复位.

出0入42汤圆

发表于 2022-2-19 09:53:41 | 显示全部楼层
wye11083 发表于 2022-2-18 22:59
是啊。但是只要你用if(reset){}else{}写法,则你的所有else里面的东西都会被加个ce——这个bug我查了一星 ...
(引用自6楼)

学习到了,谢谢分享

出0入42汤圆

发表于 2022-2-19 09:54:07 | 显示全部楼层
谢谢楼主分享

出215入118汤圆

发表于 2022-2-19 12:22:00 来自手机 | 显示全部楼层
很大的收获!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 ( 公安交互式论坛备案:44190002001997 粤ICP备09047143号 )

GMT+8, 2022-7-6 03:19

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

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