资料介绍
本篇对SOC设计,FPGA设计也有相当大的借鉴意义.本着帮助别人,提升自己的宗旨,记录,总结,回忆从接触这个行业的所听,所记,所感.其中一部分经验是自己实战总结的,一部分经验是从书上看到的,一部分经验是从别人那学到的.难免会有错误,还请大家不吝指正.
IC设计其实是一个门槛特别高的行业,要学的专业特别多,要会的工具特别多,要走的流程特别长,要花的时间也要足够,所以你可以理解为他是一个要求特别多的行业.你可以认为他是高富帅行业,也可以认为他是屌丝行业,但是这都不妨碍他对这个社会的巨大贡献.因而学会IC设计于己于人都是相当有诱惑力的.
本篇介绍从5个方面来谈IC设计实战经验:
一:设计架构的划分,这一块是相当重要的,你可以在很多的书籍中看到,很多的书籍中也都会谈论如何进行架构的划分.架构的划分好比盖房子,设计好整个房子的结构,后面才能一砖一瓦的网上填,最后的摩天大楼才能建成.架构的划分又可以分为如下几个方面:
1 ) 软硬件划分,什么归软件来做,什么归硬件来做,如何达到效率的最高效;这个方面其实很困难的,一般都是相当有经验的人才来做架构的划分,但是一般会遵循一些原则,即:软件的灵活性比较大,所以一般做一些控制类的活儿,硬件的并行性比较大,所以一般用来做加速,遵循这些原则的话,划分以来或许简单一些.当前比较流行的做法是软硬件协同设计,具体可以参考相关的书籍.
2)算法设计,例如快速搜索,快速比对,软件的一些思维未必适合硬件实现,因为硬件需要考虑资源问题,需要考虑速度和面积,需要考虑组合逻辑的延时等等,不能一味的追求单方面而忽略了其他的方面.
3)性能因素的考虑,譬如带宽为多少合适,太宽并不一定就会很快,要考虑如何提升吞吐率,可以从各个方面入手.
4)模块设计的划分,一个太大的模块不适合实现,也不适合维护,当别人接手时也很难快速的理解,所以模块划分要得当,可以基于接口,基于功能,基于灵活性,一个好的划分会带来很多的好处,例如易于维护,易于理解,出错概率低,相反,会看起来很臃肿,很奇怪,也难以维护升级.另外模块代码的行数不易过多,当然也没必要划分出几十个小的模块,那样维护起来也是相当的痛苦.
二:设计技巧,这一部分包括如下几个方面:
1)利用脚本加速开发,例如利用脚本进行接口的自动连线,快速复制相似的代码,如果恰当合适的利用脚本,会使你的开发事半功倍.
2)状态机的设计,组合逻辑和时序逻辑分开,状态机不宜过大,否则会出现很大的比较器.
3)one hot编码推荐使用,这个在后面的ECO时比较方便更改。
4)流水线技术,这个技术可以提高吞吐率,有利于时序的优化,利用流水线技术可以高效发访问DDR,但是流水线也有弊端,例如某个阶段的时间太长,或者某个阶段依赖于前一个阶段,流水线一定要设计得当,否则可能会弄巧成拙。
5)利用链表技术可以节省memory的使用,当然这个很多时候要看具体的应用场景。
6)在设计模块的时候,可以简单的设计一个可以综合的Testbench,这样你可以不依赖单独设计Testbench的人,你可以继续往后推进你的模块设计,你可以上FPGA开发板上简单的验证。
三:设计实现技巧,你的设计一定要是可实现的,否则你的设计没有任何意义,就是一堆垃圾字母而已。该技巧包括如下几个方面:
1)你的电路要具有可测试性DFT,这个可以在后端插入scan,你的电路中的memory要有mbist的电路,用于自动产生数据读写RAM,自动比对结果,一般这都是到后端后会接触的东西。
2)你的电路要能够做STA,你的电路中最好只用一个沿来采样(DDR这种情况除外),因为很难保证两个沿都能卡的很好。
3)注意跨时钟域的处理,跨时钟域如何进行验证。
4)功耗和面积之间的权衡,门控时钟的使用,RAM的使用。
5)FPGA的选择,到一定程度时,电路需要到FPGA上进行验证,快速的FPGA十分的昂贵,便宜的可能又达不到项目的需求,所以一定要权衡好两者之间的关系。
6)关于RAM的实现,可以用register实现,也可以采用生成的ram实现,一般比较小时采用register实现(一般小于512bits),而且RAM要尽量成正方形,因为太深或者太宽的ram不好布局布线,他占了一块面积后,其他的只能扰很的距离来布局布线,不利于时序的优化。
四:设计调试技巧,你的设计在后面将转为大量的调试,无论是波形仿真的调试,还是上FPGA的调试,或者是芯片回来的调试,都是一份相当大,相当困难,相当耗时的艰巨任务。该技巧包括如下几个方面:
1)你在设计的时候就要充分考虑如何进行后续的验证,你可以拉出一些信号进行调试,但是由于出pin的数量限制,所以你可以利用mux分级拉出信号,然后用寄存器配置的方式,选择哪些pin被拉出,这样你可以拉出很多的pin.
2) 你可以加一些寄存器用于调试,例如中断寄存器,error寄存器,状态机寄存器,拉出状态,看状态跳转的是否正确。
3)如果你的设计中有ram,你要充分考虑ram该如何验证,否则ram出错的话将是十分头疼的事情。
4)如果你做的是通信类的设计,要考虑loop_back模式的测试,这样不需要和别的设计进行连接。
五:沟通的技巧,这一块说不重要其实可以说是最重要的,设计的要和验证的沟通,硬件的要和软件的沟通,做技术支持的要和客户沟通,上下级要沟通,反正沟通无处不在。所以你要注意下面几个方面:
1)保留平时的沟通记录,可以帮助你到时候进行review,也可以帮助你到时出错时作为证据。
2)通过各种手段进行沟通,例如邮件,电话,会议等等,要充分让别人懂你说的,你也懂别人说的,开会不要漫无目的,要把握时间。
3)沟通的最主要目的是发现问题,解决问题,所以怎么高效怎么办。
来源:面包板博主——sunyzz博主
(mbbeetchina)
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- 电源设计经验50谈
- 嵌入式项目实战经验
- 五个方面剖析SIP封装工艺,看懂SIP封装真正用途资料下载
- 在高速PCB设计中的70个超实用经验资料下载
- 四个方面看SoC 设计资料下载
- 4个 5G NR 实战经典案例资料下载
- 老工程师经验谈,高速运算放大器电路PCB布线资料下载
- 从单片机的PCB设计到软件处理方面来介绍对电磁兼容性的处理资料下载
- 6个方面。嵌入式的硬件构架资料下载
- FPGA设计经验技巧,用数学思维来简化设计逻辑!资料下载
- 从定性的角度谈电源去耦资料下载
- PCB布线百问:一个布线工程师谈PCB设计的经验资料下载
- 四个方面区分MPK和CBB电容资料下载
- ARM全国产云平台部署容器实战经验分享 71次下载
- 开关电源维修方法和实战经验 48次下载
- STM32H5 DA证书链实战经验 844次阅读
- IC之间的信号线为什么要接一个小电阻? 1332次阅读
- 分享两个STM32应用中的实战案例 3170次阅读
- 从焊接角度谈下设计PCB的5个建议 770次阅读
- 生活的案例LDO异常损坏的原因之一 1.4w次阅读
- 辨别PCB线路板好坏可以从两个方面入手 3437次阅读
- 深度解析人脸识别技术 1.1w次阅读
- 从EMC设计的角度来解析无人机 5617次阅读
- WEBENCH:DC-DC方面的设计经验分享 1440次阅读
- “事件导向”的新型机器视觉技术之实战经验 5875次阅读
- 年度IP众筹:张飞PFC电源实战视频教程 86次阅读
- 介绍初次接触ARM开发应该从哪几方面来理清开发思路 4081次阅读
- 介绍初次接触ARM开发应该从4个方面来理清开发思路 4425次阅读
- 滤波器分类与选型实战经验总结 1.7w次阅读
- 步进电机驱动的设计、选型实战经验总结 2042次阅读
下载排行
本周
- 1HFSS电磁仿真设计应用详解PDF电子教程免费下载
- 24.30 MB | 128次下载 | 1 积分
- 2雷达的基本分类方法
- 1.25 MB | 4次下载 | 4 积分
- 3电感技术讲解
- 827.73 KB | 2次下载 | 免费
- 4从 MSP430™ MCU 到 MSPM0 MCU 的迁移指南
- 1.17MB | 2次下载 | 免费
- 5有源低通滤波器设计应用说明
- 1.12MB | 2次下载 | 免费
- 6RA-Eco-RA2E1-48PIN-V1.0开发板资料
- 35.59 MB | 2次下载 | 免费
- 7面向热插拔应用的 I2C 解决方案
- 685.57KB | 1次下载 | 免费
- 8爱普生有源晶体振荡器SG3225EEN应用于储能NPC、新能源
- 317.46 KB | 1次下载 | 免费
本月
- 12024年工控与通信行业上游发展趋势和热点解读
- 2.61 MB | 763次下载 | 免费
- 2HFSS电磁仿真设计应用详解PDF电子教程免费下载
- 24.30 MB | 128次下载 | 1 积分
- 3继电保护原理
- 2.80 MB | 36次下载 | 免费
- 4正激、反激、推挽、全桥、半桥区别和特点
- 0.91 MB | 32次下载 | 1 积分
- 5labview实现DBC在界面加载配置
- 0.57 MB | 21次下载 | 5 积分
- 6在设计中使用MOSFET瞬态热阻抗曲线
- 1.57MB | 15次下载 | 免费
- 7GBT 4706.1-2024家用和类似用途电器的安全第1部分:通用要求
- 7.43 MB | 14次下载 | 免费
- 8H桥中的电流感测
- 545.39KB | 7次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935113次下载 | 10 积分
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420061次下载 | 10 积分
- 3Altium DXP2002下载入口
- 未知 | 233084次下载 | 10 积分
- 4电路仿真软件multisim 10.0免费下载
- 340992 | 191360次下载 | 10 积分
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183329次下载 | 10 积分
- 6labview8.5下载
- 未知 | 81578次下载 | 10 积分
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73804次下载 | 10 积分
- 8LabVIEW 8.6下载
- 未知 | 65985次下载 | 10 积分
评论
查看更多