当前位置:网站首页>FPGA programming experience
FPGA programming experience
2022-07-28 20:30:00 【Quack~】
Some important principles
1、 When modeling sequential circuits , Non blocking assignment
2、 Latch circuit modeling , Non blocking assignment
3、 use always When a block writes combinational logic , Assignment with blocking
4、 In the same always When both sequential and combinational logic circuits are established in the block , Non blocking assignment
5、 In the same always Do not use both non blocking and blocking assignments in blocks
6、 No more always Assign a value to the same variable in the block
# Follow the above principles , It is helpful to write integrable hardware correctly , And can eliminate 90%~100% Competitive risk phenomenon that may occur during simulation .
Timing error
Continuous use of combinatorial logic may lead to timing errors , This is because the data path is too long ,
resolvent : Add registers on the long path for data buffering .
1、 High speed data processing uses less combinatorial logic , Because the data rate is too fast , Prone to competitive risk .
2、 High speed data stream processing , First cache ,
3、 For high-speed data processing , Try to use non blocking statements , Because of the use of continuous blocking statements, the data flow is fast , It will cause timing errors when it is actually implemented , Originally, what the blocking statement realizes is that the result becomes the same as that of the non blocking statement .
4、 You can't perform complex operations in one step .
边栏推荐
- Leetcode-297 serialization and deserialization of binary tree
- CNN convolution neural network learning process (weight update)
- The privatized instant messaging platform protects the security of enterprise mobile business
- flask_ Mail source code error
- Store and guarantee rancher data based on Minio objects
- C language data 3 (1)
- 私有化部署的即时通讯平台,为企业移动业务安全保驾护航
- DSACTF7月re
- [C language] use function pointers to make a different calculator
- 一文让你搞懂什么是TypeScript
猜你喜欢
随机推荐
Solutions to the environment created by Anaconda that cannot be displayed in pycharm
熊市下PLATO如何通过Elephant Swap,获得溢价收益?
MySQL startup error 1607 unexpected process termination
[C language] Gobang game [array and function]
Raspberry pie CM4 -- using metartc3.0 to integrate ffmpeg to realize webrtc push-pull streaming
LeetCode-297-二叉树的序列化与反序列化
有哪个老哥知道flinksql 日志很大要怎么解决吗
Scheduled backup of MySQL database under Windows system
7. Functions of C language, function definitions and the order of function calls, how to declare functions, prime examples, formal parameters and arguments, and how to write a function well
Zfoo adds routes similar to mydog
Linux Installation MySQL (pit filling version)
Representation of base and number 2
Solve the problem that the nocturnal simulator cannot access the Internet after setting an agent
Vivado design single cycle CPU
CM4 development cross compilation tool chain production
How can Plato obtain premium income through elephant swap in a bear market?
Raspberry pie uses the command line to configure WiFi connections
C language - pointer
[C language] 5000 word super detailed explanation of various operations of the sequence table
5. Difference between break and continue (easy to understand version)
![[C language] guessing numbers game](/img/ac/81a82404618487861b67e35f18d13f.png)






![[task02: SQL basic query and sorting]](/img/10/c2a936c882cd77f422396840282ed5.png)
