课程设计题目:
EDA流水灯设计
姓 名:简讯
学 号: 09325210 专 业: 电子信息工程 班 级: 093252 指导教师: 黄 河
2012年 11月9日
目 录
一 设计任务与要求 ·········································································· 2 二 设计的基本内容 ·····························································································2 三 EDA和verilog简介 ······································································ 3
3. 1 EDA简介··············································································· 3 3. 2 verilog简介 ·····························································································4 3. 3 verilog硬件描述语言的主要能力 ···················································4 四 设计过程 ····················································································· 6 4.1程序设计 ·················································································· 6 4.2程序分析·······································································································7 4.3设计电路图 ··································································································8 4. 4仿真结果与分析························································································9 五 心得体会 ····················································································· 10 六 参考文献 ····················································································· 11
一.设计任务与要求
随着大规模集成电路技术和EDA技术的迅速发展,使得数字系统的硬件设计如同软件设计那样方便快捷,而Verilog HDL 是当前应用最广泛的并成为IEEE标准的一种硬件描述语言。Verilog HDL是在C语言的基础上演化而来,具有结构清晰、文法简明、功能强大、高速模拟和多库支持等优点。此次课程设计通过使用Verilog HDL硬件描述语言设计了一个程序,使得流水灯可以根据自己所期望的方式点亮,并能在、Quartus II进行仿真测试,得出出仿真结果。通过课程设计深入理解VHDL语言的精髓,加深对数字电路和VHDL基本单元的理解,理论联系实际,提高设计能力,提高分析、解决计算机技术实际问题的独立工作能力。
二.设计的基本内容
此次课程设计是对流水灯的设计,通过在verilog HDL中书写程序,实现八盏流水灯点亮,点亮方式首先八盏灯从左到右循环点亮,再奇数个点亮,偶数个点亮,再1,2灯;3,4灯;5,6灯,7,8灯依次点亮,再1,2,3,4灯,5,6,7,8灯依次点亮,总共十六个不同状态,转换为二进制表示为:
l0=1;l1=0;l2=0;l3=0;l4=0;l5=0;l6=0;l7=0; l0=0;l1=1;l2=0;l3=0;l4=0;l5=0;l6=0;l7=0; l0=0;l1=0;l2=1;l3=0;l4=0;l5=0;l6=0;l7=0; l0=0;l1=0;l2=0;l3=1;l4=0;l5=0;l6=0;l7=0; l0=0;l1=0;l2=0;l3=0;l4=1;l5=0;l6=0;l7=0; l0=0;l1=0;l2=0;l3=0;l4=0;l5=1;l6=0;l7=0; l0=0;l1=0;l2=0;l3=0;l4=0;l5=0;l6=1;l7=0; l0=0;l1=0;l2=0;l3=0;l4=0;l5=0;l6=0;l7=1; l0=1;l1=0;l2=1;l3=0;l4=1;l5=0;l6=1;l7=0; l0=0;l1=1;l2=0;l3=1;l4=0;l5=1;l6=0;l7=1; l0=1;l1=1;l2=0;l3=0;l4=0;l5=0;l6=0;l7=0; l0=0;l1=0;l2=1;l3=1;l4=0;l5=0;l6=0;l7=0; l0=0;l1=0;l2=0;l3=0;l4=1;l5=1;l6=0;l7=0; l0=0;l1=0;l2=0;l3=0;l4=0;l5=0;l6=1;l7=1; l0=1;l1=1;l2=1;l3=1;l4=0;l5=0;l6=0;l7=0; l0=0;l1=0;l2=0;l3=0;l4=1;l5=1;l6=1;l7=1;
其中10~17表示的是八盏流水灯的代号。
三.EDA和verilog简介
3.1 EDA简介
EDA是电子设计自动化(Electronic Design Automation)缩写,是90年代初从CAD(计算机辅助设计)、CAM(计算机辅助制造)、CAT(计算机辅助测试)和CAE(计算机辅助工程)的概念发展而来的。EDA技术是以计算机为工具,根据硬件描述语言HDL( Hardware Description language)完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局布线、仿真以及对于特定目标芯片的适配编译和编程下载等工作。典型的EDA工具中必须包含两个特殊的软件包,即综合器和适配器。综合器的功能就是将设计者在EDA平台上完成的针对某个系统项目的HDL、原理图或状态图形描述,针对给定的硬件系统组件,进行编译、优化、转换和综合,最终获得我们欲实现功能的描述文件。综合器在工作前,必须给定所要实现的硬件结构参数,它的功能就是将软件描述与给定的硬件结构用一定的方式联系起来。也就是说,综合器是软件描述与硬件实现的一座桥梁。综合过程就是将电路的高级语言描述转换低级的、可与目标器件FPGA/CPLD相映射的网表文件。
基于EDA工具的FPGA/CPLD开发流程:开发步骤: 1、 文本/原理图编辑与修改。首先利用EDA工具的文本或图形编辑器将设计者的设计意图用文本(ABEL-HDL程序)或图形方式(原理图或状态图)表达出来。 2、 编译。完成设计描述后即可通过编译器进行排错编译,变成特定的文本格式,为下一步的综合做准备。 3、 综合。这是将软件设计与硬件的可实现性挂钩,是将软件转化为硬件电路的关键步骤。综合后HDL综合器可生成ENIF、XNF或VHDL等格式的网表文件,他们从门级开始描述了最基本的门电路结构。4、 行为仿真和功能仿真。利用产生的网表文件进行功能仿真,以便了解设计描述与设计意图的一致性。(该步骤可以略去)5、适配。利用FPGA/CPLD布局布线适配器将综合后的网表文件针对某一具体的目标器件进行逻辑映射操作,其中包括底层器件配置、逻辑分割、逻辑优化、布局布线。该操作完成后,EDA软件将产生针对此项设计的适配报告和JED下载文件等多项结果。适配报告指明了芯片内资源的分配与利用、引脚锁定、设计的布尔方程描述情况。6、 功能仿真和时序仿真。该不妨真实接近真实器件运行的方针,仿真过程已将器件的硬件特性考虑进去了,因此仿真精
度要高的多。(该步骤也可略去)7、 下载。如果以上的所有过程都没有发现问题,就可以将适配器产生的下载文件通过FPGA/CPLD下载电缆载入目标芯片FPGA或CPLD中。8、 硬件仿真与测试。
3.2 verilog简介
Verilog HDL就是在用途最广泛的C语言的基础上发展起来的一种硬件描述语言,它是由GDA(Gateway Design Automation)公司的PhilMoorby在1983年末首创的,最初只设计了一个仿真与验证工具,之后又陆续开发了相关的故障模拟与时序分析工具。1985年Moorby推出它的第三个商用仿真器Verilog-XL,获得了巨大的成功,从而使得Verilog HDL迅速得到推广应用。1989年CADENCE公司收购了GDA公司,使得VerilogHDL成为了该公司的独家专利。1990年CADENCE公司公开发表了Verilog HDL,并成立LVI组织以促进Verilog HDL成为IEEE标准,即IEEE Standard 1364-1995.
3.3 verilog硬件描述语言的主要能力:
1. 基本逻辑门,例如and、or和nand等都内置在语言中。 2. 用户定义原语( UDP)创建的灵活性。用户定义的原语既可以是组合逻辑原语,也可以是时序逻辑原语。
3.开关级基本结构模型,例如pmos 和nmos等也被内置在语言中。 4.提供显式语言结构指定设计中的端口到端口的时延及路径时延和设计的时序检查。
5.可采用三种不同方式或混合方式对设计建模。这些方式包括:行为描述方式—使用过程化结构建模;数据流方式—使用连续赋值语句方式建模;结构化方式—使用门和模块实例语句描述建模。
6. Verilog HDL中有两类数据类型:线网数据类型和寄存器数据类型。线网类型表示构件间的物理连线,而寄存器类型表示抽象的数据存储元件。 7.能够描述层次设计,可使用模块实例结构描述任何层次。
8.设计的规模可以是任意的;语言不对设计的规模(大小)施加任何限制。
9.Verilog HDL不再是某些公司的专有语言而是IEEE标准。 10.人和机器都可阅读Verilog 语言,因此它可作为EDA的工具和设计者之间的交互语言。
11.Verilog HDL语言的描述能力能够通过使用编程语言接口(PLI)机制进一步扩展。PLI是允许外部函数访问Verilog 模块内信息、允许设计者与模拟器交互的例程集合。
12.设计能够在多个层次上加以描述,从开关级、门级、寄存器传送级( RTP)到算法级,包括进程和队列级。
13.能够使用内置开关级原语在开关级对设计完整建模。
14.同一语言可用于生成模拟激励和指定测试的验证约束条件,例如输入值的指定。
15.Verilog HDL 能够监控模拟验证的执行,即模拟验证执行过程中设计的值能够被监控和显示。这些值也能够用于与期望值比较,在不匹配的情况下,打印报告消息。
16.在行为级描述中, Verilog HDL不仅能够在RT L级上进行设计描述,而且能够在体系结构级描述及其算 法级行为上进行设计描述。 17.能够使用门和模块实例化语句在结构级进行结构描述。
18.在Verilog HDL 的混合方式建模能力,即在一个设计中每个模块均可以在不同设计层次上建模。
19.Verilog HDL 还具有内置逻辑函数,例如&(按位与)和|(按位或)。
四.设计过程
4.1 程序设计
module light(clk,l0,l1,l2,l3,l4,l5,l6,l7); input clk;
output reg l0,l1,l2,l3,l4,l5,l6,l7; reg[3:0] shu;
always @(posedge clk) begin if(shu==15) shu<=0; else shu<=shu+1; case(shu)
4'b0000:begin l0=1;l1=0;l2=0;l3=0;l4=0;l5=0;l6=0;l7=0;end 4'b0001:begin l0=0;l1=1;l2=0;l3=0;l4=0;l5=0;l6=0;l7=0;end 4'b0010:begin l0=0;l1=0;l2=1;l3=0;l4=0;l5=0;l6=0;l7=0;end 4'b0011:begin l0=0;l1=0;l2=0;l3=1;l4=0;l5=0;l6=0;l7=0;end 4'b0100:begin l0=0;l1=0;l2=0;l3=0;l4=1;l5=0;l6=0;l7=0;end 4'b0101:begin l0=0;l1=0;l2=0;l3=0;l4=0;l5=1;l6=0;l7=0;end 4'b0110:begin l0=0;l1=0;l2=0;l3=0;l4=0;l5=0;l6=1;l7=0;end 4'b0111:begin l0=0;l1=0;l2=0;l3=0;l4=0;l5=0;l6=0;l7=1;end 4'b1000:begin l0=1;l1=0;l2=1;l3=0;l4=1;l5=0;l6=1;l7=0;end 4'b1001:begin l0=0;l1=1;l2=0;l3=1;l4=0;l5=1;l6=0;l7=1;end 4'b1010:begin l0=1;l1=1;l2=0;l3=0;l4=0;l5=0;l6=0;l7=0;end 4'b1011:begin l0=0;l1=0;l2=1;l3=1;l4=0;l5=0;l6=0;l7=0;end
4'b1100:begin l0=0;l1=0;l2=0;l3=0;l4=1;l5=1;l6=0;l7=0;end 4'b1101:begin l0=0;l1=0;l2=0;l3=0;l4=0;l5=0;l6=1;l7=1;end 4'b1110:begin l0=1;l1=1;l2=1;l3=1;l4=0;l5=0;l6=0;l7=0;end 4'b1111:begin l0=0;l1=0;l2=0;l3=0;l4=1;l5=1;l6=1;l7=1;end endcase end endmodule
4.2 程序分析
从程序input clk;中可看出由时钟CLK输入,从output reg
l0,l1,l2,l3,l4,l5,l6,l7; 中可看出10~17代表的是八盏灯即为输出,然后定义一个16位的二进制数,每一个数用来表示八盏灯的一种状态,从程序中可看出流水灯点亮的状态是:首先八盏灯从左到右循环点亮,再奇数个点亮,偶数个点亮,再1,2灯;3,4灯;5,6灯;7,8灯依次点亮,再1,2,3,4灯;5,6,7,8灯依次点亮,总共十六个不同状态,和设计时所想的相同。从程序中可看出是灯点亮就写“1”,所以可以通过修改二进制状态来使灯以任何方式显示,也可以通过增加输出的量模拟增加灯的数量,还可以改变状态的个数,例将程序reg[3:0] shu;改为reg[4:0] shu;便有32种亮灯状态,但程序中的begin if(shu==15) shu<=0改为 begin if(shu==31) shu<=0和4'b0000改为5'b00000等。
4.3 设计电路图
在菜单中点击tool~netlist viewers~RTL便可得到电路图
4.4 仿真结果与分析
仿真包括时序仿真和功能仿真从图中可分别看出。不考虑信号时延等因素的仿真称为功能仿真。时序仿真是在选择具体器件并完成布局布线后进行的包含延时的仿真。从波形图中我们可以清楚的看到效果,即首先八盏灯从左到右循环点亮,再奇数个点亮,偶数个点亮,再1,2灯;3,4灯;5,6灯;7,8灯依次点亮,再1,2,3,4灯;5,6,7,8灯依次点亮,总共十六个不同状态,且灯亮时显示为高电平。
五.心得体会
通过本次课程设计,我基本对FPGA的设计流程有了入门的了解和认识,在课堂之外进一步加深了对EDA课程各知识点的学习和以及quartusII软件开发平台的操作。也深深地感受到,工科的学习是来不得半点虚伪的,一定要自己动手操作,不懂就是不懂。对于程序的编写过程其实就是一个改错的过程,通过改错就会发现自己只是的不足。做课程设计的过程也是一个升华自我耐心的机会,不能因为一时找不到方法就放弃。课程设计与此同时也让我加深强了对课题的专业知识的认识和对专业文件检索能力。在短短的一周左右的时间里,我们经过自己的努力编写了VHDL流失灯系统。
因为是初学VHDL硬件描述语言,因此我们在做的过程中,尽量以简单的思维方法去实现。过去我们主要学习的C等顺序执行的语言,但是面对硬件描述语言,一方面,我们希望借助过去学习过的c语言的一些思想对我们VHDL程序设计进行帮助,另一方面,我们又希望能够掌握并行控制的状态机的编写。
在程序编写的过程中,我们遇到很多困难,但是我们没有放弃,经过多次改进,本设计实现了流失灯的基本功能,流失灯的运行情况完全符合设想,灯变化合情合理。本次流失灯的设计采用VHDL语言,源程序经Quartus软件仿真。本设计代码具有良好的可读性和可移植性,运用了有限状态机的设计方法,使得它灵活、简单、运算速度快、可靠性高,并且此设计具有良好的扩展性。
我们总结,首先要学会使用图书馆等网络资源,当我们编写程序遇到一
些无法理解得错误时,我们最终都可以从网络上找到前人的经验和教训。因此不能闭门造车,要多学习别人的经验和教训。其次是在编写程序之前要有一个清晰的框架,自己要实现哪些功能,以及要实现哪些功能得需要哪些方法来实现,只有在自己脑子里有一个很清晰的框架之后,然后再进行编写,编写一个完整的程序是需要一定的时间去思考调试的。只要努力花时间,静下心来找出程序的错误,改进不足之处,最后一定能够编写出一个满意的程序。
六.参考文献
[1]王金明.数字系统设计与VerilogHDL[M].北京:电子工业出版社,2006:285-294.
[2]栾佳明、张秀娟.基于FPGA可调信号发生器的设计.Electronic Design Engineering,2010第5期
[3]黄乡生等.基于DDS和FPGA的数字函数发生器的设计和实现.东华理工大学学报(自然科学版)2009第4期
东华理工大学长江学院 课程设计评分表
学生姓名: 简讯 班级: 093252 学号:09325210 课程设计题目:EDA流水灯设计 项目内容 能结合所学课程知识、有一定的能力训练。符合选题要求 (6人一题) 工作量适中,难易度合理 能熟练应用所学知识,有一定查阅文献及运用文献资料能力 能 力 水 平 理论依据充分,数据准确,公式推导正确 能应用计算机软件进行调试、资料搜集录入、加工、排版、制图等 能体现创造性思维,或有独特见解 满分 10 10 10 10 10 10 10 10 10 10 100 实 评 选 题 成 果 质 量 总体设计正确、合理,各项技术指标符合要求。 说明书综述简练完整,概念清楚、立论正确、技术用语准确、结论严谨合理;分析处理科学、条理分明、语言流畅、结构严谨、版面清晰 设计说明书栏目齐全、合理,符号统一、编号齐全。 格式、绘图、表格、插图等规范准确,符合国家标准 有一定篇幅,字符数不少于5000 总 分 指导教师签名: 指导教师评语: 年 月 日
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- banwoyixia.com 版权所有 湘ICP备2023022004号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务