环形计数器和扭环形计数器设计

环形计数器和扭环形计数器设计
环形计数器和扭环形计数器设计

本科毕业论文(设计、创

作)

题目:环形计数器和扭环形计数器设计

学生姓名:学号:

院(系):电子信息工程学院专业:通信工程

入学时间:年月

导师姓名:职称/学位:

导师所在单位:

完成时间:2014年5月

环形计数器和扭环形计数器设计

摘要

现代世界的快速发展,夜生活已成为大多数城市不可缺少的生活,在夜生活中,五彩斑斓,形状不断变化的LED灯走入了大家的生活。而各种形状的LED灯,随着技术的不断发展,EDA设计得到不断地发展和应用,LED灯所表示的图案多种多样,LED灯中最简单的就数流水灯,而流水灯可以由环形计数器或扭环形计数器控制。本文以环形计数器和扭环形计数器为设计对象,根据其相关规律,设计其运行电路,以及用verilog硬件描述语言实现。内容主要涉及计数器的循环与自启动以及最后整个计数器的检测方案和仿真。本设计可以实现计数器的一些简单的控制,并用modelsim进行仿真。

关键词:环形计数器和扭环形计数器设计;Verilog;modelsim。

Twisted ring counter ring counter and design

Abstract

The rapid development of the modern world, night life has become indispensable in the life most of the city, in the nightlife, colorful, shape changing LED lights went into people's lives. And various shapes of LED lights, with the continuous development of technology, EDA design get continuously development and application of LED lamp represents pattern is varied, the most simple several water light LED lights, lights and running water can be controlled by the ring counter or twisting the ring counter. This article is 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 counter circulation and since the start and final of the test scheme and simulationThis design can realize some simple control counter, and modelsim simulation

Keywords: ring counter and twisting the ring counter design ;Verilog; modelsim.

目录

1.引言 (1)

2.设计任务和要求 (1)

2.1设计任务 (2)

2.2设计要求 (3)

3.设计原理 (3)

3.1环形计数器定义 (3)

3.2环形计数器工作原理 (3)

3.3扭环形计数器定义 (3)

3.4扭环形计数器工作原理 (3)

4.环形计数器的设计 (3)

5.扭环形计数器设计 (6)

6.环形计数器的自启动设计 (9)

7.扭环形计数器的自启动设计: (11)

8.结束语 (13)

主要参考文献 (15)

致谢 (16)

1 引言

随着社会的不停发展,越来越多的LED灯用于城市的装饰,让城市在夜晚也可以变得炫彩夺目,熠熠生辉。而LED灯的简单控制,使其产生各种绚丽的拼图,分而视之可以用一些简单的设计控制细小的模块而成。其中最简单的可以用环形计数器和扭环形计数器的原理和电路来控制,产生一种流水灯的效果。在此基础上,本文对环形计数器和扭环形计数器的的实现做了简单的设计,对两种计数器的原理,自启动,电路图进行简单的分析和设计,并用Verilog硬件描述语言进行编写以及Altera公司的modelsim仿真工具进行仿真。

硬件描述语言的发展

硬件描述语言HDL是一种用形式化方法描述数字电路和系统的语言。利用这种语言,数字电路系统的设计可以从上层到下层(从抽象到具体)逐层描述自己的设计思想,用一系列分层次的模块来表示极其复杂的数字系统。然后,利用电子设计自动化(EDA)工具,逐层进行仿真验证,再把其中需要变为实际电路的模块组合,经过自动综合工具转换到门级电路网表。接下去,再用专用集成电路ASIC或现场可编程门阵列FPGA自动布局布线工具,把网表转换为要实现的具体电路布线结构。

目前,这种高层次(high-level-design)的方法已被广泛采用。据统计,目前在美国硅谷约有90%以上的ASIC和FPGA采用硬件描述语言进行设计。

硬件描述语言HDL的发展至今已有20多年的历史,并成功地应用于设计的各个阶段:建模、仿真、验证和综合等。到20世纪80年代,已出现了上百种硬件描述语言,对设计自动化曾起到了极大的促进和推动作用。但是,这些语言一般各自面向特定的设计领域和层次,而且众多的语言使用户无所适从。因此,急需一种面向设计的多领域、多层次并得到普遍认同的标准硬件描述语言。20世纪80年代后期,VHDL和VerilogHDL语言适应了这种趋势的要求,先后成为IEEE 标准。

目前,硬件描述语言可谓是百花齐放,有VHDL,Verilog等等。VHDL虽然是1995年以前唯一制定为标准的硬件描述语言,但它却比较麻烦,而且其综合库至今也没有标准化,不具有晶体管开关级的描述能力和模拟设计的描述能力。目前的看法是,对于大型的系统级数字电路设计,VHDL是较为合适的。

实质上,在底层的VHDL设计环境是由VerilogHDL描述的器件库支持的,因此,它们之间的互操作性十分重要。目前,Verilog和VHDL的两个国际组织OVI、VI正在筹划这一工作,准备成立专门的工作组来协调VHDL和VerilogHDL语言的互操作性。OVI也支持不需要翻译,由VHDL到Verilog的自由表达。

VerilogHDL是在1983年,由GDA(Gate Way Design Automation)公司的

Philmoorby首创的。Philmoorby后来成为Verilog-XL的主要设计者和Cadence 公司的第一合伙人。在1984~1985年,Philmoorby设计出来第一个名为Verilog-XL的仿真器;1986年,他对VerilogHDL的发展又作出了另一个巨大的贡献:提出了用于快速门级仿真的XL算法。

随着Verilog-XL算法的成功,VerilogHDL语言得到迅速发展。1989年,Cadence公司收购了GDA公司,VerilogHDL语言成为Cadence公司的私有财产。1990年,Cadence公司决定公开VerilogHDL语言,于是成立了OVI(Open Verilog Internation)组织,负责促进VerilogHDL语言的发展。基于VerilogHDL的优越性,IEEE与1995年制订了VerilogHDL的IEEE标准,及VerilogHDL1364-1995;2001年发布了VerilogHDL1364-2001标准。这个标准中,加入了VerilogHDL-A 标准,是Verilog有了模拟设计描述的能力。

随着电子产业不断发展与推进,硬件描述语言也会不断的发展以适合现实情况的要求,VerilogHDL可能发展成为更高等级的语言,或者被跟高级的语言所替代和兼容。

Modelsim仿真工具

Modelsim是Model Technology(Mentor Graphics的子公司)的DHL硬件描述语言的仿真软件,该软件可以用来实现对设计的VHDL、Verilog或者是两种语言混合的程序进行仿真,同时也支持IEEE常见的各种硬件描述语言标准。

无论从有毫的使用界面和调试环境来看,还是从仿真速度和仿真效果来看,Modelsim都可以算得上是业界最优秀的DHL语言仿真软件。他是唯一的单核内支持VHDL和Verilog混合仿真的仿真器,是做FPJA/ASIC设计的RTL级和门级电路仿真的首选;他采用直接优化的编译技术,TCL/TK技术和单一内核仿真技术,具有仿真速度快,编译代码与仿真平台无关,便于IP核保护和加快程序错位定位等优点。

Modelsim最大的特点是其强大的调试功能。先进的数据流窗口,可以迅速追踪到产生错位或者不确定状态的原因。性能分析工具帮助分析性能瓶颈,加速仿真。代码覆盖率检测确保测试的完备。多种模式的波形比较功能。先进的Signal Spy功能,可以方便地访问VHDL、Verilog或两者混合设计中的底层信号。支持加密IP。

目前常见的Modelsim分为几个不同的版本:Modelsim SE、Modelsim PE、Modelsim LE和Modelsim OEM。其中Modelsim SE是主要版本。

2 设计任务和要求

2.1设计任务

设计一个环形计数器和扭环形计数器

2.2设计要求

熟悉数字电路,语言编辑以及相应的仿真软件仿真

3 设计原理

3.1环形计数器定义

环形计数器是由移位寄存器加上一定的反馈电路构成的,它是由一个移位寄存器和一个组合反馈逻辑电路闭环构成,反馈电路的输出接向移位寄存器的串行输入端,反馈电路的输入端根据移位寄存器类型的不同,可接向移位寄存器的串行输入端或某些触发器的输出端。

3.2环形计数器工作原理

四位环形计数器,它是把移位寄存器最低一位的串行输出作为高一级移位寄存器的串行输入。环形计数器常用来实现脉冲顺序分配的功能(分配器)假设寄存器的初始状态为1000,那么在移位脉冲的作用下其状态变为0100到0010到0001最后又返回到1000的顺序转换,并且不断循环往复的执行这一过程。由上述可知,该计数器的计数长度为N=n。

3.3扭环形计数器定义

扭环形计数器的定义同环形计数器的定义基本类似,只是在反馈电路上略有差别。扭环形计数器的反馈在高位端进过一个反向后再输出移位寄存器的最低位串行输入端。

3.4扭环形计数器工作原理

四位扭环形计数器,它是把移位寄存器最低一位的串行输出作为高一级移位寄存器的串行输入,最后的反馈电路却是将最高位串行输出加个反向器后输入到最低位串行输入端。假设寄存器的初始状态为0000,那么在一位脉冲的作用下其状态变为1000到1100……0011到0001最后又返回到0000的转换,并且不断循环这一过程。由上述可知,该计数器的计数长度为N=2n。

4.环形计数器的设计

设计一个四位环形计数器步骤如下:对于设计一个四位环形计数器,共有16个状态,

其中只有4个是有效状态。设其有效状态图如图4.1所示:

图4.1

设其无效状态如图4.2所示:

图4.2

可得如下表达式:

Q1

1

+

n= Q n

4

Q1

2

+

n=Q n

1

Q1

3

+

n= Q n

2

Q1

4

+

n= Q n

3

驱动方程:

D

1= Q n

4

D

2

= Q n

1

D

3

= Q n

2

D

4

= Q n

3

用D触发器构成的电路图如下图4.3所示:(用CP代替图中VCC)

图4.3

用Verilog语言描述如下:

module circle_counter (rst,clk, cnt);

parameter CNT_SIZE = 4;

input rst;

input clk;

output [CNT_SIZE - 1 : 0] cnt;

reg [CNT_SIZE - 1 : 0] cnt;

always@(posedge clk)

if(!rst)

cnt <= 4'b0001; //初始值

else

cnt <= {cnt[CNT_SIZE – 2 : 0],cnt[CNT_SIZE - 1]}; //注意

是循环左移位,而非简单的移位

endmodule

输入激励如下:

`timescale 1ns/1ns

module circle_counter_tb;

parameter CNT_SIZE = 4;

reg rst,clk;

wire [CNT_SIZE - 1 : 0] cnt;

parameter DELY = 100;

circle_counter mycounter(.rst(rst),.clk(clk),.cnt(cnt)); //例化,对源文件代码调用

always #(DELY/2) clk = ~clk; //生成时钟

initial

begin

clk = 0; rst = 0;

#(2*DELY) rst = 1;

#(10*DELY) rst = 0;

#(3*DELY) $finish;

end

initial //检测不同时间cnt和rst的值

$monitor ($time,,,"cnt = %d, rst = %d",cnt,rst);

Endmodule

显示仿真结果如下图4.4所示:

图4.4

由上述仿真可知:该循环只能在0001,0010,0100,1000内循环才是正确有效地,当跳出这个循环时,该程序不能保持在有效地循环内循环。而其他的状态均成无效状态而被浪费,而且一旦出错将很难回到有效状态继续循环。

5.扭环形计数器设计

设计一个四位扭环形计数器步骤如下:对于设计一个四位扭环形计数器,共有16个状态。状态转移表如下表所示:

得其状态图如下图5.1所示:(有效状态(左图),无效状态(右图)),该计数器的计数状态被等分成两半,每个循环的模都是8,即2N 。因此,只需要规定其中一个为有效循环,则另一个就是无效循环。通常选择左边这个循环作为工作循环,因为在每次状态改变时,系统内只有一个触发器状态是改变的,这就避免了时序电路中得冒险现象。

图5.1

表达式为:

Q 11+n =n Q 4 Q 12+n = Q n 1 Q 13+n = Q n 2 Q 14+n = Q n

3。

驱动方程:

D

1=n

Q

4

D

2

= Q n

1

D

3

= Q n

2

D

4

= Q n

3

用D触发器构成的电路图如下图5.2所示:(用CP代替图中VCC)

图5.2

用Verilog语言描述如下:

module john_counter(rst,clk ,cnt);

input rst,clk;

parameter CNT_SIZE = 4;

output [CNT_SIZE - 1 : 0] cnt;

reg [CNT_SIZE - 1 : 0] cnt;

always@(posedge clk)

if(!rst)

cnt <= 4'b0000; //初始值

else

cnt <= {~cnt[CNT_SIZE - 2 : 0],cnt[CNT_SIZE - 1]}; //注意是循环移位,而非简单的移位

endmodule

激励代码:

`timescale 1ns/1ns

module john_counter_tb;

parameter CNT_SIZE = 4;

reg rst,clk;

wire [CNT_SIZE - 1 : 0] cnt;

parameter DELY = 100;

john_counter mycounter(.rst(rst),.clk(clk),.cnt(cnt));

always #(DELY/2) clk = ~clk;

initial

begin

clk=0;rst=0;

#(2*DELY) rst = 1;

#(10*DELY) rst = 0;

#(3*DELY) $finish;

end

initial

$monitor ($time,,,"cnt = %d, rst = %d",cnt,rst);

Endmodule

显示仿真结果如下图5.3所示:

图5.3

6.环形计数器的自启动设计:

以上方法设计出的环形计数器其0001~1000为有效循环,其余均为无效循环。一旦计数器进入无效循环,将保持无效循环计数,从而不能够转入有效循环。因此,该计数器不具备自启动功能。

为了确保环形计数器工作在有效循环内,可以对上述电路进行改进,使之具

有自启动功能。将Q n

1, Q n

2

,Q n

3

的输出经由或非门反馈入D

1

端,即可实现自

启动功能。

电路图如下图6.1所示:(用CP代替图中VCC)

图6.1 状态方程

Q 11+n =n n Q Q Q 32n 1++ Q 12+n = Q n 1

Q 13+n = Q n 2 Q 14+n = Q n 3

状态转移图如下图6.2所示:

图6.2

用Verilog 语言描述如下:

module john_counter(rst,clk,cnt,D0,D1,D2,D3,LD); input rst,clk,D0,D1,D2,D3,LD; wire [3 : 0] DIN; output [3 : 0] cnt; reg [3 : 0] cnt;

assign DIN[3 : 0] = {D3,D2,D1,D0}; //add DIN to explain cnt in useless state always@(posedge clk) if(!rst)

cnt <= 4'b0000;

else if(!LD) //LD help to control the useless data into

the circle

cnt = DIN; else

cnt <= {cnt[2 : 0],~(cnt[2]|cnt[1]|cnt[0])};

endmodule

激励程序:

`timescale 1ns/1ns

module john_counter_tb;

reg rst,clk,D3,D2,D1,D0,LD;

wire [3 : 0] cnt;

parameter DELY = 100;

john_counter my_counter(.rst(rst),.clk(clk),.cnt(cnt),.D3(D3),.D2(D2),.

D1(D1),.D0(D0),.LD(LD));

always #(DELY/2) clk = ~clk;

initial

begin

clk = 0; rst = 0; LD = 1; {D3,D2,D1,D0} = 4'b0000;

#DELY rst = 1;LD = 1;

#(8*DELY) LD = 0;{D3,D2,D1,D0} = 4'b0110; //chage DIN to examin useless state can enter into the useful state

#(3*DELY) LD = 1;

#(10*DELY) $finish;

end

endmodule

显示仿真结果如下图6.3所示:

图6.3

由上述分析可知,由触发器构成环形计数器时,有大量的电路状态被当作无效的状态而被舍弃掉。修改反馈输入端,不仅能够实现电路的自启动功能,而且

也能提高电路状态的使用效率。

7.扭环形计数器的自启动设计:

在上述设计中,扭环形计数器也是不能自启动的,对反馈电路进行适当的修

改,就可以得到可自启动的扭环形计数器,能使计数器在任何状态下都能进入有效循环中进行计数。

修改后电路图如下图7.1所示:(用CP 代替图中

VCC)

图7.1

状态转移图如下图7.2所示:

图7.2 用Verilog 语言描述如下:

module john_counter(rst,clk,cnt,D0,D1,D2,D3,LD); input rst,clk,D0,D1,D2,D3,LD; wire [3 : 0] DIN; output [3 : 0] cnt; reg [3 : 0] cnt;

assign DIN[3 : 0] = {D3,D2,D1,D0}; //add DIN to explain cnt in useless state always@(posedge clk) if(!rst)

cnt <= 4'b0000;

else if(!LD) //LD help to control the useless data into the circle

cnt = DIN;

else

cnt <= {cnt[2 : 0],~(~((~cnt[2])&cnt[1])&cnt[3])};

endmodule

测试代码:

`timescale 1ns/1ns

module john_counter_tb;

reg rst,clk,D3,D2,D1,D0,LD;

wire [3 : 0] cnt;

parameter DELY = 100;

john_counter my_counter(.rst(rst),.clk(clk),.cnt(cnt),.D3(D3),.D2(D2),

D1(D1),.D0(D0),.LD(LD));

always #(DELY/2) clk = ~clk;

initial

begin

clk = 0; rst = 0; LD = 1; {D3,D2,D1,D0} = 4'b0000;

#DELY rst = 1;LD = 1;

#(8*DELY) LD = 0;{D3,D2,D1,D0} = 4'b1101; //chage DIN to examin useless state can enter into the useful state

#(1*DELY) LD = 1;

#(10*DELY) $finish;

end

endmodule

显示仿真结果如下图3.7所示:

8.结束语

在本次毕设中,设计了环形计数器和扭环形计数器的非自启动和自启动的两种方式。对于不同的电路和实际要求,采用不同的方式。设计过程中,我熟悉了

Verilog得基本语法,测试程序的简单编写和modelsim的使用。对相关书籍的阅读,使我完成这次毕设的设计。

这次设计,让我对数字电路有了更深刻的了解和认识,对以后数字电路这一块的设计,让我有了更多的方式可供选择。短暂的对Verilog硬件描述语言和modelsim仿真软件的接触,让我看到了我的不足,看到与社会企业的脱轨,鼓励着我不断地学习已有的知识,紧跟变化潮流,不能抓住一种方法,不懂思辨。对于这次毕设让我学到很多很多,我会不断努力充实自己,学习更多知识,当然还会对Verilog硬件描述语言和modelsim仿真软件进行更深入的研究。

主要参考文献

[1]王钿,卓兴旺。《基于Verilog HDL的数字系统应用技术》国防工业出版社,2006

[2]李晓辉。《数字电路与逻辑设计》国防工业出版社,2012.

[3]康磊,宋彩利,李润洲.《数字电路设计及Verilog HDL实现》西安电子科技大学出版

社,2010.

致谢

数电实验四

实验四:时序逻辑电路(集成寄存器和计数器) 一、实验目的: 1.熟悉中规模集成计数器的逻辑功能和使用方法;掌握用集成计数器组成任意模数为M的计数器。 2.加深理解移位寄存器的工作原理及逻辑功能描述;熟悉中规模集成移位寄存器的逻辑功能和使用方法;掌握用移位寄存器组成环形计数器的基本原理和设计方法。 二、知识点提示和实验原理: ㈠计数器: 计数器的应用十分广泛,不仅可用来计数,也可用于分频、定时和数字运算。计数器种类繁多,根据计数体制不同,计数器可分为二进制计数器和非二进制计数器两大类。在非二进制计数器中,最常用的是十进制计数器,其他的称为任意进制计数器。根据计数器的增减趋势的不同,计数器可分为加法计数器和减法计数器。根据计数脉冲引入方式不同,计数又可分为同步计数器和异步计数器。 在实际工程应用中,一般很少使用小规模的触发器组成计数器,而是直接选用中规模集成计数器。 用集成计数器实现任意M进制计数器:一般情况任意M进制计数器的结构分为3类,第一种是由集成二进制计数器构成,第二种为移位寄存器构成的移位寄存型计数器,第三种为集成触发器构成的简单专用计数器。 当M较小时通过对集成计数器的改造即可以实现,当M较大时,可通过多片计数器级联实现。 实现方法:(1)当所需计数器M值小于集成计数器本身二进制计数最大值时,用置数(清零)法构成任意进制计数器;⑵当所需计数器M值大于集成计数器本身二进制计数最大值时,可采用级联法构成任意进制计数器。 常用的中规模集成器件:4位二进制计数器74HC161,十进制计数器74HC160,加减计数器74HC191、74HC193,异步计数器74LS290。所有芯片的电路、功能表见教材。 ㈡寄存器: 寄存器用来寄存二进制信息,将一些待运算的数据、代码或运算的中间结果暂时寄存起来。按功能划分,寄存器可分为数码寄存器和移位寄存器两大类。 数码寄存器用来存放数码,一般具有接收数码、保持并清除原有数码等功能,电路结构和工作原理郡比较简单。而移位寄存器除具有存放数码的功能以外,还具备将寄存的数码实现移位的功能,即在时钟脉冲CLK作用下,能够把寄存器中存放的数码依次左移或右移。由于将二进制数左移一位等于乘2。右移一位等于除2,因此,移位寄存器可用于二进制数的乘、除运算。按照所存放数码的输入、输出方式的不同,移位寄存器可有四种工作方式:串行输入、串行输出,串行输入、并行输出,并行输入、串行输出,并行输入、并行输出。 中规模集成4位双向移位寄存器74HC194 ,具有左移、右移、置数、保持和清除功能。74HC194的功能见教材。

计数器的设计实验报告

计数器的设计实验报告 篇一:计数器实验报告 实验4 计数器及其应用 一、实验目的 1、学习用集成触发器构成计数器的方法 2、掌握中规模集成计数器的使用及功能测试方法二、实验原理 计数器是一个用以实现计数功能的时序部件,它不仅可用来计脉冲数,还常用作数字系统的定时、分频和执行数字运算以及其它特定的逻辑功能。 计数器种类很多。按构成计数器中的各触发器是否使用一个时钟脉冲源来分,有同步计数器和异步计数器。根据计数制的不同,分为二进制计数器,十进制计数器和任意进制计数器。根据计数的增减趋势,又分为加法、减法和可逆计数器。还有可预置数和可编程序功能计数器等等。目前,无论是TTL还是

CMOS集成电路,都有品种较齐全的中规模集成计数器。使用者只要借助于器件手册提供的功能表和工作波形图以及引出端的排列,就能正确地运用这些器件。 1、中规模十进制计数器 CC40192是同步十进制可逆计数器,具有双时钟输入,并具有清除和置数等功能,其引脚排列及逻辑符号如图5-9-1所示。 图5- 9-1 CC40192引脚排列及逻辑符号 图中LD—置数端CPU—加计数端CPD —减计数端CO—非同步进位输出端BO—非同步借位输出端 D0、D1、D2、D3 —计数器输入端 Q0、Q1、Q2、Q3 —数据输出端CR—清除端 CC40192的功能如表5-9-1,说明如下:表5-9-1 当清除端CR为高电平“1”时,计数

器直接清零;CR置低电平则执行其它功能。当CR为低电平,置数端LD也为低电平时,数据直接从置数端D0、D1、D2、D3 置入计数器。 当CR为低电平,LD为高电平时,执行计数功能。执行加计数时,减计数端CPD 接高电平,计数脉冲由CPU 输入;在计数脉冲上升沿进行8421 码十进制加法计数。执行减计数时,加计数端CPU接高电平,计数脉冲由减计数端CPD 输入,表5-9-2为8421 码十进制加、减计数器的状态转换表。加法计数表5-9- 减计数 2、计数器的级联使用 一个十进制计数器只能表示0~9十个数,为了扩大计数器范围,常用多个十进制计数器级联使用。 同步计数器往往设有进位(或借位)输出端,故可选用其进位(或借位)输出信号驱动下一级计数器。 图5-9-2是由CC40192利用进位

约翰逊计数器

环形计数器是由移位寄存器加上一定的反馈电路构成的,用移位寄存器构成环形计数器的一般框图见图23-5-1,它是由一个移位寄存器和一个组合反馈逻辑电路闭环构成,反馈电路的输出接向移位寄存器的串行输入端,反馈电路的输入端根据移位寄存器计数器类型的不同,可接向移位寄存器的串行输出端或某些触发器的输出端。 图23-5-1 移位寄存器型计数器方框图 23.5.1 环形计数器 23.5.1.1 电路工作原理 图23-5-2为一个四位环形计数器,它是把移位寄存器最低一位的串行输出端Q1反馈到最高位的串行输入端(即D触发器的数据端)而构成的,环形计数器常用来实现脉冲顺序分配的功能(分配器)。 假设寄存器初始状态为[Q4Q3Q2Q1]=1000,那么在移位脉冲的作用下,其状态将按表23-11 中的顺序转换。 当第三个移位脉冲到来后,Q1=1,它反馈到D4输入端,在第四个移位脉冲作用下Q4=1,回复到初始状态。表23-11中的各状态将在移位脉冲作用下,反复在四位移位寄存器中不断循环。

由上述讲讨论可知,该环形计数的计数长度为N=n。和二进制计数器相比,它有2n-n个状态没有利用,它利用的有效状态是少的。 23.5.1.2 状态转换图和工作时序 表23-11中是以1000为初始状态的,它所对应的状态转换图见图23-5-3。如果移位寄存器中的初始状态不同,就会有不同的状态转换图。图23-5-4给出了四位环形计数器可能有的其它几种状态转换图。 图23-5-3 状态转换图 (a) (b) (c) (d) 图23-5-4 四位环行计数器其它的状态转换图 图23-5-4(a)、(b)、(c)三个状态转换图中各状态是闭合的,相应的时序为循环时序。当计数器处于图23-5-4(d)所示的状态0000或1111时,计数器的状态将不发生变化。这两个状态称为悬态或死态。 四位环形计数器可能有这么多不同的循环时序,是我们不希望的,只能从这些循环时序中选出一个来工作,这就是工作时序,或称为正常时序,或有效时序。其它末被选中的循环时序称为异常时序或无效时序。一般选图23-5-3的时序为工作时序,因为它只循环一个“1”,不用经过译码就可从各触发器的Q端得到顺序脉冲输出,参看图23-5-5。

可编程可逆计数器

自动化专业电子课程设计报告题目:可编程可逆计数器设计 姓名王振 学号0808020231 指导教师:廖晓纬 评阅成绩等次: 电气信息工程系 2010-2011 第二学期

摘要:本课程设计是基于Altera公司开发的QuartusⅡ软件进行的设计,利用QuartusⅡ设计软件的元件库所提供的集成器件来实现任意进制计数器的设计,此软件是学习EDA(电子设计自动化)技术的重要软件。其中硬件使用高性价比的FPGA/CPLD(元件可编程逻辑闸阵列/复杂可编程逻辑器件)器件,软件利用VHDL(超高速集成电路硬件描述语言)语言,计数器电路的功能取决于硬件描述语言对设计对象建模的描述,经过精心调试使可编程器件的芯片利用效率达到最优,较之以往的数字电路设计和单片机功能设计具有灵活简便的优势,特别是在对复杂计数器设计,可大大减少调试时间,优化系统设计。 关键词:EDA;任意进制计数器;QuartusⅡ;VHDL

目录 前言 (3) 一、设计的任务与要求 (4) 1.1 设计任务 (4) 1.2 设计要求 (4) 二、总体设计和系统框图 (4) 2.1计数器方案 (4) 2.2 数码管驱动显示方案 (4) 2.3 N进制设定设计方案 (5) 2.4电路系统总体设计 (5) 三、硬件设计 (6) 3.1计数器部分设计硬件连接方式 (6) 3.2 驱动译码部分设计 (7) 3.3进制输入部分设计 (7) 3.4整体电路部分 (7) 四、软件设计(系统仿真) (9) 4.1程序工作流程图 (9) 4.2 仿真步骤及结果 (10) 五、设计结果分析 (12) 5.1 系统能实现的功能 (12) 5.2 系统所选用软件及芯片型号 (12) 六、设计总结和体会 (12) 6.1设计总结 (12) 6.2设计的收获及体会 (12) 6.3 设计的完善 (13) 致谢 (13) 参考文献 (13) 程序代码 (14)

四位二进制加法计数器课程设计

成绩评定表 学生姓名郝晓鹏班级学号1103060129 专业通信工程课程设计题目四位二进制加法 计数器 评语 组长签字: 成绩 日期20 年月日

课程设计任务书 学院信息科学与工程学院专业通信工程 学生姓名郝晓鹏班级学号1103060129 课程设计题目四位二进制加法计数(缺0010 0011 1101 1110) 实践教学要求与任务: 1、了解数字系统设计方法。 2、熟悉VHDL语言及其仿真环境、下载方法。 3、熟悉Multisim仿真环境。 4、设计实现四位二进制加计数(缺0010 0011 1101 1110) 工作计划与进度安排: 第一周:熟悉Multisim及QuartusII环境,练习数字系统设计方法。包括采用触发器设计和超高速硬件描述语言设计,体会自上而下、自下而上设计 方法的优缺点 第二周:1.在QuartusII环境中仿真实现四位二进制加计数(缺0100 0101 1001 1010 )。 2.在Multisim环境中仿真实现四位二进制加计数,缺(0100 0101 1001 1010),并通过虚拟仪器验证其正确性。 指导教师: 201 年月日专业负责人: 201 年月日 学院教学副院长: 201 年月日

摘要 本文采用在MAXPLUSⅡ环境中用VHDL语言实现四位二进制加法计数(缺0010 0011 1101 1110),在仿真器上显示结果波形,并下载到目标芯片上,在实验箱上观察输出结果。在Multisim环境中仿真实现四位二进制加法计数器(缺0010 0011 1101 1110),并通过虚拟仪器验证其正确性。 关键词:MAXPLUSⅡ环境;VHDL语言;四位二进制加计数;Multisim环境

实验四_4_位计数器设计

实验四4 位计数器设计 1. 实验目的 学习quartusii 和modelsim 的使用方法; 学习原理图和veriloghdl 混合输入设计方法; 掌握4位计数器设计的设计及仿真方法。 2. 实验原理 设计其中的计数器模块CNT4E和数码管译码驱动模块DECL7S勺verilogHDL代码,并作出整个系统仿真。 2.1 4位计数器模块代码 module CNT4B(out, CLK, RST); // output out; // in put CLK, RST; // reg [3:0] out; // always (posedge CLK or n egedge RST) // begin if(!RST) // out <= 4'dO; else out <= out + 1; // end en dmodule 低电平复位 每一个clk计数 效果图: 定义模块名和各个端口 定义输出端口 定义输入时钟和复位 定义四位计数器 上升沿时钟和下降沿复位

2.2七段数码管代码 module segled(out1,a); // in put [3:0]a; // output [6:0]out1; // reg [6:0]out1; //reg always(a) // begin case(a) //case 4'b0000:out1<=7'b0111111; 4'b0001:out1<=7'b0000110; 4'b0010:out1<=7'b1011011; 4'b0011:out1<=7'b1001111; 4'b0100:out1<=7'b1100110; 4'b0101:out1<=7'b1101101; 4'b0110:out1<=7'b1111101; 4'b0111:out1<=7'b0000111; 4'b1000:out1<=7'b1111111; 4'b1001:out1<=7'b1101111; 4'b1010:out1<=7'b1110111; 4'b1011:out1<=7'b1111100; 4'b1100:out1<=7'b0111001; 4'b1101:out1<=7'b1011110; 4'b1110:out1<=7'b1111001; 4'b1111:out1<=7'b1110001; endcase end en dmodule // 模 块结束效果图: 定义模块名和输入输出端口 输入一个3位矢量 输出一个6位矢量 型变量用于always语句 语句用于选择输出 CNT4B:b2v inst 敏感信号a

实验四、 计数器的设计 电子版实验报告

实验四:计数器的设计 实验室:信息楼247 实验台号: 4 日期: 专业班级:机械1205 姓名:陈朝浪学号: 20122947 一、实验目的 1. 通过实验了解二进制加法计数器的工作原理。 2. 掌握任意进制计数器的设计方法。 二、实验内容 (一)用D触发器设计4位异步二进制加法计数器 由D触发器组成计数器。触发器具有0和1两种状态,因此用一个触发器 就可以表示1位二进制数。如果把n个触发器串起来,就可以表示N位二进制 数。(用两个74LS74设计实现) (二)利用74LS161设计实现任意进制的计数器 设计要求:学生以实验台号的个位数作为所设计的任意进制计数器。 先熟悉用1位74LS161设计十进制计数器的方法。 ①利用置位端实现十进制计数器。 ②利用复位端实现十进制计数器。 提示:设计任意计数器可利用芯片74LS161和与非门设计,74LS00为2输 入与非门,74LS30为8输入与非门。 74LS161为4位二进制加法计数器,其引脚图及功能表如下。

三、实验原理图 1.由4个D触发器改成的4位异步二进制加法计数器 2.由74LS161构成的十进制计数器

四、实验结果及数据处理 1.4位异步二进制加法计数器实验数据记录表 2. 画出你所设计的任意进制计数器的线路图,并说明设计思路。

设计思路:四进制为四个输出Q3Q2Q1Q0=0000,0001,0010,0011循环,第一个无效状态为0100 1,置位法设计四进制计数器:当检测到输入为0011时,先输出显示3,然后再将D 置于低电位,计数器输出Q3Q2Q1Q0复位。 2,复位法设计四进制计数器:当检测到第一个无效状态0100时,通过与非门的反馈计数器的Cr首先置于低电平使计数器复位为0000。 五、思考题 1. 由D触发器和JK触发器组成的计数器的区别? 答:D触发器是cp上升沿触发,JK触发器是下降沿触发。 2. 74LS161是同步还是异步,加法还是减法计数器? 答:同步。加法计数器。 3. 设计十进制计数器时将如何去掉后6个计数状态的? 答:加一个与非门形成负反馈。当计数到第一个无效状态Q3Q2Q1Q0==1010时,Q3和Q1全为1,Q1,Q3接与非门,输出作为复位信号,使所有触发器复位,从而去掉了后6个状态。

红外可逆计数器设计

《光电子技术》课程设计课题名称:红外可逆计数器设计 指导老师:曾维友

一、课题名称: 红外可逆计数器设计 二、设计任务: 设计一个红外可逆计数器,要求: 1、当一物体沿某一方向经过计数器时,计数器进行加一计数;而物体沿反方向经过计数器时,计数器进行减计数; 2、用数码管显示当前的计数值,最大计数值为1000; 3、设计方案经济、实用、可靠。 三、设计方案: 方案(1):红外发射管 + 一体化按收头:适用于发射管与接收管距离较大的情形 方案(2):槽型光电开关:适用于发射管与接收管距离较小的情形 方 波发生器 TSOP34838 38KHz 单片机系统 显示模块 单 片机系统 显示模块 Vcc

四、方案选择 由以上两种方案的设计框图可以看出:两种方案的唯一不同之处在于光电发射和接收装置,方案一釆用的是红外发射管加上一体化接收头,适用于发射管与接收管距离较大的情形,而且为了防止误动作,在光电发射部分加入了方波调制电路,因而具有较好的抗干扰能力;而方案二的电路比较简单,只用了一个槽型光电开关,外加两个限流电阻和一个反相器,这种电路适用于发射管与接收管距离较小的情形。考虑到越来越多的流水线上的产品和各种公共场所需要进行自动计数,而在这种情形下发射管与接收管距离一般都比较较大,加之方案一有较强的抗干扰能力。综合以上考虑,我们选择了方案一。 五、模块设计 1、方波发生电路 方波发生器的组成方式很多,可以用集成运放构成,可以用一些定时芯片构成,也可以用一些数字门电路构成。由于在数电课程中,我们已经学习了用555定时器构成的方波发生器,对此比较熟悉,电路也比较简单,而且性能良好,因此我们选择了用NE555构成的方波发生器。电路如下:

数电课设___四位二进制加法计数器的设计

成绩评定表

课程设计任务书

摘要 Quartus II 是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。 Multisim是Interactive Image Technologies (Electronics Workbench)公司推出的以Windows为基础的仿真工具,适用于板级的模拟/数字电路板的设计工作。它包含了电路原理图的图形输入、电路硬件描述语言输入方式,具有丰富的仿真分析能力。 本次数电课程设计使用Quartus II仿真环境以及VHDL下载和Multisim仿真环境来编译实现四位二进制同步加法计数器。在Multisim中选用一个集成计数器74LS163来实现四位二进制加法计数器。运用卡诺图求解时序方程。逻辑电路图中,四个小红灯即为显示器,从右到左显示时序图中的十四种状态,其中,灯亮表示“1”,灭表示“0”,从而达到计数目的。 关键字:Quartus II Multisim 集成计数器74LS163 时序图卡诺图 目录

一、课程设计目的 (1) 二、设计框图 (1) 三、实现过程 (2) 1、QUARTUS II实现过程 (2) 1.1建立工程 (2) 1.2调试程序 (3) 1.3波形仿真 (6) 1.4引脚锁定与下载 (8) 1.5仿真结果分析 (10) 2、MULTISIM实现过程 (10) 2.1求驱动方程 (10) 2.2画逻辑电路图 (13) 2.3逻辑分析仪的仿真 (14) 2.4结果分析 (14) 四、总结 (15) 五、参考书目 (16)

环形计数器和扭环形计数器设计

本科毕业论文(设计、创 作) 题目:环形计数器和扭环形计数器设计 学生姓名:学号: 院(系):电子信息工程学院专业:通信工程 入学时间:年月 导师姓名:职称/学位: 导师所在单位: 完成时间:2014年5月

环形计数器和扭环形计数器设计 摘要 现代世界的快速发展,夜生活已成为大多数城市不可缺少的生活,在夜生活中,五彩斑斓,形状不断变化的LED灯走入了大家的生活。而各种形状的LED灯,随着技术的不断发展,EDA设计得到不断地发展和应用,LED灯所表示的图案多种多样,LED灯中最简单的就数流水灯,而流水灯可以由环形计数器或扭环形计数器控制。本文以环形计数器和扭环形计数器为设计对象,根据其相关规律,设计其运行电路,以及用verilog硬件描述语言实现。内容主要涉及计数器的循环与自启动以及最后整个计数器的检测方案和仿真。本设计可以实现计数器的一些简单的控制,并用modelsim进行仿真。 关键词:环形计数器和扭环形计数器设计;Verilog;modelsim。

Twisted ring counter ring counter and design Abstract The rapid development of the modern world, night life has become indispensable in the life most of the city, in the nightlife, colorful, shape changing LED lights went into people's lives. And various shapes of LED lights, with the continuous development of technology, EDA design get continuously development and application of LED lamp represents pattern is varied, the most simple several water light LED lights, lights and running water can be controlled by the ring counter or twisting the ring counter. This article is 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 counter circulation and since the start and final of the test scheme and simulationThis design can realize some simple control counter, and modelsim simulation Keywords: ring counter and twisting the ring counter design ;Verilog; modelsim.

实验五计数器的设计实验报告

实验五计数器的设计——实验报告 邱兆丰 15331260 一、实验目的和要求 1.熟悉JK触发器的逻辑功能。 2.掌握用JK触发器设计同步计数器。 二、实验仪器及器件 1、实验箱、万用表、示波器、 2、74LS73,74LS00,74LS08,74LS20 三、实验原理 1.计数器的工作原理 递增计数器----每来一个CP,触发器的组成状态按二进制代码规律增加。递减计数器-----按二进制代码规律减少。 双向计数器-----可增可减,由控制端来决定。 2.集成J-K触发器74LS73 ⑴符号: 图1 J-K触发器符号

⑵功能: 表1 J-K触发器功能表 ⑶状态转换图: 图2 J-K触发器状态转换图

⑷特性方程: ⑸注意事项: ①在J-K触发器中,凡是要求接“1”的,一定要接高电平(例如5V),否则会出现错误的翻转。 ①触发器的两个输出负载不能过分悬殊,否则会出现误翻。 ② J-K触发器的清零输入端在工作时一定要接高电平或连接到实验箱的清零端子。3.时序电路的设计步骤 内容见实验预习。 四、实验内容 1.用JK触发器设计一个16进制异步计数器,用逻辑分析仪观察CP和各输出波形。2.用JK触发器设计一个16进制同步计数器,用逻辑分析仪观察CP和各输出波形。3.设计一个仿74LS194 4.用J-K触发器和门电路设计一个特殊的12进制计数器,其十进制的状态转换图为:5.考虑增加一个控制变量D,当D=0时,计数器按自定义内容运行,当D=1时,反方向运行 五、实验设计及数据与处理 实验一

16进制异步计数器 设计原理:除最低级外,每一级触发器用上一级触发器的输出作时钟输入,JK都接HIGH,使得低一级的触发器从1变0时高一级触发器恰好接收下降沿信号实现输出翻转。实验二 16进制同步计数器 设计原理:除最低级外,每一级的JK输入都为所有低级的输出的“与”运算结果实验三 仿74LS194 设计原理:前两个开关作选择端输入,下面四个开关模仿预置数输入,再下面两个开关模仿左移、右移的输入,最后一个开关模仿清零输入。四个触发器用同一时钟输入作CLK输入。用2个非门与三个与门做成了一个简单译码器。对于每一个触发器,JK输入总为一对相反值,即总是让输入值作为输出值输入。对于每一个输入,当模式“重置”输出为1时,其与预置值结果即触发器输入;当模式“右移”、“左移”输出为1时,其值为上一位或下一位对应值;当各模式输出均为0时各触发器输入为0,使输出为0。 实验四 设计原理: 在12进制同步计数器中,输出的状态只由前一周期的状态决定,而与外来输入无关,因此目标电路为Moore型。而数字电路只有0和1两种状态,因此目标电路要表达12种状态需

实验五 计数器的设计

实验五计数器的设计 姓名:zht 学号: 班级:15自动化 日期:2016/11/11

目录 一、实验内容 (3) 二、设计过程、逻辑图及仿真 (4) ①设计过程 (4) ②逻辑图及仿真 (5) 三、实验数据及总结 (8) ①实验数据 (8) ②总结 (10)

一、实验内容 1.用JK触发器设计一个16进制异步计数器,用逻辑分析仪观察CP 和各输出的波形。 2.用JK触发器设计一个16进制同步计数器,用逻辑分析仪观察CP 和各输出的波形。 3.用JK触发器和门电路设计一个特殊的12进制同步计数器,其十进制的状态转换为从01依次计数到12,再回到01开始新一轮计数。实验仪器: 1.实验箱,示波器。 2.器件:74LS73,74LS00,74LS08,74LS20

二、设计过程、逻辑图及仿真 ①设计过程: 1.异步计数器是将CLK应用于第一个JK触发器的时钟输入上,然后将输出Q接入后一个JK触发器的时钟输入,后面的连接方式都是由前一个JK触发器的输出Q作为后一个JK触发器的时钟输入。异步计数器的原理是由于实验箱上的JK触发器是下降沿触发,第一个JK触发器的输出Q1每一个时钟周期变化一次,即经过两个时钟周期后Q1经过了一个周期。同理,由于第一个JK触发器的输出Q1是第二个的时钟输入,所以经过两个Q1周期后第二个JK触发器的输出Q2经过了一个周期,即每四个时钟周期的时间Q2经过一个周期。以此类推,则第三个JK触发器的输出Q3的周期是时钟周期的八倍,第四个JK 触发器的输出Q4是时钟周期的十六倍,因而Q4、Q3、Q2、Q1组成了一个16进制计数器。该计数器的缺点是由于传输延迟会在其中积累,会限制计数器按时钟运行的速度。 2.同步计数器将CLK应用于每个JK触发器的时钟输入上。第一个JK 触发器的输出Q连接到第二个JK触发器的J和K。此后前一个JK触发器的输出和后一个JK触发器的输出经过与门后共同作为再后一个JK触发器的J和K输入。如此一来,第二个JK触发器的J、K输入由第一个JK触发器的输出Q1控制,时钟每变化两个周期Q1会变化一个周期,而只有当Q1为0时第二个触发器在经过时钟下降沿时才会使输出Q2的状态发生改变,即Q2的周期为Q1的两倍,时钟周期的四倍。接着由于Q1和Q2经过与门后作为第三个触发器的J、K输

十进制4位加法计数器设计

洛阳理工学院 十 进 制 4 位 加 法 计 数 器 系别:电气工程与自动化系 姓名:李奇杰学号:B10041016

十进制4位加法计数器设计 设计要求: 设计一个十进制4位加法计数器设计 设计目的: 1.掌握EDA设计流程 2.熟练VHDL语法 3.理解层次化设计的内在含义和实现 设计原理 通过数电知识了解到十进制异步加法器的逻辑电路图如下 Q3 则可以通过对JK触发器以及与门的例化连接实现十进制异步加法器的设计 设计内容 JK JK触发器的VHDL文本描述实现: --JK触发器描述 library ieee; use ieee.std_logic_1164.all; entity jk_ff is

port( j,k,clk: in std_logic; q,qn:out std_logic ); end jk_ff; architecture one of jk_ff is signal q_s: std_logic; begin process(j,k,clk) begin if clk'event and clk='0' then if j='0' and k='0' then q_s <= q_s; elsif j='0' and k='1' then q_s <= '0'; elsif j='1' and k='0' then q_s <= '1'; elsif j='1' and k='1' then q_s <= not q_s; end if; end if; end process; q <= q_s; qn <= not q_s; end one; 元件门级电路: 与门VHDL文本描述实现: --与门描述library ieee; use ieee.std_logic_1164.all;

实验五 含异步清零和同步使能4位加法计数器的VHDL设计

实验五含异步清零和同步使能4位加法计数器的VHDL设计一、实验目的 1掌握计数器的VHDL设计方法; 2掌握异步复位和同步复位和使能的概念; 3掌握寄存器性能的分析方法(即分析芯片所能达到的最高时钟频率)。 二、实验内容 1异步复位4位加法计数器的设计; 2同步复位4位加法计数器的设计。 3异步清0和同步时钟使能的4位加法计数器 三、实验原理 复位:给计数器一个初值叫复位,如果所给初值为0,则称复位为清零。 异步复位:复位跟时钟无关,只要复位信号的复位电平出现,计数器立即复位,如图5-1 所示; 同步复位:复位跟时钟有关,当复位信号的复位电平出现时,计数器并不立即复位,而是要等到时钟沿到来时才复位,如图5-2所示。 异步复位4位加法计数器的VHDL设计代码见教材P122-P123,仿真波形如图5-3所示。同步复位4位加法计数器的VHDL部分代码如下,仿真波形如图5-4所示。 . 图5-1异步复位

图5-2同步复位 图5-3异步复位计数器仿真波形 图5-4同步复位计数器仿真波形 四、实验步骤 (一)异步复位4位加法计数器的设计 1建立一个设计工程,工程名为CNT4B; 2打开文本编辑器,建立一个VHDL设计文件,其VHDL代码见教材P164中的例6-20,文件名存为CNT4B.VHD。注意文件的扩展名要选为.vhd,而且要求工程名、文件名和设计实体名必须相同。 3选器件:ACEX1K,EP1K30TC144-3(旧)或Cyclone,EP3C40Q240C8目标芯片。4编译; 5建立波形文件,然后保存,其文件名必须与工程名一致;【波形设置:①设置仿真时间为10us:②设置输入信号的波形:时钟周期设置为200ns,其他输入信号的波形设置参看图6-3。】

实验九-可逆计数器的功能测试及应用电路

实验九可逆计数器的功能测试及应用电路 实验目的: (1)掌握可逆计数器74LS191、74LS191、74LS192、74LS193的逻辑功能及使用方法。 (2)熟悉可逆计数器实现任意进制的数码倒计时电路的工作原理。 实验仪器与器件: 实验箱一个;双踪示波器一台;稳压电源一台;函数发生器一台。 74LS191、74LS191、74LS191或74HC48、74LS00和74LS04。 实验内容: 1测试74LS190和74LS191的逻辑功能,并用数码管显示,验证是否与表2-9-4一致,分别画出各单元的电路图,写出各自的状态 实验原理:单时钟74LS191二进制同步加/减计数器的功能表如下: 表2-9-4 单时钟74LS191二进制同步加/减计数器的功能表 单时钟74LS191二进制同步加/减计数器是十进制的,其他功能与74LS191一样。它的有效状态为0000~1001. 实验电路: 如图所示是减计数时当计数器的状态变为0时的电路状态:RCO=0,MAX/=1; MIN

实验现象与结果: 该结果是当CTEN =0,D L =1,D U /=1时,A B C D Q Q Q Q 的 波形图; 该结果是当CTEN =0,D L =1,D U /=1时, RCO 与MIN MAX /的波形图

需要说明的是:当CTEN= D L=1时,电路保持原来的状态。 2测试74LS192和74LS193的逻辑功能,并用数码管显示,验证是否与表2-9-3及2-9-5一致。画出测试电路图。 实验原理: 双时钟74LS192同步十进制可逆计数器的功能表如下表所示,74LS192是十进制计数器。 表2-9-3双时钟74LS192同步十进制可逆计数器的功能表 输入输出工作 状态 U CP UP D CP DOW N CLR D L DCBA A B C D Q Q Q Q U TC D TC **H H ****0000 H H 异步 清零**L L 1001 1001 H H 异步 置数 H ↑L H ****1001→ 0001→ 0000H H H L 减法 计数 ↑H L H ****0000→ 1000→ 1001H L H H 加法 计数 双时钟74LS193二进制同步加/减法计数器的功能表如下表所示,74LS193是一个十六进制的计数器。

基于FPGA的环形计数器设计

龙源期刊网 https://www.360docs.net/doc/886725099.html, 基于FPGA的环形计数器设计 作者:段品凡郭昭利王彦博张哲曾健于海霞 来源:《电脑知识与技术》2019年第09期 摘要:设计一个能自启动的模8右移扭环形计数器和模4右移环形计数器,以Verilog语言进行程序编写,并设以FPGA应用设计为基础,使用Quartus Ⅱ进行仿真。 关键词:FPGA;Verilog;Quartus Ⅱ。 中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2019)09-0217-02 在信息化时代的今天,无论是工厂的生产,还是日常生活,自动化的程度越来越高,在许多场合,人,已不再是必须主角,而代替人类完成诸多工作的是高度自动化的设备,而其中关键的一环便是计数器。 1 原理 1.1 FPGA简介 以硬件描述语言(Verilog或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多數的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)或者其他更加完整的记忆块。 1.2 计数模块简介 此模块为本次设计的主模块,由两个小模块IC181模块(模8右移扭环形计数器模块)和IC182模块(模4右移环形计数器模块)组成,完成本设计的计数功能。其中,扭环形计数器又称约翰逊计数器,它具有电路结构简单,工作速度快且循环码等优点,因而应用较广。 2 总体设计 2.1 总体框图 2.2 总体流程图 3 具体设计

数字电路实验 计数器的设计

数字电路与逻辑设计实验报告实验七计数器的设计 姓名:黄文轩 学号:17310031 班级:光电一班

一、实验目的 熟悉J-K触发器的逻辑功能,掌握J-K触发器构成异步计数器和同步计数器。 二、实验器件 1.数字电路实验箱、数字万用表、示波器。 2.虚拟器件: 74LS73,74LS00, 74LS08, 74LS20 三、实验预习 1. 复习时序逻辑电路设计方法 ①根据设计要求获得真值表 ②画出卡诺图或使用其他方式确定状态转换的规律 ③求出各触发器的驱动方程 ④根据已有方程画出电路图。 2. 按实验内容设计逻辑电路画出逻辑图 Ⅰ、16进制异步计数器的设计 异步计数器的设计思路是将上一级触发器的Q输出作为下一级触发器的时钟信号,置所有触发器的J-K为1,这样每次到达时钟下降沿都发生一次计数,每次前一级 触发器从1变化到0都使得后一级触发器反转,即引发进位操作。 画出由J-K触发器组成的异步计数器电路如下图所示:

使用Multisim仿真验证电路正确性,仿真图中波形从上到下依次是从低位到高位 触发器的输出,以及时钟信号。: 可以看出电路正常执行16进制计数器的功能。 Ⅱ、16进制同步计数器的设计 较异步计数器而言,同步计数器要求电路的每一位信号的变化都发生在相同的时间点。

因此同步计数器各触发器的时钟脉冲必须是同一个时钟信号,这样进位信息就要放置在J-K 输入端,我们可以把J-K端口接在一起,当时钟下降沿到来时,如果满足进位条件(前几位触发器输出都为1)则使JK为1,发生反转实现进位。 画出由J-K触发器和门电路组成的同步计数器电路如下图所示 使用Multisim仿真验证电路正确性,仿真图中波形从上到下依次是从低位到高位触发器的输出,计数器进位输出,以及时钟信号。:

同步计数器的设计实验报告文档

2020 同步计数器的设计实验报告文档 Contract Template

同步计数器的设计实验报告文档 前言语料:温馨提醒,报告一般是指适用于下级向上级机关汇报工作,反映情况,答复上级机关的询问。按性质的不同,报告可划分为:综合报告和专题报告;按行文的直接目的不同,可将报告划分为:呈报性报告和呈转性报告。体会指的是接触一件事、一篇文章、或者其他什么东西之后,对你接触的事物产生的一些内心的想法和自己的理解 本文内容如下:【下载该文档后使用Word打开】 同步计数器的设计实验报告 篇一:实验六同步计数器的设计实验报告 实验六同步计数器的设计 学号: 姓名: 一、实验目的和要求 1.熟悉JK触发器的逻辑功能。 2.掌握用JK触发器设计同步计数器。 二、实验仪器及器件 三、实验预习 1、复习时序逻辑电路设计方法。 ⑴逻辑抽象,得出电路的状态转换图或状态转换表 ①分析给定的逻辑问题,确定输入变量、输出变量以及电路的状态数。通常都是取原因(或条件)作为输入逻辑变量,取结

果作输出逻辑变量。 ②定义输入、输出逻辑状态和每个电路状态的含意,并将电路状态顺序编号。 ③按照题意列出电路的状态转换表或画出电路的状态转换图。通过以上步骤将给定的逻辑问题抽象成时序逻辑函数。 ⑵状态化简 ①等价状态:在相同的输入下有相同的输出,并且转换到同一次态的两个状态。 ②合并等价状态,使电路的状态数最少。 ⑶状态分配 ①确定触发器的数目n。因为n个触发器共有2n种状态组合,所以为获得时序电路所需的M个状态,必须取2n1<M2n ②给每个电路状态规定对应的触发器状态组合。 ⑷选定触发器类型,求出电路的状态方程、驱动方程和输出方程 ①根据器件的供应情况与系统中触发器种类尽量少的原则谨慎选择使用的触发器类型。 ②根据状态转换图(或状态转换表)和选定的状态编码、触发器的类型,即可写出电路的状态方程、驱动方程和输出方程。 ⑸根据得到的方程式画出逻辑图 ⑹检查设计的电路能否自启动 ①电路开始工作时通过预置数将电路设置成有效状态的一种。 ②通过修改逻辑设计加以解决。

设计一个四位二进制计数器

1、要求:设计一个四位二进制计数器,将计数结果由数码管显示,显示结果为十进制数。数码管选通为低电平有效,段码为高电平有效。 分析:VHDL 描述包含五部分:计数器、将四位二进制数拆分成十进制数的个位和十位、二选一的数据选择器、七段译码、数码管选通控制信号 线定义为信号 library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity counter3 is Port ( clk:in STD_LOGIC; clk1 : in STD_LOGIC; clr : in STD_LOGIC; en : in STD_LOGIC; co : out STD_LOGIC; scanout:out std_logic_vector(1 downto 0); ledout:out std_logic_vector(6 downto 0)); end counter3; architecture Behavioral of counter3 is signal cnt:std_logic_vector(3 downto 0); signal cnt1:std_logic_vector(3 downto 0); signal cnt2:std_logic_vector(3 downto 0); signal hex:std_logic_vector(3 downto 0); signal scan:std_logic_vector(1 downto 0); en clr

环形计数器和扭环形计数器设计

本科结业论文(设计、创作) 令狐采学 题目:环形计数器和扭环形计数器设计 学生姓名:学号: 院(系):电子信息工程学院专业:通信工程 入学时间:年月 导师姓名:职称/学位: 导师所在单位: 完成时间:年 5 月 环形计数器和扭环形计数器设计 摘要 现代世界的快速成长,夜生活已成为年夜大都城市不成缺少的生活,在夜生活中,五彩斑斓,形状不竭变更的LED灯走入了年夜家的生活。而各种形状的LED灯,随着技术的不竭成长,EDA设计获得不竭地成长和应用,LED灯所暗示的图案多种多样,LED灯中最简单的就数流水灯,而流水灯可以由环形计数器或扭环形计数器控制。本文以环形计数器和扭环形计数器为设计对象,根据其相关规律,设计其运行电路,以及用verilog硬件描述语言实现。内容主要涉及计数器的循环与自启动以及最后整个计数器的检测计划和仿真。本设计可以实现计数器的一些简单的控制,并用modelsim 进行仿真。 关键词:环形计数器和扭环形计数器设计;Verilog;modelsim。 Twisted ring counter ring counter and design Abstract The rapid development of the modern world, night life has

become indispensable in the life most of the city, in the nightlife, colorful, shape changing LED lights went into people's lives. And various shapes of LED lights, with the continuous development of technology, EDA design get continuously development and application of LED lamp represents pattern is varied, the most simple several water light LED lights, lights and running water can be controlled by the ring counter or twisting the ring counter. This article is 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 counter circulation and since the start and final of the test scheme and simulationThis design can realize some simple control counter, and modelsim simulation Keywords: ring counter and twisting the ring counter design ;Verilog; modelsim. 目录 1.引言1 2.设计任务和要求1 2.1设计任务2 2.2设计要求3 3.设计原理3 3.1环形计数器界说3 3.2环形计数器工作原理3 3.3扭环形计数器界说3 3.4扭环形计数器工作原理3 4.环形计数器的设计3 5.扭环形计数器设计6

相关文档
最新文档