当前位置:网站首页>【VHDL 并行语句执行】
【VHDL 并行语句执行】
2022-07-07 04:29:00 【又菜又爱玩_】
VHDL 判断信号上升沿的一种方式
一般的检测时钟上升沿
方法一:rising_edge 是非常严格的上升沿,必须从0到1 ,
方法二:(clk’event and clk=‘1’) 可以从 X 到 1
两种方式很好理解
/
问题
由于最近才接触FPGA,学习VHDL语言,碰到了一个初学者可能都会碰到的问题
clk10khz_d1 <= clk10khz;
clk10khz_d2 <= clk10khz_d1;
if key_cs='1' and clk10khz_d1='1' and clk10khz_d2='0' then --(判断上升沿)
.......
end if;
看到这里,clk10khz 的值给 clk10khz_d1 , clk10khz_d1的值再给clk10khz_d2,
这样一来clk10khz ,clk10khz_b1 ,clk10khz_b2 不应该是一样? 是不是错了?
后来看了很多检测上升沿的代码,都是这样,也没有解释。
其实就是 非阻塞赋值 和 阻塞赋值 的区别 , 资深的VHDL玩家就会觉得这个问题太基础不过了。
什么是非阻塞赋值?
非阻塞赋值操作符用小于等于号(即<=)表示。
为在赋值操作时刻开始时计算非阻塞赋值符的RHS表达式,赋值操作时刻结束时更新LHS。在计算非阻塞赋值的RHS表达式和更新LHS期间,其他的语句,包括其他的非阻塞赋值语句都能同时计算RHS表达式和更新LHS。非阻塞赋值允许其他的语句同时进行操作。
非阻塞赋值是由时钟节拍决定,在时钟上升到来时,执行赋值语句右边,然后将begin-end之间的所有赋值语句同时赋值到赋值语句的左边,注意:是begin—end之间的所有语句,一起执行,且一个时钟只执行一次。
两种不同的赋值方式结果是不同的,非阻塞赋值b<=a;c<=b;两条语句是同时执行的,而阻塞赋值b=a;c=b;两条语句先执行b=a后执行c=b。
为什么能检测上升沿?
知道了什么是非阻塞赋值,那就很容易理解检测上升沿的方法了
clk10khz_d1 <= clk10khz;
clk10khz_d2 <= clk10khz_d1;
两句语句一起执行,假设clk10khz状态为 …01… (上升沿时)
在低电平时 clk10khz_d1 , clk10khz_d2 都被赋为了0 ,
在上升沿的顺间,同时执行两句语句时 clk10khz_d2 还是 被之前 clk10khz_d1存的值赋为了0;
此时clk10khz上升为1 , clk10khz_d1 被赋值为1.
由此通过clk10khz_d1='1' and clk10khz_d2='0检测信号上升沿。
也就是说两句赋值语句的顺序并不重要,反过来结果都一样。
边栏推荐
- Leetcode sword finger offer brush questions - day 20
- [UTCTF2020]file header
- 2022-07-06:以下go语言代码是否会panic?A:会;B:不会。 package main import “C“ func main() { var ch chan struct
- Few-Shot Learning && Meta Learning:小样本学习原理和Siamese网络结构(一)
- Weibo publishing cases
- 解决问题:Unable to connect to Redis
- 【经验分享】如何为visio扩展云服务图标
- 按键精灵采集学习-矿药采集及跑图
- Is the test cycle compressed? Teach you 9 ways to deal with it
- Tongda injection 0day
猜你喜欢

Tencent's one-day life

numpy中dot函数使用与解析

Codeforces Global Round 19
![[guess-ctf2019] fake compressed packets](/img/a2/7da2a789eb49fa0df256ab565d5f0e.png)
[guess-ctf2019] fake compressed packets

2022-07-06:以下go语言代码是否会panic?A:会;B:不会。 package main import “C“ func main() { var ch chan struct

科技云报道:从Robot到Cobot,人机共融正在开创一个时代

What are the positions of communication equipment manufacturers?

I failed in the postgraduate entrance examination and couldn't get into the big factory. I feel like it's over
![[webrtc] M98 screen and window acquisition](/img/b1/1ca13b6d3fdbf18ff5205ed5584eef.png)
[webrtc] M98 screen and window acquisition

Make a bat file for cleaning system garbage
随机推荐
Operation suggestions for today's spot Silver
Mysql高低版本切换需要修改的配置5-8(此处以aicode为例)
毕设-基于SSM大学生兼职平台系统
[2022 actf] Web Topic recurrence
[2022 CISCN]初赛 web题目复现
Deep learning Flower Book + machine learning watermelon book electronic version I found
探索Cassandra的去中心化分布式架构
Determining the full type of a variable
../ And/
电商常规问题part1
Pytest + allure + Jenkins Environment - - achèvement du remplissage de la fosse
Robot technology innovation and practice old version outline
科技云报道:从Robot到Cobot,人机共融正在开创一个时代
Mutual conversion between InputStream, int, shot, long and byte arrays
[UTCTF2020]file header
Regular e-commerce problems part1
在线直播系统源码,使用ValueAnimator实现view放大缩小动画效果
智联+影音,AITO问界M7想干翻的不止理想One
Few-Shot Learning && Meta Learning:小样本学习原理和Siamese网络结构(一)
按键精灵采集学习-矿药采集及跑图