八位十进制数字频率计基于eda课程设计

更新时间:2024-01-18 16:56:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

目 录

目 录 ............................................................ 0

1、EDA技术发展及介绍 ......................................................................................................... 2

1.1 EDA技术的介绍 .......................................................................................................................... 2

1.2 EDA技术的发展 .......................................................................................................................... 2 1.3 EDA技术的发展趋势 .................................................................................................................. 2

2、总体方案设计 ...................................................................................................................... 3

2.1设计内容 .......................................................................................................................................... 3 2.2设计方案比较................................................................................................................................... 3 2.3方案论证 .......................................................................................................................................... 5 2.4方案选择 .......................................................................................................................................... 5

3、单元模块设计 ...................................................................................................................... 5

3.1分频模块 .......................................................................................................................................... 5

3.1.1分频模块波形仿真图 ........................................... 5 3.1.2分频模逻辑综合图 ............................................. 6 3.1.3分频模块verilog源代码 ....................................... 6

3.2计数模块 .......................................................................................................................................... 7

3.2.1计数模块功能仿真波形 ......................................... 7 3.2.2计数模块逻辑综合图 ........................................... 8 3.2.3计数模块verilog源代码 ....................................... 8

3.3锁存模块 .......................................................................................................................................... 9

3.3.1锁存模块功能仿真波形 ......................................... 9 3.3.2锁存模块逻辑综合图 ........................................... 9 3.3.1锁存模块verilog源代码 ...................................... 10

3.4七段译码模块................................................................................................................................. 10

3.4.1七段一码模块功能仿真波形 .................................... 10 3.4.2七段译码模块逻辑综合图 ...................................... 11 3.4.3七段一码模块代码源程序 ...................................... 11

3.5数码管显示模块............................................................................................................................. 12

3.5.1数码管显示模块功能仿真波形图 ................................ 13 3.5.2数码管显示模块综合图 ........................................ 13 3.5.3数码管显示模块源代码 ........................................ 14

4、软件实现 ............................................................................................................................ 15

4.1软件实现方法................................................................................................................................. 15

4.1.1 软件实现步骤框图 ........................................... 15

4.2软件设计 ............................................................................................................................ 15

4.2.1 顶层模块程序如下: ......................................... 15 4.2.2 顶层模块结构图 ............................................. 17

5、系统仿真及调 .................................................................................................................... 17

5.1顶层模块仿真及调试 ..................................................................................................................... 17

西华大学课程设计说明书 6、总结 .................................................................................................................................... 18

6.1设计小结 ........................................................................................................................................ 18 6.2设计收获 ........................................................................................................................................ 19 6.3设计改进 ........................................................................................................................................ 19 6.4 致谢 ............................................................................................................................................... 19

7 、参考文献 .......................................................................................................................... 19

1

西华大学课程设计说明书 1、EDA技术发展及介绍

1.1 EDA技术的介绍

EDA是Electronic Design Automation的缩写,中文译为电子设计自动化,是现代电子设计技术的有力工具。迄今为止,EDA技术没有精确的定义,我们可以这样来认识,EDA技术就是以计算机为工作平台,以EDA软件工具为开发环境,以PLD器件或者ASIC专用集成电路为目标器件设计实现电路系统的一种技术。而EDA技术的发展又以计算机科学、微电子技术的发展为基础,并且融合了应用电子技术、智能技术以及计算机图形学、拓扑学、计算数学等众多最新成果发展而来的。

1.2 EDA技术的发展

从20世纪70年代,人们就已经开始基于计算机开发出一些软件工具帮助设计者完成电路系统的设计任务,以替代传统的手工设计的方法,随着计算机软件和硬件技术水平的提高,EDA技术也不断进步,大致经历了下面三个发展阶段:

(1)CAD阶段:20世纪70年代至80年代初,由于电子技术软件的功能较弱和个人计算机的普及度不高,人们主要借助于计算机对所设计的电路的性能进行模拟和预测;完成简单的版图绘制和PCB布局。这是EDA技术发展的早起阶段。

(2)CAE阶段:20世纪80年代至90年代初,由于人们在设计方法学、设计工具集成优化方面取得了长足的进步,使得集成电路规模逐渐扩大,电子系统设计也逐步复杂,与CAD相比,又增加了电路功能设计和结构设计、工程设计、原理图输入、逻辑仿真、电路分析、自动布局布线、PCB后分析等功能。由此EDA进入CAE阶段。

(3)EDA阶段:20世纪90年代以来,由于微电子工艺的显著发展,促进了电子设计工具的不断改善。尤其是进入21世纪以后,EDA技术得到了更快的发展。使得EDA技术广泛应用于各个领域,IP核的SoC设计技术日趋成熟、SoPC技术步入实

用化阶段、高速DSP实现成为了可能、复杂电子系统的设计和验证更加高效。

1.3 EDA技术的发展趋势

随着人们对设备功能和成本要求的越来越苛刻,EDA技术也在不断改进,就目前而言,EDA技术有以下三个大的发展趋势。

(1) 高性能的EDA工具将得到进一步发展

随着市场的需求增长,超大规模集成技术不断提高,超深亚微米(VDSM)工艺已经走向成熟;IC生产线的投资更为巨大,可编程逻辑器件开始进入传统的ASIC市场;电子系统成本降低,系统体积减小,设计效率提高,EDA工具盒IP核广泛应用;自动化和智能化程度不断提高,计算机硬件平台性能的不断提高为SoC设计提供了物质基础。

2

西华大学课程设计说明书 (2) EDA技术将促使ASIC和FPGA逐步走向融合

随着系统开发对EDA技术的目标器件各种性能指标要求的提高,ASIC和FPGA将更大程度地相互融合。这是因为虽然标准逻辑ASIC芯片尺寸小、功能强、耗电省,胆设计复杂,并且有批量生产要求;可编程逻辑器件的开发费用低廉,能现场编程,胆体积大、功耗大。因此,FPGA和ASIC正在走到一起,两者之间正在诞生一种“杂交”产品,互相融合,取长补短,以满足成本和上市速度的要求。例如,将可编程逻辑器件嵌入到标准单元。

(3)EDA技术的应用领域将越来越广泛

从目前的EDA技术来看,其特点就是使用普及、应用广泛、工具多样、软件功能强大。在ASIC和PLD器件方面,向高速度、高密度、低功耗、低电压方向发展。EDA技术发展迅速,可以用日新月异来描述。EDA技术的广泛应用,现已涉及各行各业。EDA水平不断提高,设计工具不断趋于完善。

然而,目前人们对更低成本、更低功耗的无止境追求和越来越短的产品上市压力为当代EDA工具和设计方法带来了不少新的挑战与机会。例如,如何在工艺上防止模拟电路与数字电路之间的干扰;现有的大部份EDA工具最多只能处理百万门级设计规模,随着IC设计向千万门级以上规模发展,现有EDA工具和方法必须进行升级。

2、总体方案设计

2.1设计内容

要求设计一个八位十进制频率计,该频率计的测频范围为0到99999999HZ,测频的原理采用直接测频法,利用计数器在单位时间(通常是1s)内对被测得脉冲进行计数,计数的结果就是被测脉冲的频率,直接测频法的好处是可以通过改变门控信号的周期,从而提高测量的精度和频率的测量范围。计数的结果通过锁存器来锁存并通过译码电路译码,然后用七段数码管对被测频率值进行动态显示。

2.2设计方案比较

方案一:基于单片机实现八位十进制频率计字功能

利用AT89C51的内部定时计数器来对外部输入信号进行计数,从而达到测频的目的,这种方案,结构简单容易掌握,各部分电路实现起来都非常容易。其原理框图如图2-1所示:

3

西华大学课程设计说明书 电源供电电时钟电路 锁存器译码显示AT89C51

被测信号 图2-1单片原理实现框图

方案二:基于CPLD技术实现八位十进制频率计

通过Verilog HDL硬件描述语言编写代码的方式来实现八位十进制频率计数器功能。其框图如图2-2:

CPLD芯片 系统时电源电分频器 八位十进制计锁存器 下载电 译码器 七段数码管 动态显示电路 图2-2基于CPLD实现频率测量的框图

4

西华大学课程设计说明书 2.3方案论证

(1)方案一:使用单片机设计成的系统外围电路相对较少,硬件搭建相对容易。51单片机的价格低廉,性能可靠。但是,单片机的管脚十分有限,计算速度相对CPLD慢,内部数据存储器为字节存储,难以满足八位十进制计数器的存储需要。

(2)方案二:采用CPLD来设计八位十进制计数器,测量精度高,运行速度快,采用verilog语言模块化编程,大大缩减了外围的硬件电路,节约了硬件资源,而且方便进行软件调试。

2.4方案选择

由于本次课程设计题目为八位十进制频率计,要求可测的频率范围为0到100MHZ,所以运算速度快、精度高、性能可靠、可将外围器件通过编程来代替的CPLD芯片更符合要求。综合比较结合各方面的优劣势,并参考本次课程设计要求,我选择了基于CPLD器件来实现八位十进制频率计的设计方案。

3、单元模块设计

本设计由复杂可编程逻辑器件(CPLD)作为控制芯片,通过Vreilog HDL硬件描述语言设计,运用自顶而下的设计思想,按功能逐层分割实现层次化的设计。总体设计方案为由晶振电路提供时钟信号。然后对系统时钟分频产生控制信号如秒脉冲tgate,锁存信号ale,译码控制信号的dclk和显示使能信号d_en,位选信号lclk。在控制信号作用下,被测脉冲mclk通过八位十进制bcd加法计数器计数,计数值通过锁存器锁存,然后经过七段显示译码器译码后用数码管实现动态显示。下面介绍主要模块的功能及作用。

3.1分频模块

在分频模块中,系统时钟s_clk设定为2ms,经过1000分频后便可以产生周期为2s的闸门信号tgate,锁存信号ale,译码信号dclk,显示使能信号d_en,同时对系统时钟经过60分频便可以得到周期为125ms的位选切换信号。

3.1.1分频模块波形仿真图

图3-1-1分频模块功能仿真图

5

西华大学课程设计说明书 3.1.2分频模逻辑综合图

图3-1-2分频模块逻辑综合图

3.1.3分频模块verilog源代码

module div(tgate,s_clk,ale,dclk,d_en,lclk,); input s_clk;

output tgate,ale,dclk,d_en,lclk; reg tgate,ale,dclk,lclk,d_en; integer i,j;

always @(posedge s_clk) begin if(i==499)

begin tgate=~tgate;ale=~ale;dclk=~dclk;d_en=~d_en;i=0;end

6

西华大学课程设计说明书 else i=i+1; end

always @(posedge s_clk) else j=j+1; end endmodule

if(j==30)begin lclk=~lclk;j=0;end

3.2计数模块

该计数模块为十位八进制bcd加法计数器,clrn为清零信号,高电平有效,

q为计数值,tgate为高电平为1s的门控信号,仿真中设定被测脉冲周期为40ms,对其在1s钟内进行计数,计数结果q值显示为25。符合理论计算结果。

3.2.1计数模块功能仿真波形

图3-2-1计数模块功能仿真图

7

西华大学课程设计说明书 3.2.2计数模块逻辑综合图

3.2.3计数模块verilog源代码

module counter(clrn,mclk,q,tgate,cunt); input clrn,mclk,tgate; output [15:0]q,cunt; reg [15:0]q;

always @(posedge mclk ) begin

if(!clrn) q[15:0]=0; else if(tgate) begin

if(q[15:0]==16'H9999) q[15:0]=0;

else if(q[11:0]==12'H999) q[15:0]=q[15:0]+12'H667; else if(q[ 7:0]== 8'H99) q[15:0]=q[15:0]+8'H67;

else if(q[ 3:0]== 4'H9) q[15:0]=q[15:0]+4'H7; //十六进制转换为十进制。 else q[15:0]=q[15:0]+1; end else q=0; end

assign cunt=q; endmodule

8

图3-2-2分频模块逻辑综合图

西华大学课程设计说明书

3.3锁存模块

在锁存模块locker中,采用ale信号的下降沿对计数模块的计数结果进行锁存,锁存时间由ale的周期确定,在仿真中将输入值din设定为随机值,ale设定为周期为2s的方波,qout为锁存结果输出端,输出端结果在ale下降沿到来时刻改变,其余时刻保持为锁存状态。

3.3.1锁存模块功能仿真波形

图3-3-1计数模块功能仿真图

3.3.2锁存模块逻辑综合图

图3-3-2计数模块功能仿真图

9

西华大学课程设计说明书 3.3.1锁存模块verilog源代码

module locker(ale,din,qout,qou); input ale; //锁存脉冲,下降沿有效。 input[31:0] din; //锁存值输入。 output[31:0] qout; //锁存值。 output[31:0] qou; reg[31:0] qout; reg[31:0] qou;

always @(negedge ale) begin if(!ale) begin qout=din; qou=qout; end else

qout=qout; qou=qout; end

endmodule

3.4七段译码模块

七段译码模块,译码脉冲来自dclk,上升沿由效,上升沿到来时,便根据输入

的4位bcd码,输出相应的七段显示码,比如输入的为0001(十进制数1),在dclk下降沿到来时dout输出七段码11111001(即数码管显示1)。

3.4.1七段一码模块功能仿真波形

图3-4-4计数模块功能仿真图

10

西华大学课程设计说明书 3.4.2七段译码模块逻辑综合图

图3-4-2计数模块功能仿真图

3.4.3七段一码模块代码源程序

module decord(din,dout,dclk); input[3:0] din; input dclk;

output[7:0] dout; reg[7:0] dout;

always @(posedge dclk) case(din)

4'b0000:

begin dout=8'b1100_0000;end 4'b0001:

begin dout=8'b1111_1001;end 4'b0010:

begin dout=8'b1010_0100;end 4'b0011:

begin dout=8'b1011_0000;end 4'b0100:

11

西华大学课程设计说明书 begin dout=8'b1001_1001;end 4'b0101:

begin dout=8'b1001_0010;end 4'b0110:

begin dout=8'b1000_0010;end 4'b0111:

begin dout=8'b1111_1000;end 4'b1000:

begin dout=8'b1000_0000;end 4'b1001:

begin dout=8'b1001_1000;end 4'b1010:

begin dout=8'b1000_1000;end 4'b1011:

begin dout=8'b1000_0011;end 4'b1100:

begin dout=8'b1100_0110;end 4'b1101:

begin dout=8'b1010_0001;end 4'b1110:

begin dout=8'b1000_0110;end 4'b1111:

begin dout=8'b1000_1110;end endcase endmodule

3.5数码管显示模块

该模块将译码模块译码结果作为输入送到输入端ledin,然后再使能信号d_en

(周期为2s)高电平有效,在d_en有效的情况下依次将输入值送到输出端口ledout,并改变位选输出值switch,从而实现数码管的动态显示,比如ledin输入值设定为随机值

8‘h904FDEF528BC8898,在d_en有效,并且lclk的第一个上升沿到来时,把98h送到ledout,并将switch赋值为FE,从而使第一个数码管显示98h 所代表的段码值,第二个上升沿到来时把88h送到ledout,switch赋值为FD,从而使第二个数码管显示88h所代表的段码值,依次类推,便可以对八个数码管进行动态显示了。

12

西华大学课程设计说明书 3.5.1数码管显示模块功能仿真波形图

图3-5-1显示模块功能仿真图

3.5.2数码管显示模块综合图

图3-5-2显示模块逻辑综合图

13

西华大学课程设计说明书 3.5.3数码管显示模块源代码

module display(ledin,ledout,lclk,switch,d_en); input lclk,d_en; input[63:0] ledin;

output[7:0] ledout,switch; reg[7:0] ledout,switch; integer num1,num2; always @(posedge lclk) if(d_en) case (num1)

0:begin num1<=1;switch=8'hfe;end 1:begin num1<=2;switch=8'hfd;end 2:begin num1<=3;switch=8'hfb;end 3:begin num1<=4;switch=8'hf7;end 4:begin num1<=5;switch=8'hef;end 5:begin num1<=6;switch=8'hdf;end 6:begin num1<=7;switch=8'hbf;end 7:begin num1<=0;switch=8'h7f;end endcase

else begin switch=0;end always @(switch) case(switch) 8'h00:ledout=0;

8'hfe:ledout=ledin[7:0]; 8'hfd:ledout=ledin[15:8]; 8'hfb:ledout=ledin[23:16]; 8'hf7:ledout=ledin[31:24]; 8'hef:ledout=ledin[39:32]; 8'hdf:ledout=ledin[47:40]; 8'hbf:ledout=ledin[55:48]; 8'h7f:ledout=ledin[63:56]; endcase endmodule

14

西华大学课程设计说明书 4、软件实现

4.1软件实现方法

采用quartus 2软件进行设计,使用verilog语言进行模块化编程,自上而下按功

能模块分层实现各个模块的功能,在顶层模块中调用子模块,从而实现系统的整体功能。

4.1.1 软件实现步骤框图

设计输入 编译,链接 修改设计 仿真与定时分析 编程 在线调试

图4-1-1软件实现步骤框图

4.2软件设计

4.2.1 顶层模块程序如下:

module mainton(mclk,ledout,switch,qou,s_clk,clrn,tgate0); input mclk,s_clk,clrn; output[7:0] ledout,switch; output tgate0;

15

西华大学课程设计说明书 wire[7:0] p0,p1,p2,p3,p4,p5,p6,p7; output[31:0] qou; wire[31:0] q; wire[31:0] qout;

wire ale,dclk,tgate,d_en,lclk;

div d(.tgate(tgate),.s_clk(s_clk),.ale(ale),

.dclk(dclk),.d_en(d_en),.lclk(lclk),.tgate0(tgate0));

counter c(.clrn(clrn),.mclk(mclk),.tgate(tgate),.q(q),.cunt(cunt)); locker lck(.ale(ale),.din(q),.qout(qout),.qou(qou)); decord d0(.din(qout[3:0]),.dout(p0),.dclk(dclk)); decord d1(.din(qout[7:0]),.dout(p1),.dclk(dclk)); decord d2(.din(qout[11:8]),.dout(p2),.dclk(dclk)); decord d3(.din(qout[15:12]),.dout(p3),.dclk(dclk)); decord d4(.din(qout[19:16]),.dout(p4),.dclk(dclk)); decord d5(.din(qout[23:20]),.dout(p5),.dclk(dclk)); decord d6(.din(qout[27:24]),.dout(p6),.dclk(dclk)); decord d7(.din(qout[31:28]),.dout(p7),.dclk(dclk)); display t(.ledin({p0,p1,p2,p3,p4,p5,p6,p7})

,.ledout(ledout),.lclk(lclk),.switch(switch),.d_en(d_en)); endmodule

16

西华大学课程设计说明书 4.2.2 顶层模块结构图

图4-2-2顶层显示模块逻辑综合图

5、系统仿真及调

5.1顶层模块仿真及调试

通过QuartusII软件,我们对顶层模块进行了仿真,其仿真波形如图5-1-1所示。

图5-1-1顶层模块波形仿真图

17

西华大学课程设计说明书 由设计要求可知,由0.5KHZ的系统时钟s_clk经过1000分频后产生的门控信号tgate0为0.5HZ,即高电平有效时间为1s,tgate0波形如图5-1所示。被测脉冲mclk设定为1KHZ,经过计数模块和所存模块后,锁存器输出值qou为00001000,即频率为1000HZ,与理论计算值一致。最后频率值经过译码模块后通过数码管进行动态显示。波形仿真图中的switch代表位选信号,即选中哪一个数码管亮,ledout代表显示的七段码,即数码管显示的什么内容,比如在switch为0xfe时选中第一个数码管,并将显示码11000000(代表显示0)通过ledout送给第一个数码管显示。由波形图分析可知,数码管最终显示的内容为00001000,与理论频率值一致。

在程序的调试过程中,我发现了自己存在很多问题,也收获了不少的知识,主要有以下几点:

(1)由于先前对硬件描述语言代码的编写不够熟悉,所以在使用过程中经常编译报错;经查找资料、和同学讨论、询问老师后了解到了错误的原因。

(2)在设置顶层文件和建立工程时,必须要设置好相关的配置。并且选择合适的芯片,还要设置好END TIME和GRID SIZE参数,更要注意仿真的文件设置成顶层文件和时钟设置等等。

(3在程序调试过程中,由于不规范的编写,总是编译失败。经逐条语句分析调试后发现往往只是其中一个数据的类型设置错误,修改以后解决了该错误,并对程序编写有了更深刻的认识和理解。

(4在波形文件仿真中,时钟和输入设置等信号一般不要设置成特殊的情况,有可能造成看不到正确的仿真波形和时序图。在仿真状态寄存器的波形图时就出现了看不到正确时序图的情况,经分析查找后发现是由于时钟和输入设置成了特殊情况,并没有仿真出所有可能发生的情况。

(5)用硬件描述语言的方法和画原理图的方法都可实现同样逻辑功能的电路出来,但是二者各有优缺点。原理图直观明了,但画复杂的电路不易实现。用硬件语言描述复杂的逻辑功能电路则比较易于实现,但是不如原理图直观,编写时容易出现逻辑混乱的情况。

6、总结

6.1设计小结

本次设计中,我们成功完成本系统设计所要求的八位十进制频率计的测频功能。在设计开始前我们就系统整体框架和各个模块功能进行了详细的分析和设计准备工作,设计过程中,我们相互协调,积极参与讨论,最终克服了所有遇到的技术难点。本设计要求用CPLD控制字符液晶实现字符的显示,通过对CPLD的功能分析和搭建CPLD外围电路,我们认识到了CPLD的强大功能。

18

西华大学课程设计说明书 6.2设计收获

通过本次设计,我们在对EDA这门技术上有了更深刻的认识,也在实践过程中感受到了EDA设计给我们设计带来的方便。在这个过程中,我们不仅比较熟练地掌握了QuartusII软件的使用,与此同时,我们还对电子设计的思路有了更清晰的认识。通过对EDA设计我们更深入的了解了可编程逻辑器件的各个功能,也从中学到了很多电子电路设计方面的知识,为我们以后从事设计工作打下了一定的基础,虽然设计的系统不算完美,但是我确信自己努力认真了,从中学到了知识、开阔了眼界,这也是课程设计真正目的所在。

6.3设计改进

由于自身能力有限,学到的知识不多,本次八位十进制频率计的设计仅仅是完成了一些基本的功能,如计数,锁存,译码和显示,在实际的频率测量中,信号在进入计数器之前应该先经过放大整形电路,将信号转化为标准的矩形波,如果信号的频率太大,还得要考虑是否要先对被测频率进行分频,从而使得测量结果更加精确稳定,更具说服力,频率计作为一种测量仪器应该有自动换挡的功能,从而才能方便使用。另一方面,显示可以采用液晶显示,从而使显示的效果更加的美观。

6.4 致谢

我们小组能够完成这次课程设计,首先要感谢老师耐心细致的为我们分析题目,提供解决方案,如果没有老师的悉心指导,我们的课程设计也不会进展的如此顺利,并最终实现各个功能。此外还要感谢我的组员们,和他们一起思考问题,摸索quartus软件的使用方法,仿真方法等。通过和他们一起思考,讨论分析问题,我受到很大的启发,理解到团队协作的重要性。

7 、参考文献

[1] 谢自美. 电子线路设计(第二版)[M]. 华中科技大学出版社. 2000 [2] 张毅刚. 单片机原理及应用[M].北京.高等教育出版社.2010

[3] 谈世哲. Protel DXP 2004 电路设计基础与典型范例[M].北京.电子工业出版社.2007

[5] 卢毅编著.VHDL与数字电路设计[M].北京.科技大学出版.2001

[6] 康华光 陈大钦. 电子技术基础模拟部分(第四版)[M]. 高等教育出版社.1987 [7] 张洪润等. 电子线路及应用. 北京.科学出版社. 2002 [8] 杨宝清. 实用电路手册. 北京. 机械工业出版社. 2002

[9] 杨恒等编.FPGA/CPLD最新实用技术指南[M].清华大学出版社.2005年

[10] 陈赜主编.CPLD/FPGA与ASIC设计实践教程[M].科学出版社. 2005年

19

西华大学课程设计说明书

20

本文来源:https://www.bwwdw.com/article/v55o.html

Top