目录

背景

原题复现

审题

我的设计1

我的设计2


背景

曾经专门写过这个话题,可是今天在练习HDLBits时候,又发现了这个问题,但是以前的思路我已经忘了,不得不回顾。

FPGA中如何实现双边沿采样?

奇怪的是我竟然之前用过的方法,今天我已经想不通为什么了?


直接见原题吧:

原题复现

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.)

审题

(注意:它不一定完全等效:触发器的输出没有毛刺,但是可以模仿这种行为的较大的组合电路。但是在这里我们将忽略此细节。)

上面注意的意思是可以接受毛刺。

我还是说一下自己的思路吧,本身最容易想到的方法应该是:

always@(posedge clk or negedge clk) beginq  <= d;
end

但是由于不存在这样的触发器,所以编译器是过不去的,不能这样做。

那这样呢?

always@(posedge clk) beginq <= d;
endalways@(negedge clk) beginq <= d;
end

这不是废话吗?这和上面的写法没什么区别?属于掩耳盗铃。

对时钟做文章:

assign clk_gen = ~clk;
always@(posedge clk) beginq <= d;endalways@(posedge clk_gen) beginq <= d;
end

综合工具不能综合,同样属于掩耳盗铃之举动。

生成的时钟clk_gen和clk直接相关,然后对同一个reg变量进行赋值,无异于同一个时钟上下边沿进行赋值。

那我们对reg变量动手,用不同的reg变量代表输出,之后进行逻辑运算。

我的设计1

给出一种可行的方案:

module top_module (input clk,input d,output q
);reg p = 0, n = 0;always@(posedge clk) beginn <= d;
endalways@(negedge clk ) beginp <= d;
endassign q = clk ? n : p;endmodule

我的设计2

最后还有一种可行的方案:

module TwoEdge(input clk,input rst_n,input d,input out);reg p = 0, n = 0;always@(posedge clk) begin p <= d ^ n;
endalways@(negedge clk ) beginn <= d ^ p;endassign out = p ^n;endmodule

但此刻我心力交瘁,竟想不出为什么了?

2019年11月24(周日),21:57(这个日子过后,我将又是一个状态)。

HDLBits 系列(15) 如何设计一个双边沿采样的电路?相关推荐

  1. 生物信息学:任选一种编程语言,设计一个双序列全局比对的程序

    任选一种编程语言,设计一个双序列全局比对的程序.要求: 1) 输入两条蛋白质序列,输出比对结果例如: Alignment Score: 12345 E E E E E K K K K K A A A ...

  2. FPGA中如何实现双边沿采样?

    昨天和同学讨论双边沿采样的方法,包括DDR是如何实现的呢? 首先肯定不能在一个always块内用一个时钟的上下边沿,如下: always@(posedge clk or negedge clk) be ...

  3. verilog设计一个分,秒定时器电路:输入时钟1KHZ进行分秒计数

    verilog设计一个分,秒定时器电路:输入时钟1KHZ进行分秒计数 目标 实现分秒计数 问题分析 首先要求1KHZ的时钟,周期为1*10e-3s,达成1秒需要1000个周期,因为没有提到占空比就偷懒 ...

  4. C语言八位彩灯循环左移,利用计数器和移位寄存器设计一个八个彩灯循环电路?...

    3 工作原理 3.1 系统方案 3.11 方案一 彩灯控制器电原理图如下图所示.ICl.IC2由555接成多谐振荡器.IC3由4位2进制计数器74LS93接成16进制计数器,其4个输出端可分别输出对计 ...

  5. 用jk触发器构成二分频电路_如何用下沿触发JK触发器设计一个同步二,四分频电路?...

    展开全部 沿触发的JK触发器设计一同32313133353236313431303231363533e78988e69d8331333431353962步时序电路,其状态图如下图所示,要求电路使用的门 ...

  6. HDLBits 系列(0)专题目录

    本篇博文是近来总结HDLBits系列的目录,点击蓝色字体即可进入查看具体内容. HDLBits 系列(1)从HDLBits中获取灵感,整顿自己,稳步前行 HDLBits 系列(2)如何避免生成锁存器? ...

  7. 组合逻辑电路的设计(二) -- 五路输入呼叫显示电路和两个BCD8421码的加法运算电路

    一.实验任务及要求 1. 设计要求(2题任选1题,鼓励2题都做) (1) 设计一个五路输入呼叫显示电路,5个数码开关分别模拟用户的输入信号,用户优先权按用户编号依次递减,即1号的优先权最高,5号最低: ...

  8. HDLBits 系列(18) BCD码计数器的设计

    目录 原题复现 审题 我的设计 原题复现 先给出原题: Build a 4-digit BCD (binary-coded decimal) counter. Each decimal digit i ...

  9. 消息中间件系列(七):如何从0到1设计一个消息队列中间件

    消息队列作为系统解耦,流量控制的利器,成为分布式系统核心组件之一. 如果你对消息队列背后的实现原理关注不多,其实了解消息队列背后的实现非常重要. 不仅知其然还要知其所以然,这才是一个优秀的工程师需要具 ...

最新文章

  1. linux oracle 远程exp_linux单独安装oracle客户端及exp/imp工具配置
  2. 如何通过IP定位交换机
  3. Dapr + .NET Core实战(三)状态管理
  4. Servlet读取文件的最好的方式
  5. 【C++深度剖析教程10】C++中的字符串类
  6. 利用python读取栅格数据
  7. Mybatis源码之缓存模块分析
  8. 拳王虚拟项目公社:闲鱼知乎引流售卖虚拟资源的虚拟副业项目实操
  9. Pytorch损失函数BCELoss,BCEWithLogitsLoss
  10. [转]C#中水晶报表实例
  11. android.mk 编译选项,Android.mk中加入选项,编译生成可以直接安装的apk包
  12. 极简网关认证方案:诞生于国科大的“认证博士”
  13. 一天一个小算法——最小生成树(kru Prm)
  14. 自定义控件解决android中TextView中英文换行问题
  15. curl http header_利用Linux命令cURL实现文件定时上传到ftp服务器的小程序,实用
  16. Solidity介绍
  17. 洛谷 P3469 [POI2008]BLO-Blockade
  18. 12星座的出生年月日性格_出生年月与星座对照表
  19. 神级程序员教你用代码哄好生气的女朋友,网友:我要甜甜的恋爱!
  20. n平方的求和公式_n的二次方怎么求和?

热门文章

  1. 大四可以正式入职吗_三方协议一签,就不是应届生了吗?高校毕业生注意,别错失身份...
  2. python3 矩阵运算_3.10 矩阵与线性代数运算
  3. mybatis 大于小于转义_10 HTML5特性、转义字符和注释
  4. 弹出层,div的写法
  5. java线程饥饿死锁_java并发-线程饥饿死锁测试
  6. java 对象怎么序列化,java对象序列化总结
  7. java gui 窗口 传值_java – GUI – 在不同窗口之间传输数据(J...
  8. linux 树莓派查看ip,树莓派 常用Linux命令
  9. 关于举办第十七届全国大学生智能汽车竞赛的通知-加盖公章
  10. 智能车竞赛技术报告 | 智能车视觉 - 上海大学 - 猫耳麻花