随笔分类 -  FSM

1 2 下一页

状态机
HDLBits_review 2015fsm
摘要:题目: 我们将要创建一个计时器: 1. 在检测到特定模式1101时启动; 2. 再移动4位以确定延时时间; 3. 等待计数器计数完成; 4. 通知用户,并等待用户确认定时。 在这个题目里,只实现控制计时器的有限状态机。这里不包括数据路径(计数器和一些比较器)。 串行数据从数据输入引脚获取。当接收到1 阅读全文

posted @ 2026-01-28 10:48 yf.x 阅读(5) 评论(0) 推荐(0)

补码FSM-HDLbits
摘要:使用Moore状态机实现对输入二进制数求其补码的操作。 题目要求:输入x是一个比特序列(每个时钟周期一位),从数字的最低位(LSB)开始,输出z是该数字的2的补码。数字长度任意。电路需要异步复位(areset)。转换在复位释放时开始,在复位断言时停止。 算法:对于补码,从LSB开始,直到遇到第一个1 阅读全文

posted @ 2025-12-27 11:04 yf.x 阅读(24) 评论(0) 推荐(0)

串行数据流输出其中的数据位-HDLbits
摘要:把检测到成功收到的串行数据流中的8位数据位输出。 module top_module( input clk, input in, input reset, // Synchronous reset output [7:0] out_byte, output done); // reg [9:0]da 阅读全文

posted @ 2025-12-19 11:09 yf.x 阅读(14) 评论(0) 推荐(0)

串行数据接收判断-HDLbits
摘要:要求判断一段串行数据是否接收成功,(done=1).数据帧的起始位是0,中间八位数据,结束位是1. 从空闲状态开始,也就是初始状态是1,当接收到0,进入启动状态,然后每个数据位是1个状态,接收到1进入停止位,接收到0进入 错误状态,直到接收到1,返回初始状态。(这里往往会把错误状态忽略) modul 阅读全文

posted @ 2025-12-19 10:15 yf.x 阅读(8) 评论(0) 推荐(0)

输出PS2数据流-HDLbits
摘要:要求添加数据路径,把有效的PS2的3个字节的数据输出。 module top_module( input clk, input [7:0] in, input reset, // Synchronous reset output [23:0] out_bytes, output done); // 阅读全文

posted @ 2025-12-18 15:42 yf.x 阅读(30) 评论(0) 推荐(0)

PS2数据流检测状态机-HDLbits
摘要:要求检测3个字节的数据流,每个时钟收到一个字节,首字节的bit[3]是1就是起始字节,做数据流的边界判断,收到有效的3字节,输出一个时钟长度的标记信号done。 module top_module( input clk, input [7:0] in, input reset, // Synchro 阅读全文

posted @ 2025-12-18 09:39 yf.x 阅读(11) 评论(0) 推荐(0)

独热码状态机-HDLbits
摘要:要求用等式实现,独热码编码。 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]| 阅读全文

posted @ 2025-12-17 16:11 yf.x 阅读(7) 评论(0) 推荐(0)

旅鼠4-HDLbits
摘要:在老鼠左右走,碰墙翻转,挖坑,掉落之外加了摔死的状态。要求掉落时长超过20个时钟并且撞地就死。 难点在于下落时长的计算,必须在2种下落状态计算是否超过20个时钟,另,计数器的位宽不方便定义很大,用int比较合适。 再者就是状态转换。 module top_module( input clk, inp 阅读全文

posted @ 2025-12-17 10:31 yf.x 阅读(10) 评论(0) 推荐(0)

旅鼠游戏3-HDLbits
摘要:在左右走,掉落的基础上再加上挖坑的动作,重点是判断优先级,掉落》挖坑》左右走。 注意:不能边掉边挖,只能在没掉,行走时,停下来挖。也就状态转换的逻辑要清晰。 module top_module( input clk, input areset, // Freshly brainwashed Lemm 阅读全文

posted @ 2025-12-16 11:16 yf.x 阅读(19) 评论(0) 推荐(0)

旅鼠游戏2-HDLbits
摘要:还是那个老鼠左右走动的游戏,这次除了撞墙左右翻转之外,还加上了地面消失就掉落的功能,地面恢复后,继续掉落之前的状态。(越来越像超级玛丽了) module top_module( input clk, input areset, // Freshly brainwashed Lemmings walk 阅读全文

posted @ 2025-12-16 09:24 yf.x 阅读(15) 评论(0) 推荐(0)

旅鼠游戏--HDLbits
摘要:游戏规则很简单,老鼠单向移动,撞墙就左右翻转。同时撞左右墙,就同时右左翻转。用状态机实现。 module top_module( input clk, input areset, // Freshly brainwashed Lemmings walk left. input bump_left, 阅读全文

posted @ 2025-12-15 16:17 yf.x 阅读(5) 评论(0) 推荐(0)

基于FPGA的贪吃蛇游戏 之代码解析
摘要:基于FPGA的贪吃蛇游戏 之代码解析 1. 代码结构 代码结构包含7格.v文件。 下面依次解析。 2. 代码解析 (1) seg_display.v 数码管的译码模块是最熟悉,最简单的模块了。这里是共阳极的数码管,用case语句编码即可。从上图可以看到,这个模块被例化了3次,分别驱动3个数码管显示, 阅读全文

posted @ 2024-05-13 19:45 yf.x 阅读(513) 评论(0) 推荐(0)

零、基于FPGA的贪吃蛇游戏设计概述
摘要:零、基于FPGA的贪吃蛇游戏设计概述 1. 代码结构 系统模块如图所示: snake_top.v:顶层模块,例化子模块,连接及与外部信号通信; game_ctrl_unit.v:游戏状态控制模块,控制状态转换和输出; snake.v:控制蛇身运动方向和蛇身增长; appple_generate.v: 阅读全文

posted @ 2024-05-08 14:42 yf.x 阅读(112) 评论(0) 推荐(0)

八、贪吃蛇之状态机设计
摘要:八、贪吃蛇之状态机设计 贪吃游戏采用mealy状态机。 1. 游戏状态控制状态机 用一段式编码来完成游戏控制过程: 各状态说明: (1) RESTART:复位后进入重启状态,屏幕显示欢迎界面,6秒后进入游戏难度选择界面,等待选择难度。 (2) START:用SW[2:0]选择游戏难度,按下KEY[3 阅读全文

posted @ 2024-05-08 11:41 yf.x 阅读(150) 评论(0) 推荐(0)

九、贪吃蛇之蛇身控制
摘要:九、贪吃蛇之蛇身控制 1. 目标 (1) 游戏难度决定蛇身移动的速度; (2) 蛇身增长; (3) 蛇身移动。 2. 蛇身速度控制 用计数器来控制蛇身移动的时间间隔,间隔短,移动快,游戏难度就越难。在游戏难度选择界面,用SW[2:0]选择难度。 //蛇身移动速度 else begin clk_cnt 阅读全文

posted @ 2024-05-08 09:58 yf.x 阅读(222) 评论(0) 推荐(0)

实验8 #第8章 Verilog有限状态机设计-2 #Verilog #Quartus #modelsim
摘要:2. 汽车尾灯控制器 2.1 实验要求:设计一个汽车尾灯控制电路。 (1)功能:汽车左右两侧各有3个尾灯,要求控制尾灯按如下规则亮灭。 汽车沿直线行驶时,两侧指示灯全灭。 右转弯时,左侧的指示灯全灭,右侧的指示灯按000,100,010,001,000循环; 左转弯时,右侧的指示灯全灭,左侧的指示灯 阅读全文

posted @ 2020-11-04 12:06 yf.x 阅读(1215) 评论(0) 推荐(0)

实验8 #第8章 Verilog有限状态机设计-3 #Verilog #Quartus #modelsim
摘要:3. 状态机A/D采样控制电路 3.1 目标:用状态机控制ADC0809实现数据采集。 3.2 ADC0809简介 (1)ADC0809是8位A/D转换器,片内有8路模拟开关,可控制8个 模拟量中 的1个进入转换器中。完成一次转换的时间约100us。含锁存控制的8个 多路开关,输出有三态缓冲器控制, 阅读全文

posted @ 2020-11-03 14:35 yf.x 阅读(1243) 评论(0) 推荐(0)

实验8 #第8章 Verilog有限状态机设计-1 #Verilog #Quartus #modelsim
摘要:8-1 流水灯控制器 1. 实验要求:采用有限状态机设计彩灯控制器,控制LED灯实现预想的演示花型。 2. 实验内容: (1)功能:设计彩灯控制器,要求控制18个LED灯实现如下的演示花型: 从两边往中间逐个亮,全灭; 从中间往两头逐个亮,全灭; 循环执行上述过程; 2.1 流水灯控制器用两个alw 阅读全文

posted @ 2020-10-16 16:29 yf.x 阅读(2107) 评论(0) 推荐(0)

习题8 #第8章 Verilog有限状态机设计-4 #Verilog #Quartus #modelsim
摘要:4. 用状态机设计交通灯控制器,设计要求:A路和B路,每路都有红、黄、绿三种灯,持续时间为:红灯45s,黄灯5s,绿灯40秒。 A路和B路灯的状态转换是: (1) A红,B绿(持续时间40s); (2) A红,B黄(持续时间5s); (1) A绿,B红(持续时间40s); (1) A绿,B黄(持续时 阅读全文

posted @ 2020-10-14 13:27 yf.x 阅读(1858) 评论(0) 推荐(0)

习题8 #第8章 Verilog有限状态机设计-3 #Verilog #Quartus #modelsim
摘要:3. 编写一个8路彩灯控制程序,要求彩灯有以下3种演示花型。 (1) 8路彩灯同时亮灭; (2) 从左至右逐个亮(每次只有1路亮); (3) 8路彩灯每次4路灯亮,4路灯灭,且亮灭相间,交替亮灭。 在演示过程中,只有当一种花型演示完毕才能转向其他演示花型。 3.1 设计思路:8个灯,3种花型,顺序展 阅读全文

posted @ 2020-10-14 00:10 yf.x 阅读(3369) 评论(1) 推荐(0)

1 2 下一页

导航