摘要:使用Moore状态机实现对输入二进制数求其补码的操作。 题目要求:输入x是一个比特序列(每个时钟周期一位),从数字的最低位(LSB)开始,输出z是该数字的2的补码。数字长度任意。电路需要异步复位(areset)。转换在复位释放时开始,在复位断言时停止。 算法:对于补码,从LSB开始,直到遇到第一个1
阅读全文
摘要:把检测到成功收到的串行数据流中的8位数据位输出。 module top_module( input clk, input in, input reset, // Synchronous reset output [7:0] out_byte, output done); // reg [9:0]da
阅读全文
摘要:要求判断一段串行数据是否接收成功,(done=1).数据帧的起始位是0,中间八位数据,结束位是1. 从空闲状态开始,也就是初始状态是1,当接收到0,进入启动状态,然后每个数据位是1个状态,接收到1进入停止位,接收到0进入 错误状态,直到接收到1,返回初始状态。(这里往往会把错误状态忽略) modul
阅读全文
摘要:要求添加数据路径,把有效的PS2的3个字节的数据输出。 module top_module( input clk, input [7:0] in, input reset, // Synchronous reset output [23:0] out_bytes, output done); //
阅读全文
摘要:要求检测3个字节的数据流,每个时钟收到一个字节,首字节的bit[3]是1就是起始字节,做数据流的边界判断,收到有效的3字节,输出一个时钟长度的标记信号done。 module top_module( input clk, input [7:0] in, input reset, // Synchro
阅读全文
摘要:要求用等式实现,独热码编码。 module top_module( input in, input [9:0] state, output [9:0] next_state, output out1, output out2); assign next_state[0]=~in&(state[0]|
阅读全文
摘要:在老鼠左右走,碰墙翻转,挖坑,掉落之外加了摔死的状态。要求掉落时长超过20个时钟并且撞地就死。 难点在于下落时长的计算,必须在2种下落状态计算是否超过20个时钟,另,计数器的位宽不方便定义很大,用int比较合适。 再者就是状态转换。 module top_module( input clk, inp
阅读全文
摘要:在左右走,掉落的基础上再加上挖坑的动作,重点是判断优先级,掉落》挖坑》左右走。 注意:不能边掉边挖,只能在没掉,行走时,停下来挖。也就状态转换的逻辑要清晰。 module top_module( input clk, input areset, // Freshly brainwashed Lemm
阅读全文
摘要:还是那个老鼠左右走动的游戏,这次除了撞墙左右翻转之外,还加上了地面消失就掉落的功能,地面恢复后,继续掉落之前的状态。(越来越像超级玛丽了) module top_module( input clk, input areset, // Freshly brainwashed Lemmings walk
阅读全文
摘要:把16*16的格子分成三个区域,4个角,4条边和中间。每个格子有8个邻居,上下左右对角连接闭合。当邻居和是3,这个格子下一状态是1,和是2,下一状态保持,其他为0. module top_module(input clk,input load,input [255:0] data,output [2
阅读全文
摘要:4位移位寄存器,右移,异步复位,置数,使能; 置数比使能优先级高; module top_module( input clk, input areset, // async active-high reset to zero input load, input ena, input [3:0] da
阅读全文
摘要:hdlbits的练习题,难点在于12小时的时钟模式分成半夜12AM-01-11AM-中午12PM 11PM-半夜12PM循环,PM在不同范围取反,BCD进位使能。 module top_module( input clk, input reset, input ena, output pm, out
阅读全文
摘要:SPI 揭秘:了解基础知识和其他 简介 串行外设接口是微控制器与外设(比如SRAM,SD卡,移位寄存器,传感器等)通信的最主要的协议之一。它是一种同步的,全双工,基于主从的协议。比如,如果SPI的时钟是36MHz,传输速度将是36Mbps。因此,SPI协议的传输速度没有限制。这完全取决于设备支持的速
阅读全文
摘要:什么是I2C通信协议 I2C是一种串行,同步,多主机,板对板,半双工通信协议。顾名思义,它主要用在PCB内部通信。飞利浦半导体与1982年发明此协议,目标是使用更少的引脚通信。它只使用2条线通信。因此,也被称作双线协议。I2C支持主从配置。 图1 多个从机一个主机通过总线连接 硬件接口 I2C的物理
阅读全文
摘要:555定时器-4 非稳态多谐振荡器配置 前面的章节我们已讲述555定时器的单稳态模式和双稳态模式。本节将讨论非稳态模式。如何配置非稳态模式的定时器和其内部工作机制。 非稳态模式没有稳态状态,在高低电平连续振荡。也叫自激振荡器。跟之前讲过的单稳态和双稳态不同的地方时,非稳态不需要外部触发脉冲。它有一个
阅读全文
摘要:555定时器-3 双稳态多谐振荡器配置 上一节我们深入研究了单稳态模式下555定时器的内部工作机制。如果理解里之前的内容,本节将会非常容易。接下来,我们将看到双稳态模式是555定时器里最简单的一种模式。 我们先来了解简单的双稳态多谐振荡器的行为,然后再用555定时器来实现。 双稳态,顾名思义,有2个
阅读全文
摘要:555定时器-2. 单稳态多谐振荡器配置 参考:https://www.circuitbread.com/tutorials/555-timer-2-monostable-multivibrator-configuration# 之前已了解555定时器的内部工作机制。本节将研究555定时器的单稳态模
阅读全文
摘要:参考:https://www.circuitbread.com/tutorials/555-timer-1-introduction-to-555-timers 555定时器-1 555定时器简介 555定时器是一种非常流行的做时序相关应用的IC。它们坚固耐用,可用于任何需要时间控制的电路中。它可用
阅读全文
摘要:分频器的应用 设计输出频率为2KHz,占空比为0~100%可调PWM信号的应用电路。要求占空比的分辨率为1%。 分析 要求占空比为0~100%可调,分辨率为1%。应该有101种,用复位信号控制占空比为1,用100进制BCD码计数器控制占空比为0~99%。 开发板提供50MHz时钟,分频至2KHz,
阅读全文
摘要:分频器的设计 内容: 通用分频器; 偶分频; 奇分频; 半数分频。 实现: 通用分频器 分频公式 N是分频系数。 通用分频器的实现方法:应用N进制计数器,将要被分频的信号作为计数器的时钟脉冲,分频信号作为输出。取M值在计数到0至N-1期间,0-M设置输出为低,M-N-1设置为高。M可调。 //通用N
阅读全文