Verilog学习日志(2021.8.28)

这篇博客记录了使用Verilog HDL设计一个小人行动逻辑的过程,包括碰到墙反弹、掉落、挖掘及死亡状态的实现。作者通过状态机实现小人的行为,并遇到在判断掉落时间超过20clk时的计数器问题。博客还提及了对one-hot FSM的理解以及开学前的学习计划和复习重点。
摘要由CSDN通过智能技术生成

2021.8.28

1.继续刷HDL bits。

(127)设计一种逻辑,一个小人撞到墙的时候可以自动往相反的地方跑,如果两边都有墙被撞到的话就往前一个方向的相反方向跑动。

(128)对上一个逻辑进行延伸,引入掉落的逻辑,如果接触不到地面,就发生掉落,同时发出aaah的叫声,然后如果在掉落后再接触到地面,就再一次以之前那个方向进行跑动。

//做这题的时候要意识到,最小项之和的逻辑函数表示形式,需要里面元素的各个值都是1bit的,如果不是1bit的话,就需要用到按位的与或运算符。不然即使编译不出错,最后仿真出来的结果也不是对的。

(129)在上一题的基础上,引入了挖掘的逻辑。引入了两个状态,分别为dig_L和dig_R,让挖掘状态被取消后,按照原行进方向继续行进。而当挖掘到脚下无地面时,进入和上题一样的掉落状态。

(130)在上一题的基础上,加入掉落时间过久(高度差过大)情况下落地会导致小人死掉。在死掉的状态下小人是不能再走路、挖地板和掉落了。这道题较上题多了一个状态SPLAT表示小人死掉。

//这题的难点是怎么让电路判断小人掉落的时间超过20clk。我使用的方法是在always过程块当中加入一个计数器,然后引入一个3位的中间信号名为splatter。每一个clk上升沿就记一次数,然后计数超过20个之后,splatter反转为上升沿。然后当小人落地之后,就自动进入SPLAT状态。

//但是在编译的时候,似乎出现了以下报错,不大清楚为啥会这样:

 

(131)暂时跳过这个,对于这个one-hot FSM我还不是很清楚。

2.因为要开学了,所以先告一段落,到开学的时候再安排之后的学习计划。不过开学的时候要把上面那些大概再复习一遍,然后要重视高亮强调的部分,把还没解决的问题解决了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值