首页 > 其他分享 >数字ic手撕代码-边沿检测(上升沿、下降沿、双边沿)

数字ic手撕代码-边沿检测(上升沿、下降沿、双边沿)

时间:2022-09-22 15:03:08浏览次数:63  
标签:检测 signal FIFO 边沿 寄存器 ic 上升 代码

边沿检测

        在使用FIFO进行数据读写的时候,我们会用到边沿检测,比如当FIFO内的数据被读空了,这样 empty 信号就会从0→1,产生一个上升沿,当这个上升沿到来的时候代表FIFO内孔,我们就可以对FIFO进行一个写操作(把写使能拉高,往FIFO写数据),所以边沿检测是十分常用的东西,下面我们来讲讲边沿检测的原理、代码以及对应仿真。

原理:

        比如我们要检测信号 signal 的上升沿,我们使用两个寄存器,级联记录 signal 的值,这样由于寄存器延迟一拍的特性,第二个寄存器永远会延迟第一个寄存器。

        当 signal 上升沿到来时,会有:第一个寄存器检测为高,第二个寄存器检测为低。

 

 

 这样,我们只要把第二个寄存器取反,然后和第一个寄存器做与运算,这样当计算的数值为 1 时,就检测到了上升边沿。

代码: 

 

 

 Testbench: 

 

 

 上升边沿 边沿检测波形:

 

 

 

   从图中我们可以看到,跟我们预料的一样,当上升沿到来的时候,reg1和 reg2 信号错一拍,这样利用这个特性,让signal_edge = ~reg2 & reg1 就能检测到上升边沿。

        检测下降沿也是一个道理,代码完全一致,就是把最后边沿检测信号改为:

        assign signal_edge = ~reg1 & reg2;

下降边沿 边沿检测波形: 

 

 

双边沿 边沿检测波形:

        双边沿检测,就是上升沿和下降沿,检测信号都要输出一次高电平。这我们可以用异或实现,同样是只需要在上升沿检测的代码里改最后一条赋值语句即可,改为:

        assign signal_edge = reg1 ^reg2 ; 

 波形如下: 

 

 

     结果和我们设计的一致。

 

标签:检测,signal,FIFO,边沿,寄存器,ic,上升,代码
From: https://www.cnblogs.com/jerry-caiyu/p/16719285.html

相关文章

  • PAT (Basic Level) Practice 1021 个位数统计 分数 15
    给定一个 k 位整数 N=dk−1​10k−1+⋯+d1​101+d0​ (0≤di​≤9, i=0,⋯,k−1, dk−1​>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定 N=100311,则......
  • PAT (Basic Level) Practice 1022 D进制的A+B 分数 20
    输入两个非负10进制整数 A 和 B (≤230−1),输出 A+B 的 D (1<D≤10)进制数。输入格式:输入在一行中依次给出3个整数 A、B 和 D。输出格式:输出 A+B ......
  • PAT (Basic Level) Practice 1023 组个最小数 分数 20
    给定数字0-9各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意0不能做首位)。例如:给定两个0,两个1,三个5,一个8,我们得到......
  • PAT (Basic Level) Practice 1013 数素数 分数 20
    令 Pi​ 表示第 i 个素数。现任给两个正整数 M≤N≤104,请输出 PM​ 到 PN​ 的所有素数。输入格式:输入在一行中给出 M 和 N,其间以空格分隔。输出格式:输......
  • PAT (Basic Level) Practice 1014 福尔摩斯的约会 分数 20
    大侦探福尔摩斯接到一张奇怪的字条:我们约会吧!3485djDkxh4hhGE2984akDfkkkkggEdsbs&hgsfdkd&Hyscvnm 大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的......
  • PAT (Basic Level) Practice (中文)1015 德才论 分数 25
    宋代史学家司马光在《资治通鉴》中有一段著名的“德才论”:“是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人。凡取人之术,苟不得圣人,君子而与之,与其......
  • PAT (Basic Level) Practice 1017 A除以B 分数 20
    本题要求计算 A/B,其中 A 是不超过1000位的正整数,B 是1位正整数。你需要输出商数 Q 和余数 R,使得 A=B×Q+R 成立。输入格式:输入在一行中依次给出 A 和......
  • 直播平台源代码,Android 直接打开系统相册应用查看照片
    直播平台源代码,Android直接打开系统相册应用查看照片Intent intent = new Intent();        intent.setAction(Intent.ACTION_MAIN);         inte......
  • Windows - 部署 Elasticsearch
    Windows-部署Elasticsearch                                      引用:https://blog......
  • Automatic Judge HDU - 6023
    AutomaticJudgeHDU-60232019年某日,正睿OI训练营迎来了一场六一节acm专场。在五个小时的比赛时间里,你可以提交代码到比赛页面,然后评测机会给你返回一个结果。评测机......