项目场景:

You're familiar with flip-flops that are triggered on the positive edge of the clock, or negative edge of the clock. A dual-edge triggered flip-flop is triggered on both edges of the clock. However, FPGAs don't have dual-edge triggered flip-flops, and always @(posedge clk or negedge clk) is not accepted as a legal sensitivity list.

Build a circuit that functionally behaves like a dual-edge triggered flip-flop:

(Note: It's not necessarily perfectly equivalent: The output of flip-flops have no glitches, but a larger combinational circuit that emulates this behaviour might. But we'll ignore this detail here.)


问题描述

你应该很熟悉在时钟的正边或负边触发的触发器。双边触发触发器在时钟的两端被触发。然而,fpga没有双边触发触发器,并且总是@(posedge clk or negedge clk)不被接受合法的敏感列表。
构建一个功能上类似于双边触发器的电路。

(注:这并不一定是完全等价的:触发器的输出没有故障,但模拟这种行为的更大的组合电路可能会有。但这里我们将忽略这个细节。)


原因分析:

这个问题看起来并不复杂,但是当我们使用@(posedge clk or negedge clk)会发现这条语句是不被接受的。单独绘制上升沿触发和下降沿触发的波形图,二者和输出q进行对比我们可以发现三者之间的关系。当clk=1 时,q取的是上升沿触发的d值,当clk= 0 时,q取的是下降沿触发的d值。


解决方案:

module top_module (input clk,input d,output q
);reg           d_posedge;reg           d_negedge;always@(posedge  clk )d_posedge <= d;always@(negedge    clk )d_negedge <= d;assign  q = clk ? d_posedge : d_negedge;endmodule

运行结构如下:

Dual-edge triggered flip_flop(Dualedge)相关推荐

  1. 双边沿D触发器(Dual edge D flip flop)

    在FPGA中不支持 always @(posedge clk or negedge clk) is not accepted as a legal sensitivity list.想要实现双边沿触发 ...

  2. Multisim实现D触发器时钟信号分频

    D触发器实现时钟信号分频 一. 元器件介绍 二. 原理分析 三. 仿真实验 一. 元器件介绍 这里用到的元器件有: DIgital power(VCC)数字电源 DIGITAL-CLOCK 数字时钟 ...

  3. linux下poll和epoll内核源代码剖析

    作者:董昊 博客链接http://donghao.org/uii/ poll和epoll的使用应该不用再多说了.当fd很多时,使用epoll比poll效率更高. 我们通过内核源码分析来看看到底是为什么 ...

  4. Linux服务器网络开发模型

    为什么Nginx的性能要比Apache高得多? 这主要是因为Nginx使用了最新的epoll(Linux 2.6内核)和kqueue(FreeBSD)网络I/O模型,而Apache则使用的是传统的se ...

  5. Linux的epoll

    在linux的网络编程中,很长的时间都在使用select来做事件触发.在linux新的内核中,有了一种替换它的机制,就是epoll. 相比于select,epoll最大的好处在于它不会随着监听fd数目 ...

  6. IO复用之epoll系列

    epoll是什么? epoll是Linux内核为处理大批量文件描述符而作了改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的 ...

  7. ARM Linux 3.x的设备树(Device Tree)【转】

    转自:http://blog.csdn.net/21cnbao/article/details/8457546 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] ARM Devi ...

  8. 利用epoll写一个迷你的网络事件库

    epoll是linux下高性能的IO复用技术,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率.另一点原因就是获取 ...

  9. selectepoll

    为什么80%的码农都做不了架构师?>>>    Select() & Poll() Select()调用是I/O多路复用模型下的产物,I/O多路复用实际上是一种复合I/O模型 ...

  10. Linux epoll

    一. epoll函数集 epoll主要有三个函数: 1. int epoll_create(int size); 创建一个epoll的句柄,size用来告诉内核这个监听的数目一共有多大.这个参数不同于 ...

最新文章

  1. 基于Bootstrap、Jquery的自适应导航栏
  2. Qt工程pro文件配置详解
  3. linux区分用户的权限级别可用,如何限制Linux内核级别的特权用户访问?
  4. shell脚本自动回车_干货分享:Linux shell脚本分享!!快收藏起来吧
  5. python 谷歌登录_用Python登录Gmail并发送Gmail邮件的教程
  6. 对话中情绪识别,研究挑战、数据集和前沿方法
  7. mysql gis空间数据库_GIS开发:使用空间数据库
  8. UML与软件建模 第五次作业
  9. 配置eclipse插件
  10. 云码之家4年来的微信引流营销推广之路
  11. 学习了pr后的收获_学习后的感想和收获
  12. PostgreSQL11.2下载
  13. 单位根检验urdf_R语言时间序列函数整理[转]]
  14. 04 | 穿越功耗墙,我们该从哪些方面提升“性能”?
  15. c语言服务器制作,C语言写的简易实用的web服务器
  16. 盘一盘那些开设了大数据专业的中国高校
  17. 【开源轶事00】Redis 是亲生的懒汉 Java 庶出终归是庶出
  18. Ajax请求数据格式
  19. ubuntu安装程序权限问题
  20. PROE产品设计之骷髅头外观造型设计

热门文章

  1. linux 删除文件的最后一行
  2. watchOS7.2新增“心适能功能” 监测和分类心肺适能水平
  3. python三国演义人物 统计分析前20个_python爬取三国演义文本,统计三国演义中出场次数前30的人物,并生成词云、图表...
  4. 金彩教育:如何设计好主图
  5. 算法题--广度优先算法(素数行李箱密码解法加步骤)
  6. Java一些零散知识点--9.19更
  7. pyqt5 listView 列表显示
  8. CL210管理存储--对象存储
  9. Win11家庭版远程桌面不支持怎么办
  10. 旅行规划(travel)