HDLBits 系列(42)根据仿真波形来设计电路之时序逻辑
文章目录
- 前言
- 电路设计1
- 原题复现
- 题目解析
- 我的设计
- 电路设计2
- 原题复现
- 题目解析
- 我的设计
- 电路设计3
- 原题复现
- 题目解析
- 我的设计
- 电路设计4
- 原题复现
- 题目解析
- 我的设计
前言
上篇博文讨论了组合逻辑的情况,最后留了几个题目,我也没做,感觉繁杂,有兴趣的可以挑战一下,地址为:
上篇博文链接
这篇博客,可以说是上篇博客的姊妹篇,简单的讨论下时序逻辑的类型,通过仿真波形来设计电路是一类题目,也应该是我们应该具备的电路设计能力。
写代码心里要有电路,给出电路要能转化为设计,给出波形图也要能给出电路设计,这都是需要努力的方向。
电路设计1
先给出一个最简单的时序波形,然后给出设计。
原题链接
原题复现
This is a sequential circuit. Read the simulation waveforms to determine what the circuit does, then implement it.
题目解析
很容易看出,这仅仅是对输入延迟一拍,并取反得到最后的结果。
我的设计
module top_module (input clk,input a,output q );reg q_r1 = 0;always@(posedge clk) beginq_r1 <= a;endassign q = ~q_r1;endmodule
电路设计2
原题链接
原题复现
This is a sequential circuit. Read the simulation waveforms to determine what the circuit does, then implement it.
题目解析
这个题目还是需要多看一会的,对于p来说是一个时钟高电平跟随,低电平锁存的锁存器。
对于q是一个二分频电路,注意,是在时钟下降沿的时候,q翻转一次。
不得不让人吐槽的是,没有给出复位信号,所以我们只能在信号定义的时候给一个初值,至于初值是0还是1,没有要求,但是如果是做这个题目,就可能对应其中的一种。
在波形信息中,我只能看到这一点。如果设计还是不正确的话,就让这道题去si吧,心里知道怎么回事就好了,不得不说bug一条。
我的设计
module top_module (input clock,input a,output p,output q );reg p_mid = 0;always@(*)beginif(clock) p_mid = a;else p_mid = p_mid;endreg q_mid = 1;always@(negedge clock) beginq_mid <= ~q_mid;endassign q = q_mid;assign p = p_mid;endmodule
电路设计3
题目链接
原题复现
This is a sequential circuit. Read the simulation waveforms to determine what the circuit does, then implement it.
Module Declaration
module top_module (
input clk,
input a,
output [3:0] q );
题目解析
这个题目其实就是一个带有使能的计数器,计数值最大为6,使能信号a低电平有效,无效期间置位为4。
我的设计
module top_module (input clk,input a,output [3:0] q );reg [3:0] q_mid;always@(posedge clk)beginif(a) q_mid <= 4;else if(q_mid == 6) q_mid <= 0;else q_mid <= q_mid + 1;endassign q = q_mid;endmodule
电路设计4
题目链接
原题复现
This is a sequential circuit. The circuit consists of combinational logic and one bit of memory (i.e., one flip-flop). The output of the flip-flop has been made observable through the output state.
Read the simulation waveforms to determine what the circuit does, then implement it.
Module Declaration
module top_module (
input clk,
input a,
input b,
output q,
output state );
题目解析
这个题目暂时没有看出来,等待你的发现。
我的设计
HDLBits 系列(42)根据仿真波形来设计电路之时序逻辑相关推荐
- HDLBits 系列(41)根据仿真波形来设计电路之组合逻辑
文章目录 Sim/circuit1 原题复现 我的设计 Sim/circuit2 原题复现 题目分析 我的设计 Sim/circuit3 原题复现 题目分析 我的设计 Sim/circuit4 原题复 ...
- FPGA学习(第8节)-Verilog设计电路的时序要点及时序仿真
一个电路能跑到多少M的时钟呢? 这和电路的设计有密切联系(组合逻辑的延时),我们知道电路器件都是由一定延迟的,所以信号的仿真很重要.如果延迟时间大于时钟,就会导致时序违例,出现逻辑错误. 项目要求30 ...
- HDLBits 系列(0)专题目录
本篇博文是近来总结HDLBits系列的目录,点击蓝色字体即可进入查看具体内容. HDLBits 系列(1)从HDLBits中获取灵感,整顿自己,稳步前行 HDLBits 系列(2)如何避免生成锁存器? ...
- 零基础学FPGA(五):时序逻辑电路设计之计数器(附有呼吸灯实验、简单组合逻辑设计介绍)
目录 日常·唠嗑 前言 一.认清逻辑设计 二.时序逻辑电路设计 三.扩展:呼吸灯实验 日常·唠嗑 第一次建立<零基础学FPGA>专栏,是在2021年2月2日,已经过去了一年了,目前只更新了 ...
- Verilog时序逻辑硬件建模设计(四)移位寄存器
Verilog时序逻辑硬件建模设计(四)移位寄存器 -Shift Register 没有任何寄存器逻辑,RTL设计是不完整的.RTL是寄存器传输级或逻辑,用于描述依赖于当前输入和过去输出的数字逻辑. ...
- HDLBits 系列(38)值得一看的状态机设计题目
目录 背景 原题复现 我的方案 状态转移图 我的设计 更新方案 FPGA/IC群推荐 背景 这是这个系列中的一个状态机的题目,但是相比于给了你完整状态转移图之类的题目,这个题目还是稍微有点难的,我实在 ...
- HDLBits 系列(5)让三元条件运算符(?:)在你的设计中发挥作用
目录 抛砖引玉 举例练习 写在最后 抛砖引玉 Verilog具有三元条件运算符(?:)运用得当,可以起到简化代码的作用,使得代码的易读性提高,但是运用不当,也会背道而驰. 下面讲讲Verilog具有三 ...
- HDLBits 系列(1)从HDLBits中获取灵感,整顿自己,稳步前行
目录 前言 对HDLBits的夸赞 最后想说的话 前言 坚持一件事情很难系列,有些事情看似简单,但是坚持做下去确实会有所收获,举个不恰当的例子,总搞一些自己觉得难的东西,会让自己的博客断更,困难的东西 ...
- 【011】基于51单片机的低频信号发生proteus仿真与实物设计
一.资料内容 (1).基于51单片机的低频信号发生proteus仿真设计一份: (2).基于51单片机的低频信号发生proteus仿真设计keli源代码一份: (3).基于51单片机的低频信号发生A ...
最新文章
- python property装饰器原理,Python @property装饰器不起作用
- 最近开始接触网络电话
- 2061:【例1.2】梯形面积【入门题】
- 【报告分享】2021四大行业品牌蓝V社媒内容运营观察报告.pdf(附下载链接)
- Shell_Shell调用SQLPlus简介(案例)
- 【原】React中,map出来的元素添加事件无法使用
- 形象描述oracle是如何工作的--有点意思
- 安装emmet时pyv8下载失败
- 【theano-windows】学习笔记五——theano中张量部分函数
- 利用xlsl.full.js导入excel表格
- 小程序中wx-if使用方法
- 京东登陆界面正则匹配
- C# “贝格尔”编排法
- 关于linux移植碰到Resetting CPU ...的问题
- python elementtree乱码_Python中使用ElementTree解析xml
- 一文带你吃透 Kafka 这些原理
- Unity 绿幕视频抠图算法原理与实现 -- 效果极好
- Brew平台音乐播放器Dream Player
- High waits on control file sequential read
- 跟艾文学编程 《零基础入门学Python》Jupyter Notebook安装和使用
热门文章
- Lync Server 2010移动功能部署PART B:外部篇
- windows 7作为微软对抗Google的秘密武器
- python随机生成车牌_Python实现随机生成任意数量车牌号
- c++ 判断数学表达式有效性_C运算符和表达式、if判断、switch与逻辑运算、循环语句...
- mysql引擎层存储层_MySQL存储底层技术:InnoDB底层原理解读
- 奇瑞a3中控按键图解_纷纷亮相,奇瑞众多黑科技悄然现身,焦点全在星途VX智能座舱上...
- 全面理解Javascript闭包和闭包的几种写法及用途
- android 计算运动速度,android – 计算参考真北的加速度
- oracle rowid mysql_相当于Oracle的RowID在MySQL中
- vb.net调用oracle存储过程,今天搞好了VB.NET调用Oracle存储过程返回游标的问题