版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、. v本科毕业论文本科毕业论文设计、创设计、创作作题题目:目: 环形计数器和扭环形计数器设计环形计数器和扭环形计数器设计学生学生 XXXX:学号:学号:院院系系: 电子信息工程学院电子信息工程学院专业:专业: 通信工程通信工程 入学时间:年月入学时间:年月导师导师 XXXX: 职称职称/ /学位:学位:导师所在单位:导师所在单位:完成时间:完成时间: 20212021 年年5 5 月月环形计数器和扭环形计数器设计环形计数器和扭环形计数器设计摘要摘要现代世界的快速开展,夜生活已成为大多数城市不可缺少的生活,在夜生活中,五彩斑斓,形状不断变化的 LED 灯走入了大家的生活。而各种形状的 LED 灯
2、,随着技术的不断开展,EDA 设计得到不断地开展和应用,LED 灯所表示的图案多种多样,LED 灯中最简单的就数流水灯,而流水灯可以由环形计数器或扭环形计数器控制。本文以环形计数器和扭环形计数器为设计对象,根据其相关规律,设计其运行电路,以及用 verilog 硬件描述语言实现。内容主要涉及计数器的循环与自启动以及最后整个计数器的检测方案和仿真。本设计可以实现计数器的一些简单的控制,并用 modelsim 进展仿真。关键词:环形计数器和扭环形计数器设计;关键词:环形计数器和扭环形计数器设计;VerilogVerilog;modelsimmodelsim。TwistedTwisted ringr
3、ing countercounter ringring countercounter andand designdesignAbstractAbstractThe rapid development of the modern world, night life has bee indispensable in the life most of the city, in the nightlife, colorful, shape changing LED lights went into peoples lives. And various shapes of LED lights, wit
4、h the continuous development of technology, EDA design get continuously development and application of LED lamp represents pattern is varied, the most simple several water . vlight LED lights, lights and running water can be controlled by the ring counter or twisting the ring counter. This article i
5、s based on the circular counter and twisting the ring counter as the design object. According to the counter relevant laws , the counter is to design the operation circuit .this design adopts hierarchical method and verilog hardware description language to realize. This article is mainly related to
6、counter circulation and since the start and final of the test scheme and simulationThis design can realize some simple control counter, and modelsim simulationKeywords:Keywords: ringring countercounter andand twistingtwisting thethe ringring countercounter designdesign ;Verilog;Verilog; modelsim.mod
7、elsim.目目 录录1. 1.引言引言 1 12. 2.设计任务和要求设计任务和要求 1 12.12.1 设计任务设计任务 2 22.22.2 设计要求设计要求 3 33 3设计原理设计原理 3 33.13.1 环形计数器定义环形计数器定义 3 33.23.2 环形计数器工作原理环形计数器工作原理 3 33.33.3 扭环形计数器定义扭环形计数器定义 3 33.43.4 扭环形计数器工作原理扭环形计数器工作原理 3 34. 4.环形计数器的设计环形计数器的设计 3 35. 5.扭环形计数器设计扭环形计数器设计 6 66. 6.环形计数器的自启动设计环形计数器的自启动设计 9 97. 7.扭环
8、形计数器的自启动设计:扭环形计数器的自启动设计:11118. 8.完毕语完毕语 1313主要参考文献主要参考文献 1515. v致谢致谢 1616. v1 1 引言引言随着社会的不停开展,越来越多的 LED 灯用于城市的装饰,让城市在夜晚也可以变得炫彩夺目,熠熠生辉。而 LED 灯的简单控制,使其产生各种绚丽的拼图,分而视之可以用一些简单的设计控制细小的模块而成。其中最简单的可以用环形计数器和扭环形计数器的原理和电路来控制,产生一种流水灯的效果。在此根底上,本文对环形计数器和扭环形计数器的的实现做了简单的设计,对两种计数器的原理,自启动,电路图进展简单的分析和设计,并用 Verilog 硬件描
9、述语言进展编写以及 Altera 公司的 modelsim 仿真工具进展仿真。硬件描述语言的开展 硬件描述语言 HDL 是一种用形式化方法描述数字电路和系统的语言。利用这种语言,数字电路系统的设计可以从上层到下层从抽象到具体逐层描述自己的设计思想,用一系列分层次的模块来表示极其复杂的数字系统。然后,利用电子设计自动化EDA工具,逐层进展仿真验证,再把其中需要变为实际电路的模块组合,经过自动综合工具转换到门级电路网表。接下去,再用专用集成电路 ASIC 或现场可编程门阵列 FPGA 自动布局布线工具,把网表转换为要实现的具体电路布线构造。 目前,这种高层次high-level-design的方法
10、已被广泛采用。据统计,目前在美国硅谷约有 90%以上的 ASIC 和 FPGA 采用硬件描述语言进展设计。 硬件描述语言 HDL 的开展至今已有 20 多年的历史,并成功地应用于设计的各个阶段:建模、仿真、验证和综合等。到 20 世纪 80 年代,已出现了上百种硬件描述语言,对设计自动化曾起到了极大的促进和推动作用。但是,这些语言一般各自面向特定的设计领域和层次,而且众多的语言使用户无所适从。因此,急需一种面向设计的多领域、多层次并得到普遍认同的标准硬件描述语言。20 世纪 80 年代后期,VHDL 和 VerilogHDL 语言适应了这种趋势的要求,先后成为 IEEE 标准。 目前,硬件描述
11、语言可谓是百花齐放,有 VHDL,Verilog 等等。VHDL 虽然是1995 年以前唯一制定为标准的硬件描述语言,但它却比拟麻烦,而且其综合库至今也没有标准化,不具有晶体管开关级的描述能力和模拟设计的描述能力。目前的看法是,对于大型的系统级数字电路设计,VHDL 是较为适宜的。 实质上,在底层的 VHDL 设计环境是由 VerilogHDL 描述的器件库支持的,因此,它们之间的互操作性十分重要。目前,Verilog 和 VHDL 的两个国际组织OVI、VI 正在筹划这一工作,准备成立专门的工作组来协调 VHDL 和 VerilogHDL语言的互操作性。OVI 也支持不需要翻译,由 VHDL
12、 到 Verilog 的自由表达。 VerilogHDL 是在 1983 年,由 GDA(Gate Way Design Automation)公司的. vPhilmoorby 首创的。Philmoorby 后来成为 Verilog-XL 的主要设计者和 Cadence 公司的第一合伙人。在 19841985 年,Philmoorby 设计出来第一个名为 Verilog-XL 的仿真器;1986 年,他对 VerilogHDL 的开展又作出了另一个巨大的奉献:提出了用于快速门级仿真的 XL 算法。 随着 Verilog-XL 算法的成功,VerilogHDL 语言得到迅速开展。1989 年,C
13、adence 公司收购了 GDA 公司,VerilogHDL 语言成为 Cadence 公司的私有财产。1990 年,Cadence 公司决定公开 VerilogHDL 语言,于是成立了 OVIOpen Verilog Internation组织,负责促进 VerilogHDL 语言的开展。基于 VerilogHDL 的优越性,IEEE 与 1995 年制订了 VerilogHDL 的 IEEE 标准,及 VerilogHDL1364-1995;2001年发布了 VerilogHDL1364-2001 标准。这个标准中,参加了 VerilogHDL-A 标准,是 Verilog 有了模拟设计描
14、述的能力。 随着电子产业不断开展与推进,硬件描述语言也会不断的开展以适合现实情况的要求,VerilogHDL 可能开展成为更高等级的语言,或者被跟高级的语言所替代和兼容。Modelsim 仿真工具Modelsim 是 Model Technology(Mentor Graphics 的子公司)的 DHL 硬件描述语言的仿真软件,该软件可以用来实现对设计的 VHDL、Verilog 或者是两种语言混合的程序进展仿真,同时也支持 IEEE 常见的各种硬件描述语言标准。无论从有毫的使用界面和调试环境来看,还是从仿真速度和仿真效果来看,Modelsim 都可以算得上是业界最优秀的 DHL 语言仿真软件
15、。他是唯一的单核内支持 VHDL 和 Verilog 混合仿真的仿真器,是做 FPJA/ASIC 设计的 RTL 级和门级电路仿真的首选;他采用直接优化的编译技术,TCL/TK 技术和单一内核仿真技术,具有仿真速度快,编译代码与仿真平台无关,便于 IP 核保护和加快程序错位定位等优点。Modelsim 最大的特点是其强大的调试功能。先进的数据流窗口,可以迅速追踪到产生错位或者不确定状态的原因。性能分析工具帮助分析性能瓶颈,加速仿真。代码覆盖率检测确保测试的完备。多种模式的波形比拟功能。先进的Signal Spy 功能,可以方便地访问 VHDL、Verilog 或两者混合设计中的底层信号。支持加
16、密 IP。目前常见的 Modelsim 分为几个不同的版本:Modelsim SE、Modelsim PE、Modelsim LE 和 Modelsim OEM。其中 Modelsim SE 是主要版本。2 2 设计任务和要求设计任务和要求2.1 设计任务设计一个环形计数器和扭环形计数器. v2.2 设计要求熟悉数字电路,语言编辑以及相应的仿真软件仿真3 3 设计原理设计原理3.1 环形计数器定义环形计数器是由移位存放器加上一定的反应电路构成的,它是由一个移位存放器和一个组合反应逻辑电路闭环构成,反应电路的输出接向移位存放器的串行输入端,反应电路的输入端根据移位存放器类型的不同,可接向移位存放
17、器的串行输入端或某些触发器的输出端。3.2 环形计数器工作原理四位环形计数器,它是把移位存放器最低一位的串行输出作为高一级移位存放器的串行输入。环形计数器常用来实现脉冲顺序分配的功能分配器假设存放器的初始状态为 1000,那么在移位脉冲的作用下其状态变为 0100 到 0010到 0001 最后又返回到 1000 的顺序转换,并且不断循环往复的执行这一过程。由上述可知,该计数器的计数长度为 N=n。3.3 扭环形计数器定义扭环形计数器的定义同环形计数器的定义根本类似,只是在反应电路上略有差异。扭环形计数器的反应在高位端进过一个反向后再输出移位存放器的最低位串行输入端。3.4 扭环形计数器工作原
18、理四位扭环形计数器,它是把移位存放器最低一位的串行输出作为高一级移位存放器的串行输入,最后的反应电路却是将最高位串行输出加个反向器后输入到最低位串行输入端。假设存放器的初始状态为 0000,那么在一位脉冲的作用下其状态变为 1000 到 11000011 到 0001 最后又返回到 0000 的转换,并且不断循环这一过程。由上述可知,该计数器的计数长度为 N=2n。4. 4.环形计数器的设计环形计数器的设计设计一个四位环形计数器步骤如下:对于设计一个四位环形计数器,共有16 个状态,状态转移表如下表所示:Q Q Q Q Q Q Q Qn4n3n2n1Q Q Q Q Q Q Q Q14n13n1
19、2n11n0 0 0 0 0 0 1 10 0 0 0 1 1 0 00 0 0 0 1 1 0 00 0 1 1 0 0 0 00 0 1 1 0 0 0 01 1 0 0 0 0 0 01 1 0 0 0 0 0 00 0 0 0 0 0 1 1. v1 1 0 0 0 0 1 10 0 0 0 1 1 1 10 0 0 0 1 1 1 10 0 1 1 1 1 0 00 0 1 1 1 1 0 01 1 1 1 0 0 0 01 1 1 1 0 0 0 01 1 0 0 0 0 1 11 1 1 1 1 1 0 01 1 1 1 0 0 1 11 1 1 1 0 0 1 11 1 0 0
20、 1 1 1 11 1 0 0 1 1 1 10 0 1 1 1 1 1 10 0 1 1 1 1 1 11 1 1 1 1 1 0 00 0 1 1 0 0 1 11 1 0 0 1 1 0 01 1 0 0 1 1 0 00 0 1 1 0 0 1 10 0 0 0 0 0 0 00 0 0 0 0 0 0 01 1 1 1 1 1 1 11 1 1 1 1 1 1 1其中只有 4 个是有效状态。设其有效状态图如图 4.1 所示: 0001001010000100Q Q Q Q4321 图 4.1设其无效状态如图 4.2 所示:图 4.2可得如下表达式:Q= Q Q=Q Q= Q Q= Q
21、11nn412nn113nn214nn3001101111001011010110101111110100000111011001101. v驱动方程: D = Q D = Q D = Q D = Q1n42n13n24n3用 D 触发器构成的电路图如下列图 4.3 所示:(用 CP 代替图中 VCC)图 4.3用 Verilog 语言描述如下:module circle_counter (rst,clk,t);parameter T_SIZE = 4;input rst;input clk;output T_SIZE - 1 : 0t; reg T_SIZE - 1 : 0t;always(
22、posedge clk) if(!rst) t = 4b0001; /初始值else t = tT_SIZE 2 : 0,tT_SIZE - 1; /注意是循环左移位,而非简单的移位 endmodule输入鼓励如下:timescale 1ns/1nsmodule circle_counter_tb;parameter T_SIZE = 4;reg rst,clk;wire T_SIZE - 1 : 0t;parameter DELY = 100; circle_counter mycounter(.rst(rst),.clk(clk),.t(t); /例化,对源文件代码调用always *(D
23、ELY/2) clk = clk;/生成时钟initial begin clk = 0; rst = 0; *(2*DELY) rst = 1; *(10*DELY) rst = 0; *(3*DELY) $finish;. v end initial /检测不同时间 t 和 rst 的值$monitor ($time,t = %d, rst = %d,t,rst); Endmodule显示仿真结果如下列图 4.4 所示:图 4.4由上述仿真可知:该循环只能在 0001,0010,0100,1000 内循环才是正确有效地,当跳出这个循环时,该程序不能保持在有效地循环内循环。而其他的状态均成无效
24、状态而被浪费,而且一旦出错将很难回到有效状态继续循环。5. 5.扭环形计数器设计扭环形计数器设计设计一个四位扭环形计数器步骤如下:对于设计一个四位扭环形计数器,共有 16 个状态。状态转移表如下表所示:Q QQ QQ Q Q Qn4n3n2n1Q Q Q QQ Q Q Q14n13n12n11n0 0 0 0 0 0 0 00 0 0 0 0 0 1 10 0 0 0 0 0 1 10 0 0 0 1 1 1 10 0 0 0 1 1 1 10 0 1 1 1 1 1 10 0 1 1 1 1 1 11 1 1 1 1 1 1 11 1 1 1 1 1 1 11 1 1 1 1 1 0 01
25、1 1 1 1 1 0 01 1 1 1 0 0 0 01 1 1 1 0 0 0 01 1 0 0 0 0 0 01 1 0 0 0 0 0 00 0 0 0 0 0 0 00 0 1 1 0 0 1 11 1 0 0 1 1 1 11 1 0 0 1 1 1 10 0 1 1 1 1 0 00 0 1 1 1 1 0 01 1 1 1 0 0 1 11 1 1 1 0 0 1 11 1 0 0 1 1 0 01 1 0 0 1 1 0 00 0 1 1 0 0 0 00 0 1 1 0 0 0 01 1 0 0 0 0 1 11 1 0 0 0 0 1 10 0 0 0 1 1 0 00
26、0 0 0 1 1 0 00 0 1 1 0 0 1 1得其状态图如下列图 5.1 所示:有效状态左图 ,无效状态右图 ,该计数器的计数状态被等分成两半,每个循环的模都是 8,即 2N。因此,只需要规定其中一个为有效循环,那么另一个就是无效循环。通常选择左边这个循环作为工作循环,因为在每次状态改变时,系统内只有一个触发器状态是改变的,这就防止了时序电路中得冒险现象。. v0000100000110001101101010100011111001111111011011001001010100110Q Q Q Q1234图 5.1表达式为:Q= Q= Q Q= Q Q= Q 。11nnQ412n
27、n113nn214nn3驱动方程:D = D = Q D = Q D = Q1nQ42n13n24n3用 D 触发器构成的电路图如下列图 5.2 所示:(用 CP 代替图中 VCC) 图 5.2用 Verilog 语言描述如下:module john_counter(rst,clk ,t);input rst,clk;parameter T_SIZE = 4;output T_SIZE - 1 : 0t;reg T_SIZE - 1 : 0t;always(posedge clk) if(!rst) t = 4b0000; /初始值 else t = tT_SIZE - 2 : 0,tT_SI
28、ZE - 1; /. v注意是循环移位,而非简单的移位endmodule鼓励代码:timescale 1ns/1nsmodule john_counter_tb; parameter T_SIZE = 4;reg rst,clk;wire T_SIZE - 1 : 0t;parameter DELY = 100;john_counter mycounter(.rst(rst),.clk(clk),.t(t);always *(DELY/2) clk = clk;initialbeginclk=0;rst=0; *(2*DELY) rst = 1; *(10*DELY) rst = 0; *(3
29、*DELY) $finish; endinitial$monitor ($time,t = %d, rst = %d,t,rst); Endmodule显示仿真结果如下列图 5.3 所示:图 5.36. 6.环形计数器的自启动设计环形计数器的自启动设计: 以上方法设计出的环形计数器其 00011000 为有效循环,其余均为无效循环。一旦计数器进入无效循环,将保持无效循环计数,从而不能够转入有效循环。因此,该计数器不具备自启动功能。为了确保环形计数器工作在有效循环内,可以对上述电路进展改良,使之具有自启动功能。将 Q , Q ,Q的输出经由或非门反应入 D 端,即可实现n1n2n31自启动功能。
30、电路图如下列图 6.1 所示:(用 CP 代替图中 VCC) 图 6.1. v状态方程Q= Q= Q11nnnQQQ32n112nn1Q= Q Q= Q13nn214nn3状态转移图如下列图 6.2 所示: 图 6.2用 Verilog 语言描述如下:module john_counter(rst,clk,t,D0,D1,D2,D3,LD);input rst,clk,D0,D1,D2,D3,LD;wire 3 : 0 DIN;output 3 : 0t;reg 3 : 0t;assign DIN3 : 0 = D3,D2,D1,D0; /add DIN to explaint in usel
31、ess statealways(posedge clk) if(!rst) t = 4b0000; else if(!LD) /LD help to control the useless data into the circle t = DIN; else t = t2 : 0,(t2|t1|t0);endmodule鼓励程序:timescale 1ns/1nsmodule john_counter_tb; reg rst,clk,D3,D2,D1,D0,LD; wire 3 : 0t;parameter DELY = 100;john_countermy_counter(.rst(rst)
32、,.clk(clk),.t(t),.D3(D3),.D2(D2),.D1(D1),.D0(D0),.LD(LD);0000100000110001101101010100011111001111111011011001001010100110Q Q Q Q4321. valways *(DELY/2) clk = clk; initial begin clk = 0; rst = 0; LD = 1; D3,D2,D1,D0 = 4b0000; *DELY rst = 1;LD = 1; *(8*DELY) LD = 0;D3,D2,D1,D0 = 4b0110; /chage DIN to
33、examin useless state can enter into the useful state *(3*DELY) LD = 1; *(10*DELY) $finish; endendmodule显示仿真结果如下列图 6.3 所示: 图 6.3由上述分析可知,由触发器构成环形计数器时,有大量的电路状态被当作无效的状态而被舍弃掉。修改反应输入端,不仅能够实现电路的自启动功能,而且也能提高电路状态的使用效率。7. 7.扭环形计数器的自启动设计扭环形计数器的自启动设计: 在上述设计中,扭环形计数器也是不能自启动的,对反应电路进展适当的修改,就可以得到可自启动的扭环形计数器,能使计数器在任何
34、状态下都能进入有效循环中进展计数。修改后电路图如下列图 7.1 所示:(用 CP 代替图中 VCC)图 7.1状态转移图如下列图 7.2 所示: 图 7.2 用 Verilog 语言描述如下:module john_counter(rst,clk,t,D0,D1,D2,D3,LD);input rst,clk,D0,D1,D2,D3,LD;wire 3 : 0 DIN;output 3 : 0t;reg 3 : 0t;assign DIN3 : 0 = D3,D2,D1,D0; /add DIN to explaint in useless state0000100000110001101101010100011111001111111011011001001010100110Q Q Q Q4321. valways
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Z世代审美变迁驱动刻花玻璃杯产品矩阵重构策略研究
- 2026年湖南财经工业职业技术学院高职单招笔试物理试题库含答案解析2套试卷
- 2026年湖南安全技术职业学院高职单招笔试语文试题库含答案解析2套试卷
- 2026年湖南九嶷职业技术学院高职单招笔试化学试题库含答案解析2套试卷
- 2026年湄洲湾职业技术学院高职单招笔试化学试题库含答案解析2套试卷
- 2026年海南科技职业学院高职单招笔试英语试题库含答案解析3套试卷
- 2026年浙江经济职业技术学院高职单招笔试职业适应性测验试题库含答案解析3套试卷
- 2026年浙江农业商贸职业学院高职单招笔试英语试题库含答案解析3套试卷
- 2026年泰山职业技术学院高职单招笔试职业适应性测验试题库含答案解析2套试卷
- 2026年河南住院医师-河南住院医师放射肿瘤科历年参考题库含答案解析
- 2026秋新版人教PEP英语六年级上册教学课件:第一单元Unit 1第1课时 A Let's talk Interview and report
- 第7课 神奇的世界 第1课时 课件(内嵌视频)2026-2027学年道德与法治四年级上册统编版
- 2025年70岁老年人三力测试能力考试题库附答案
- 2025国家能源集团科学技术研究总院社会招聘30人笔试历年难易错考点试卷带答案解析
- 2026年中考道德与法治(河北卷)真题详细解读及评析
- 2026年特种作业操作证考试题库及答案
- 新闻标题的翻译与技巧课件
- 人体解剖学肌肉运动解剖培训课件
- 见证取样记录表
- 教师节师德师风主题演讲PPT
- 心理咨询的理论与实务江光荣演示文稿
评论
0/150
提交评论