习题8 #第8章 Verilog有限状态机设计-3 #Verilog #Quartus #modelsim
3. 编写一个8路彩灯控制程序,要求彩灯有以下3种演示花型。
(1) 8路彩灯同时亮灭;
(2) 从左至右逐个亮(每次只有1路亮);
(3) 8路彩灯每次4路灯亮,4路灯灭,且亮灭相间,交替亮灭。
在演示过程中,只有当一种花型演示完毕才能转向其他演示花型。
3.1 设计思路:8个灯,3种花型,顺序展示。穷举法。8个灯的所有花型状态,共计有:亮灭2种,
逐个亮8种,4亮4灭交替2种。即:8'b0000_0000,
8'b1111_1111,
8'b1000_0000,
... ...
共12种状态。
3.2 8路彩灯,3种花型,控制电路源码:
1 // 8-bit light and 3 shows
2 //2020-10-13
3 // by YongFengXie
4 module ex8_3(clk,rst_n,lamb);
5 input clk;
6 input rst_n;
7 output reg [7:0] lamb;
8
9 reg [3:0] state;
10
11 parameter s0=4'b0000,
12 s1=4'b0001,
13 s2=4'b0011,
14 s3=4'b0010,
15 s4=4'b0110,
16 s5=4'b0111,
17 s6=4'b0101,
18 s7=4'b0100,
19 s8=4'b1100,
20 s9=4'b1101,
21 s10=4'b1111,
22 s11=4'b1110;
23
24 always @(posedge clk or negedge rst_n)
25 begin
26 if(!rst_n)
27 begin
28 state<=s0;
29 lamb<=8'b0000_0000; // all off
30 end
31 else
32 begin
33 case(state)
34 s0:begin // 1 mode
35 state<=s1;
36 lamb<=8'b0000_0000; // all off
37 end
38 s1:begin
39 state<=s2;
40 lamb<=8'b1111_1111; // all on
41 end
42 s2:begin // 2 mode
43 state<=s3;
44 lamb<=8'b1000_0000; // 1st on(from left to right)
45 end
46 s3:begin
47 state<=s4;
48 lamb<=8'b0100_0000; // 2nd on
49 end
50 s4:begin
51 state<=s5;
52 lamb<=8'b0010_0000; // 3rd on(from left to right)
53 end
54 s5:begin
55 state<=s6;
56 lamb<=8'b0001_0000; // 4th on
57 end
58 s6:begin
59 state<=s7;
60 lamb<=8'b0000_1000; // 5th on
61 end
62 s7:begin
63 state<=s8;
64 lamb<=8'b0000_0100; // 6th on
65 end
66 s8:begin
67 state<=s9;
68 lamb<=8'b0000_0010; // 7th on
69 end
70 s9:begin
71 state<=s10;
72 lamb<=8'b0000_0001; // 8th on
73 end
74 s10:begin // 3 mode
75 state<=s11;
76 lamb<=8'b0101_0101; // 4 on 4 off
77 end
78 s11:begin
79 state<=s0;
80 lamb<=8'b1010_1010; // 4 on 4 off
81 end
82 default:begin
83 state<=s0;
84 lamb<=8'b0000_0000;
85 end
86 endcase
87 end
88 end
89
90 endmodule
3.3 8路彩灯3种花型测试代码:
1 //ex8_3 testbench
2 //2020-10-13
3 // by YongFengXie
4 `timescale 1ns/1ns
5 module ex8_3tb;
6 reg clk;
7 reg rst_n;
8 wire [7:0] lamb;
9
10 initial begin
11 clk=1'b0;
12 rst_n=1'b0;
13 #40 rst_n=1'b1;
14 #200 $stop;
15 end
16
17 always #5 clk=~clk;
18
19 ex8_3 ub(clk,rst_n,lamb);
20
21 endmodule
3.4 8路彩灯3种花型控制电路的仿真结果如图ex8_3_1所示:
图ex8_3_1 8路彩灯控制电路仿真结果
3.5 8路彩灯控制电路状态转化图如图ex8_3_2所示:
图ex8_3_2 8路彩灯控制电路状态转换图
3.6 总结:8路彩灯花型显示的控制电路采用了穷举法来规划12种状态。其中3种演示模式自动按顺序循环演示,可添加模式控制端口,手动切换不同模式。这里投机,省略。其实就是if else。另外,模式2,应该可以用右移来实验。
习题8 #第8章 Verilog有限状态机设计-3 #Verilog #Quartus #modelsim的更多相关文章
- [Python学习笔记][第五章Python函数设计与使用]
2016/1/29学习内容 第四章 Python函数设计与使用 之前的几页忘记保存了 很伤心 变量作用域 -一个变量已在函数外定义,如果在函数内需要修改这个变量的值,并将这个赋值结果反映到函数之外,可 ...
- 《.NET 设计规范》第 5 章:成员设计
<.NET 设计规范>第 5 章:成员设计 5.1 成员设计的通用规范 要尽量用描述性的参数名来说明在较短的重载中使用的默认值. 避免在重载中随意地改变参数的名字.如果两个重载中的某个参数 ...
- MySQL性能调优与架构设计——第 18 章 高可用设计之 MySQL 监控
第 18 章 高可用设计之 MySQL 监控 前言: 一个经过高可用可扩展设计的 MySQL 数据库集群,如果没有一个足够精细足够强大的监控系统,同样可能会让之前在高可用设计方面所做的努力功亏一篑.一 ...
- MySQL性能调优与架构设计——第 17 章 高可用设计之思路及方案
第 17 章 高可用设计之思路及方案 前言: 数据库系统是一个应用系统的核心部分,要想系统整体可用性得到保证,数据库系统就不能出现任何问题.对于一个企业级的系统来说,数据库系统的可用性尤为重要.数据库 ...
- MySQL性能调优与架构设计——第12章 可扩展设计的基本原则
第12章 可扩展设计的基本原则 前言: 随着信息量的飞速增加,硬件设备的发展已经慢慢的无法跟上应用系统对处理能力的要求了.此时,我们如何来解决系统对性能的要求?只有一个办法,那就是通过改造系统的架构体 ...
- 《C++Primer》第五版习题答案--第三章【学习笔记】
[C++Primer]第五版[学习笔记]习题解答第三章 ps:答案是个人在学习过程中书写,可能存在错漏之处,仅作参考. 作者:cosefy Date: 2020/1/10 第三章:字符串,向量和数组 ...
- 《C++Primer》第五版习题解答--第四章【学习笔记】
[C++Primer]第五版习题解答--第四章[学习笔记] ps:答案是个人在学习过程中书写,可能存在错漏之处,仅作参考. 作者:cosefy Date: 2020/1/11 第四章:表达式 练习4. ...
- 《C++Primer》第五版习题答案--第五章【学习笔记】
<C++Primer>第五版习题答案--第五章[学习笔记] ps:答案是个人在学习过程中书写,可能存在错漏之处,仅作参考. 作者:cosefy Date: 2020/1/15 第五章:语句 ...
- 《C++Primer》第五版习题答案--第六章【学习笔记】
<C++Primer>第五版习题答案--第六章[学习笔记] ps:答案是个人在学习过程中书写,可能存在错漏之处,仅作参考. 作者:cosefy Date: 2020/1/16 第六章:函数 ...
- FPGA Prototyping By Verilog Examples第五章 状态机FSM设计
上升沿检测电路之Moore型FSM // Listing 5.3module edge_detect_moore ( input wire clk, reset, input wire level, ...
随机推荐
- MySQL 汉字字段 拼音排序
原数据 排序后 SELECT c1 FROM test ORDER BY CONVERT ( c1 USING gbk )
- KingbaseES 实现 MYSQL 的 delete limit 写法
使用MySQL的用户可能会比较熟悉这样的用法,更新或删除时可以指定限制更新或删除多少条记录. update tl set xxx=xxx where xxx limit 10; delete from ...
- 12 CSS 的float属性
12 CSS 的float属性 流动布局 流动模型(Flow),即文档流,浏览器打开HTML网页时,从上往下,从左往右,逐一加载. 在正常情况下,HTML元素都会根据文档流来分布网页内容的. 文档流有 ...
- #dp,二项式反演,容斥#CF285E Positions in Permutations
题目 问有多少个长度为 \(n\) 的排列 \(P\) 满足 \(|P_i-i|=1\) 的 \(i\) 的个数恰好为 \(k\) 个 分析 设 \(dp_{i,j,k}\) 表示前 \(i\) 个数 ...
- #分块,可撤销并查集#洛谷 3247 [HNOI2016]最小公倍数
题目 分析 考虑将询问和边权按 \(a\) 分别从小到大排序,考虑最暴力的做法就是将不超过 \(a'\) 且 不超过 \(b'\) 的边抽取出来 放进并查集判断 \(a,b\) 的最大值都能达到 \( ...
- #离线,倒序,线段树#Comet OJ - Contest #15 E 栈的数据结构题
题目 初始时有 \(N\) 个空的栈,编号为 \(1 \sim N\),有以下三种类型的指令: push \(L\) \(R\) \(v\):把编号 \(L \sim R\) 这连续 \(R-L+1\ ...
- SkipList和java中ConcurrentSkipListMap的实现
目录 简介 SkipList ConcurrentSkipListMap SkipList的实现 concurrent的实现 总结 SkipList和java中ConcurrentSkipListMa ...
- [一本通1681]统计方案 题解(Meet in mid与逆元的结合)
题目描述 小\(B\)写了一个程序,随机生成了\(n\)个正整数,分别是\(a[1]-a[n]\),他取出了其中一些数,并把它们乘起来之后模\(p\),得到了余数\(c\).但是没过多久,小\(B\) ...
- 基于pdfbox实现的pdf添加文字水印工具
简述 最近有个需求需要给pdf加文字水印,于是开始搜索大法,但是发现网络上的代码基本都是将字体文件直接放在jar包里面.个人强迫症发作(手动狗头),想要像poi一样直接加载系统字体,于是研究了一下午p ...
- HDC2021技术分论坛:吐司盒子?芝士码?HarmonyOS音视频测试来啦
作者:lifusheng,用户体验技术专家 当下,音视频无处不在,很多设备和应用都涉及音视频.因而,对于HarmonyOS开发者们来说,如何对鸿蒙生态产品进行音视频测试是一个非常重要的问题. 华为Ha ...