当前位置:网站首页>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.
边栏推荐
- YTU 2418: C语言习题 矩阵元素变换
- GBJ3510-ASEMI家电电源用整流桥GBJ3510
- mysql 死锁 Deadlock found when trying to get lock; try restarting transaction
- shell脚本入门
- Mysql_Note5
- 117. 本地开发好的 SAP UI5 应用部署到 ABAP 服务器时,中文字符变成乱码的原因分析和解决方案
- Oops novice template Framework project guide
- Detailed explanation of common methods of filtering matrix (array) elements in Matlab
- gRPC基础概念:闭包
- js原型和原型链及原型继承
猜你喜欢

How to solve the problem of Tomcat booting and crashing

关于地图GIS的一次实践整理(下) Redis的GIS实践

英伟达 GPU 架构简史

ROS源代码阅读(1)

Future Trends in Vulnerability Management Programs

google搜索技巧——程序员推荐

Js prototype and prototype chain and prototype inheritance

MySQL八股文背诵版(续)

OptiFDTD应用:用于光纤入波导耦合的硅纳米锥仿真
![MySQL Basics [Part 1] | Database Overview and Data Preparation, Common Commands, Viewing Table Structure Steps](/img/61/bebf5661ef1013e233e8d32c79f9ae.png)
MySQL Basics [Part 1] | Database Overview and Data Preparation, Common Commands, Viewing Table Structure Steps
随机推荐
【备战“金九银十”】2022年软件测试面试题最新汇总
Oops novice template Framework project guide
全局大喇叭--广播机制
Please talk about for...in and for...of in JS (below)
postgresql ilike create function
comp3331-9331-16s2-midterm复习
八.数据的存储
Pytorch/TensorFlow/Numpy常用函数汇总
JVM类加载机制
《如何戒掉坏习惯》读书笔记
2022年G1工业锅炉司炉题库及模拟考试
gRPC基础概念:闭包
TRCX: doping process analysis
The classification of inter-process communication (IPC) and the development of communication methods
GBJ3510-ASEMI家电电源用整流桥GBJ3510
13.cuBLAS开发指南中文版--cuBLAS中的Level-1函数copy()和dot()
0图中等 LeetCode565. 数组嵌套
带你系统学习MySQL索引
思念家乡的月亮
Logstash日志数据写入异常排查问题总结