当前位置:网站首页>Some work experience after joining the digital ic design
Some work experience after joining the digital ic design
2022-08-11 02:24:00 【the rice is delicious】
First, the circuit framework and timing analysis of the code
The way of writing code in previous courses is relatively direct and casual. After generally understanding the design requirements, I start writing code without paying attention to the requirements of clock and reset. The sensitive variables of the always block are alsoAll kinds of latches are generated, and the generated latches are even more numerous. After writing, the code can run through the behavioral simulation and can be used on the development board, and the learning task of one semester is completed.
The disadvantages of this method are also significant: although the results of some codes in behavioral simulation are correct, their actual performance on the development board is not satisfactory.Various bugs appear.In the final analysis, the understanding of the code was not deep enough at that time, and there was no need to realize what kind of circuit these codes generated, and what kind of results such a circuit would cause.There will be no bugs of all kinds.Such techniques are also very practical in work. There are a lot of codes to be built in the future, the framework is very complex, and the sub-modules and top modules are stacked one by one.Timing analysis, it is very difficult to modify the code framework after encountering a bug in the later stage, and it is not conducive to us to understand the logic function of the entire circuit.Therefore, drawing circuit diagrams and waveform diagrams frequently is the first step to do a good job in front-end design.
The first counter circuit diagram drawn by the landlord after joining the job
Second, consider the practicality of the code from different angles
Digital chip design is a very time- and money-consuming industry. After the formed circuit is made into a mask and photoetched on the silicon wafer, it cannot be changed.Therefore, there are many factors and influences that need to be considered when designing the code.At the design point, the algorithm and function of the circuit implementation and the required resources must be planned first.After the design is completed, it must pass the verification and testing of the back-end.Therefore, when writing code, you should also consider the back-end timing analysis and STA.
For example, for a multi-bit counter, if the synchronous clock is used, the gate circuit device will be much more expensive than the asynchronous clock, but the asynchronous design is not used in the verilog HDL design.Because asynchronous sequential logic is difficult to control the competition and risk caused by combinational logic and delay, the more complex the circuit, the more difficult it is to debug the asynchronous design, and the trigger conditions of the asynchronous design are complex, and asynchronous changes may be triggered at any time, causingMetastability, etc.The most important thing is that asynchronous design will make back-end verification and STA (static timing analysis) extremely complicated. The back-end requires clock and reset (jump control signal) to be relatively pure, and too many sensitive variables.It will make it difficult for STA to proceed, so asynchronous design is generally not used.Similarly, the clock and reset signals and other variables are not allowed to do some logic operations, which will cause the clock or reset to be less pure.
Three, the means of debugging
After the code is written, behavior-level simulation must be performed. When viewing the waveform, it is inevitable that some parts do not meet the design requirements and need to be modified.But must not modify the standard framework of the circuit just to figure out the correct timing, for example: adding signals other than reset and clock difference to the sensitive list of the always block will also makeBackend validation work gets complicated.Or put the same signal in multiple always blocks to assign values.If this is the only way to meet the design requirements, then the initial design is definitely unreasonable, and we must try to find the problem from the design method itself.
边栏推荐
- Docker 链接sqlserver时出现en-us is an invalid culture错误解决方案
- ARM开发(四)新手小白如何阅读芯片手册,裸机驱动开发步骤以及纯汇编实现点灯,汇编结合c点灯,c实现点灯
- 【备战“金九银十”】2022年软件测试面试题最新汇总
- Oops novice template Framework project guide
- postgresql ilike create function
- Please talk about for...in and for...of in JS (below)
- MySQL权限控制、分区表、快速复制表
- js原型和原型链及原型继承
- Lianshengde W801 series 5-WeChat applet and W801 Bluetooth communication routine (read notes)
- comp3331-9331-22t1-midterm复习辅导-tutorial week 5
猜你喜欢
ARM development (4) How to read the chip manual for novice Xiaobai, bare metal driver development steps and pure assembly to achieve lighting, assembly combined with c lighting, c to achieve lighting
google搜索技巧——程序员推荐
[4G/5G/6G专题基础-154]: 5G无线准入控制RAC(Radio Admission Control)
ES6进阶 字符串处理新特性
数据的存储(下)——浮点型在内存中的存储
多线程之ThreadPoolExecutor
通过热透镜聚焦的高斯光束
Logstash日志数据写入异常排查问题总结
微信公众号后台管理
从键入网址到网页显示的详细过程
随机推荐
OptiFDTD应用:用于光纤入波导耦合的硅纳米锥仿真
Pytorch/TensorFlow/Numpy常用函数汇总
install dlib library
comp3331-9331-21t1-midterm复习
117. 本地开发好的 SAP UI5 应用部署到 ABAP 服务器时,中文字符变成乱码的原因分析和解决方案
TRCX: doping process analysis
报错处理:org.xml.sax.SAXParseException: 不允许有匹配 “[xX][mM][lL]“ 的处理指令目标
Logstash日志数据写入异常排查问题总结
微信公众号后台管理
Gaussian beam focused by thermal lens
软件测试面试题:验收测试包括哪三种类型?
[机缘参悟-66]:怎样才能让别人愿意帮你:利益共享法则、“大道”、“人性”
四大组件---ContentResolver
单面PCB布线阻抗的工程设计
软件测试面试题:什么是α测试,β测试?
The latest domestic power supply manufacturers and pin-to-pin replacement manuals for specific models are released
Fatal error in launcher: Unable to create process using xxx --logdir logs(tensorboard使用)
GBJ3510-ASEMI家电电源用整流桥GBJ3510
Research on the Application of Privacy Computing Fusion
最新国产电源厂家及具体型号pin-to-pin替代手册发布