序言
眨眼一看已经两个月没有更新了,这两个月忙了各种考试、各种大作业设计(上到算法系统下到管子版图)、组内工作、4个比赛项目和无数杂事,暂时都告一段落了。休息了几天,准备继续开始沉心积累了,积累的同时想把这个专题早点结束,虽然HDL网站的题目半年前基本上刷完,奈何有拖延症,迟迟没有更新完,希望这几天能全部整理完!!
HDLBits网址:https://hdlbits.01xz.net/wiki/Main_Page
题目
在许多比较老的串行通信协议中,每个数据字节都与起始位和停止位一起发送,以帮助接收器从位流中分隔字节。一种常见的方案是使用一个起始位(0),8个数据位和1个停止位(1)。当没有任何传输(空闲)时,线路也处于逻辑1。
设计一个有限状态机,当给定比特流时,它将识别何时正确接收了字节。它需要标识起始位,等待所有8个数据位,然后验证停止位是否正确。如果在预期的情况下没有出现停止位,则FSM必须等待直到找到停止位,然后再尝试接收下一个字节。时序图如下: