2026年4月2日

按键计数器#DE10-Lite

摘要: DE10-Lite数码管:0点亮,1熄灭。 代码逻辑 按键计数需要处理1:按键消抖,2计数。 按键消抖:用2个按键KEY0和KEY1分别表示加计数和减计数的控制信号,检测按下的有效边沿,把按键输入key_in打两拍给key_buff2,然后用key_buff2去判断按键的状态,由按键的状态再打两拍来 阅读全文

posted @ 2026-04-02 08:52 yf.x 阅读(2) 评论(0) 推荐(0)

2026年3月31日

按键消抖#DE10-Lite

摘要: 按键消抖方法: 滤波电容; 延时; 持续重采样; 2个状态:0-未按下;1-按下。 仿真结果: 代码逻辑: 复位,10ms延时计数清零,进入按键没按下状态0,按键值为1; 按键按下,先消前抖。在状态0分别判断,如果按下时间小于10ms,就保持状态0,按键值也保持不变,如果按下持续达到10ms,就进入 阅读全文

posted @ 2026-03-31 11:27 yf.x 阅读(4) 评论(0) 推荐(0)

2026年3月28日

流水呼吸灯v2#DE10-Lite

摘要: 实验现象:4个led循环点亮呼吸; 算法:在控制使能模块添加一个计数器,每个led亮暗4s,添加一个16s的计数器,控制循环。 仿真结果: module time_ctrl( input clk, input rst_n, output reg [3:0] ctrl_en ); parameter 阅读全文

posted @ 2026-03-28 11:19 yf.x 阅读(1) 评论(0) 推荐(0)

流水呼吸灯-v1#DE10-Lite

摘要: 现象:4个led间隔2s依次点亮并呼吸。 算法:结合之前设计的流水灯和呼吸灯设计,有2种方式实现流水呼吸灯,一是添加一个使能信号,控制每个led的计数模块;而是控制复位信号,不添加新的信号。第1个led默认计数点亮,第二个2s后开始点亮,第3个4s后开始点亮,第4个6s后点亮。 仿真结果: 引脚分配 阅读全文

posted @ 2026-03-28 11:17 yf.x 阅读(1) 评论(0) 推荐(0)

呼吸灯-#DE10-Lite

摘要: 这是一个适用于 FPGA/CPLD 的 Verilog 呼吸灯代码,采用 PWM 原理实现。代码默认板载时钟为 50MHz,呼吸周期为 4 秒(2 秒渐亮,2 秒渐暗),LED 高电平点亮。 设计原理 通过三个级联计数器,将一个 2 秒的时间划分为 2ms 的 1000 个小段。再用一个线性递增/递 阅读全文

posted @ 2026-03-28 11:14 yf.x 阅读(4) 评论(0) 推荐(0)

2026年3月25日

流水灯#DE10-Lite#Verilog

摘要: 流水灯 实验板:DE10-Lite 资源:1. 按键复位: 2. led 3. 时钟 引脚分配: 信号名 管脚名 管脚号 clk MAX10_CLK1_50 P11 rst_n KEY0 B8 led LEDR9 B11 LEDR8 A11 LEDR7 D14 LEDR6 E14 LEDR5 C13 阅读全文

posted @ 2026-03-25 13:54 yf.x 阅读(5) 评论(0) 推荐(0)

2026年1月28日

HDLBits_review 2015fsm

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

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

2025年12月27日

补码FSM-HDLbits

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

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

2025年12月19日

串行数据流输出其中的数据位-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 阅读(16) 评论(0) 推荐(0)

串行数据接收判断-HDLbits

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

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

2025年12月18日

输出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 阅读(32) 评论(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 阅读(14) 评论(0) 推荐(0)

2025年12月17日

独热码状态机-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 阅读(8) 评论(0) 推荐(0)

旅鼠4-HDLbits

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

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

2025年12月16日

旅鼠游戏3-HDLbits

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

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

旅鼠游戏2-HDLbits

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

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

2025年12月15日

旅鼠游戏--HDLbits

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

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

2025年12月12日

水库水位控制问题-HDLbits

摘要: 原题描述的比较绕,大概就是水库供水,有3个水位探测器分别为s1,s2,s3,当水位最低时,小于S1,3个进水的阀门FR1,FR2,FR3和补充阀门deltaFR都打开,当水位在S1~S3分两部分,S1~S2 开FR1和FR2,S2~S3,开FR1,这两种情况里,如果水位监测到下降,deltaFR也要 阅读全文

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

2025年12月10日

康威生命游戏-hdlbits

摘要: 把16*16的格子分成三个区域,4个角,4条边和中间。每个格子有8个邻居,上下左右对角连接闭合。当邻居和是3,这个格子下一状态是1,和是2,下一状态保持,其他为0. module top_module(input clk,input load,input [255:0] data,output [2 阅读全文

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

2025年12月9日

4位移位寄存器-HDLbits

摘要: 4位移位寄存器,右移,异步复位,置数,使能; 置数比使能优先级高; module top_module( input clk, input areset, // async active-high reset to zero input load, input ena, input [3:0] da 阅读全文

posted @ 2025-12-09 09:41 yf.x 阅读(13) 评论(0) 推荐(0)

导航