HDLBits-Lemmings4
题目:
状态机:
代码:
module top_module(input clk,input areset, // Freshly brainwashed Lemmings walk left.input bump_left,input bump_right,input ground,input dig,output walk_left,output walk_right,output aaah,output digging ); parameter S0 = 7'b0000001;parameter S1 = 7'b0000010;parameter S2 = 7'b0000100;parameter S3 = 7'b0001000;parameter S4 = 7'b0010000;parameter S5 = 7'b0100000;parameter S6 = 7'b1000000;reg [6:0] state;reg [15:0] cnt;reg [3:0] out;assign {walk_left,walk_right,aaah,digging} = out;always @ (posedge clk or posedge areset) beginif(areset)cnt <= 15'd0;else if(~ground)cnt <= cnt + 15'd1;else if(ground)cnt <= 15'd0;elsecnt <= cnt;endalways @ (posedge clk or posedge areset) beginif(areset)state <= S0;else begincase(state)S0:beginif(~ground)state = S2;else if(dig)state = S3;else if(bump_left)state = S1;elsestate = S0; endS1:beginif(~ground)state = S4;else if(dig)state = S5;else if(bump_right)state = S0;elsestate = S1;endS2:beginif(cnt >= 5'd21 && ground)state = S6;else if(cnt < 5'd21 && ground)state = S0;elsestate = S2;endS3:beginif(~ground)state = S2;elsestate = S3;endS4:beginif(cnt >= 5'd21 && ground)state = S6;else if(cnt < 5'd21 && ground)state = S1;elsestate = S4;endS5:beginif(~ground)state = S4;elsestate = S5;endS6:beginstate = S6; enddefault:state = S0;endcaseendendalways @ (*) begincase(state)S0:beginout = 4'b1000;endS1:beginout = 4'b0100;endS2:beginout = 4'b0010; endS3:beginout = 4'b0001;endS4:beginout = 4'b0010;endS5:beginout = 4'b0001;endS6:beginout = 4'b0000;enddefault:beginout = 4'b1000;endendcaseendendmodule
注意:
状态机可以写成一段式、二段式和三段式,实际可以根据自己的需求来,最终目标是要保证时序正确。
HDLBits-Lemmings4相关推荐
- HDLBITS笔记34:Lemmings1、Lemmings2、Lemmings3、Lemmings4
目录 题目1:Lemmings1 题目2:Lemmings2 题目3:Lemmings3 题目4: Lemmings4 题目1:Lemmings1 游戏Lemmings涉及具有相当简单大脑的小动物.如 ...
- HDLBits答案(16)_Verilog有限状态机(3)
Verilog有限状态机(3) HDLBits链接 前言 今天继续更新状态机小节的习题,本章主要编写Lemmings Game部分. 题库 题目描述10: Game Lemmings1:有个小人左右走 ...
- HDLBits学习------Problem 127~130
参考链接:HDLBits导学 Problem 127 Lemmings1 问题:游戏旅鼠涉及到有非常简单的大脑的生物,我们将会使用有限状态机(FSM)对其建模. 在旅鼠的2D世界中,旅 ...
- 【verilog学习23】HDLBits:Circuits_Sequential Logic_Finite State Machines
[HDLBits]Circuits_Sequential Logic_Finite State Machines I FSM 1 (asynchronous reset) (Fsm1) 1.代码编写 ...
- verilog练习:hdlbits网站上的做题笔记(6)
前言 之前的文章<如何学习verilog,如何快速入门?>中提到了verilog学习,推荐了一个可以练习的网站:hdlbits网站,那自己也玩玩这个网站. 这篇文章,是接着<veri ...
- HDLBits Lemmings1-4
HDLBits Lemmings1-4 Lemming1 网址:https://hdlbits.01xz.net/wiki/Lemmings1 The game Lemmings involves c ...
- 【HDLBits 刷题 10】Circuits(6)Finite State Manchines 10-17
目录 写在前面 Finite State Manchines Lemmings1 Lemmings2 Lemmings3 Lemmings4 Fsm onehot Fsm ps2 Fsm ps2dat ...
- HDLBits 系列(0)专题目录
本篇博文是近来总结HDLBits系列的目录,点击蓝色字体即可进入查看具体内容. HDLBits 系列(1)从HDLBits中获取灵感,整顿自己,稳步前行 HDLBits 系列(2)如何避免生成锁存器? ...
- HDLBits 系列(40)如何写 TestBench 文件?
目录 序言 变量定义 时钟设计 设计输入 模块例化 实战演练 序言 由于入门的测试文件很简单,所以一直以来也都是直接给出测试文件,直到今天才想着去总结一个测试文件的写法.这篇博客将根据HDLBits的 ...
- HDLBits 系列(31)Serial Receiver and Datapath
目录 序言 原题复现 我的设计 序言 上篇博文: HDLBits 系列(30)Serial Receiver 写了串行接收器如何接收8位串行数据,正确接收8位串行数据后给一个接收完毕标志信号,这篇博文 ...
最新文章
- 不要上手就学深度学习!超详细的人工智能专家路线图,GitHub数天获2.1k星
- 人人须知的 jQuery 技巧
- 降序排序_新手需要掌握的Excel排序功能都在这儿了!
- unicode字符、python乱码问题
- 《Spark GraphX in Action》书评及作者访谈
- 基于51单片机的八位流水灯(三种形式)
- 下拉推广系统立择火星推荐_【电商干货】拼多多搜索推广 如何选对致命关键词 ?...
- Spark面试术语总结
- 当BeanUtils遇到泛型
- matlab选择语句函数,Matlab基本语句和基本函数
- 新车可以无牌上路7天_无牌农用拖拉机车斗载人上路?交警说了,不可以!
- Linux上安装GCC编译器过程实录
- 视易精通收银服务器自动关机,视易收银系统总汇
- RGB三色灯珠WS2812B/WS2815B
- MATLAB 只是冰山一角!海外资深程序员聊被卡脖子……
- 5G 核心网 Quality of Service Model (QoS Model)
- PMI采购MogaFX经理人指数是什么
- arm64的ioremap_ARMv8 内存管理架构.学习笔记
- Value ‘0000-00-00 00:00:00‘ can not be represented as java.sql.Timestamp
- MySQL数据库多表查询练习题
热门文章
- MFC如何调用Flash控件
- linux进程数和句柄数
- php骑手轨迹_轨迹分析,如何解决车辆定位与道路的偏差?|斑马数智技术内参...
- 谷歌硬件工程师年薪165万,苹果外籍员工222万,在大厂打工“香”吗?
- IDEA插件translation翻译插件“翻译失败:未知错误”
- 成本和性能(Cost/performance)
- 植物基因编辑最新政策解读(2021年7月)
- 2022 学术英语写作(东南大学) 最新Unit 1章节测试答案
- 约瑟夫·寇德卡:成为一个吉普赛人
- 2015-11-17国足平局