news 2026/7/31 4:37:34

verilog HDLBits刷题[Finite State Machines]“Fsm ps2”---PS/2 packet parser

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
verilog HDLBits刷题[Finite State Machines]“Fsm ps2”---PS/2 packet parser

1、题目

The PS/2 mouse protocol sends messages that are three bytes long. However, within a continuous byte stream, it's not obvious where messages start and end. The only indication is that the first byte of each three byte message always has bit[3]=1 (but bit[3] of the other two bytes may be 1 or 0 depending on data).

We want a finite state machine that will search for message boundaries when given an input byte stream. The algorithm we'll use is to discard bytes until we see one with bit[3]=1. We then assume that this is byte 1 of a message, and signal the receipt of a message once all 3 bytes have been received (done).

The FSM should signal done in the cycle immediately after the third byte of each message was successfully received.

2、分析

1byte=8bit

PS/2鼠标协议发送三字节长的消息,第一个字节的bit[3]=1,其它不一定,完成所有三个字节的接受后表示消息已经收到。

3、代码

module top_module( input clk, input [7:0] in, input reset, // Synchronous reset output done); // parameter IDLE=4'b0001,BYTE1=4'b0010,BYTE2=4'b0100,BYTE3=4'b1000; reg [4:0]state,next_state; // State transition logic (combinational) always@(*)begin case(state) IDLE:next_state=in[3]?BYTE1:IDLE; BYTE1:next_state=BYTE2; BYTE2:next_state=BYTE3; BYTE3:next_state=in[3]?BYTE1:IDLE; default:next_state=IDLE; endcase end // State flip-flops (sequential) always@(posedge clk)begin if(reset) state<=IDLE; else state<=next_state; end // Output logic assign done=(state==BYTE3); endmodule
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/31 4:34:20

贝叶斯优化与PatchTST在能源负荷预测中的应用

1. 项目概述&#xff1a;当贝叶斯优化遇上PatchTST 在能源管理领域&#xff0c;准确预测综合能源负荷一直是个棘手的挑战。传统方法往往陷入"调参地狱"——工程师们需要反复尝试各种超参数组合&#xff0c;既耗时又难以保证最优效果。而我们的解决方案将贝叶斯优化与…

作者头像 李华
网站建设 2026/7/31 4:33:32

银行家的模拟器

下载地址&#xff1a;https://pan.quark.cn/s/66a50163f23c 大家好&#xff0c;我是你们的老朋友。最近在开发财务类 Demo项目时&#xff0c;发现很多小伙伴需要一个银行余额模拟工具用于测试。今天我们就用纯Java代码实现一个支持交通银行、农业银行、工商银行、建设银行、邮政…

作者头像 李华
网站建设 2026/7/31 4:26:43

ESP32固件手动编译与烧录:从Arduino源码到芯片的完整工程实践

1. 项目概述&#xff1a;从源码到芯片的旅程如果你玩过ESP32&#xff0c;肯定经历过这样的场景&#xff1a;在Arduino IDE里写好了代码&#xff0c;点击上传&#xff0c;看着进度条跑完&#xff0c;然后板子上的LED开始闪烁——项目跑起来了。但有没有想过&#xff0c;那个被上…

作者头像 李华
网站建设 2026/7/31 4:26:25

vLLM大模型推理优化:PagedAttention与连续批处理实战指南

vLLM 是当前大模型推理领域最受关注的高性能框架之一&#xff0c;由加州大学伯克利分校等机构的研究人员开源。它专门针对大语言模型&#xff08;LLM&#xff09;推理中的显存瓶颈和计算效率问题&#xff0c;通过创新的 PagedAttention 机制和连续批处理技术&#xff0c;显著提…

作者头像 李华
网站建设 2026/7/31 4:25:07

基于SpringBoot+Vue的大型书店管理系统设计与实现

课题背景随着互联网技术的飞速发展&#xff0c;电子商务已成为现代商业的重要组成部分&#xff0c;图书零售行业也不例外。传统书店的运营模式逐渐向线上迁移&#xff0c;大型书店管理系统成为提高管理效率、优化用户体验的重要工具。SpringBoot和Vue作为当前主流的技术框架&am…

作者头像 李华
网站建设 2026/7/31 4:24:18

STM32固件库下载与集成指南:从官方获取到工程配置

1. 从零开始&#xff1a;为什么STM32固件库是开发的第一步如果你刚开始接触STM32&#xff0c;或者正准备从51单片机、Arduino转向这个更强大的32位MCU世界&#xff0c;你遇到的第一个拦路虎&#xff0c;很可能不是复杂的电路&#xff0c;也不是深奥的算法&#xff0c;而是一个看…

作者头像 李华