课程设计(论文)EDA技术在航空设备综合智能检测仪中的应用.doc

上传人:laozhun 文档编号:2990415 上传时间:2023-03-07 格式:DOC 页数:24 大小:1.07MB
返回 下载 相关 举报
课程设计(论文)EDA技术在航空设备综合智能检测仪中的应用.doc_第1页
第1页 / 共24页
课程设计(论文)EDA技术在航空设备综合智能检测仪中的应用.doc_第2页
第2页 / 共24页
课程设计(论文)EDA技术在航空设备综合智能检测仪中的应用.doc_第3页
第3页 / 共24页
课程设计(论文)EDA技术在航空设备综合智能检测仪中的应用.doc_第4页
第4页 / 共24页
课程设计(论文)EDA技术在航空设备综合智能检测仪中的应用.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《课程设计(论文)EDA技术在航空设备综合智能检测仪中的应用.doc》由会员分享,可在线阅读,更多相关《课程设计(论文)EDA技术在航空设备综合智能检测仪中的应用.doc(24页珍藏版)》请在三一办公上搜索。

1、EDA技术在航空设备综合智能检测仪中的应用摘要:航空设备综合检测仪必须有一个和所有设备均能相互连接的复用接口,通常该借口的控制电路由传统的集成电路组成,因此带来的体积大、成本高,可靠性差的特性。所以我们要设计一个复用新型的接口来代替传统的借口,该借口具有体积小,成本小,较为可靠的复用借口。我们采用FPGA在该复用借口的设计中,大大缩短了系统的设计周期,降低了开发成本,编程调试变的更为方便,可靠性得到很大程度上的提高。在实际编程是在Quartus II上编写及软件上的调试,然后通过数据线的连接在实验室上的系统箱进行硬件调试的。我们采用先进行VHDL的设计输入,然后进行波形仿真,最后在试验箱上调试

2、得到和软件仿真一样的结果。较好的实现了复用接口的最初的设计要求。关键词:综合智能检测仪 复用借口 集成电路 VHDL Quartus II目录1 FPGA及Quartus II的简介 1.1 什么是FPGA(6) 1.2 FPGA的结构(6) 1.3 FPGA设计步骤(7) 1.4 硬件描述语言VHDL(8) 1.5 Quartus II简介 (9) 2 系统的设计要求及组成 2.1 系统的设计要求(10) 2.2 系统的组成(11)3 实验方案及选择 3.1 实验方案的选择(11) 3.2 实验功能框图(11) 4 功能的设计4.1 四位并转串(12)4.2 四位串转并 (13)4.3 八位

3、并转串 (15)4.4八位串转并 (16)4.5 十六位并转串 (18)4.6 十六位串转并 (19)4.7 分频器的设计 (21)5软件仿真及分析5.1 顶层模块(22)5.2 仿真波形的分析 (23)6 硬件组装测试(23)7 实验总结(24)8 参考文献(24)9 致谢(25)EDA技术在航空设备综合智能检测仪中的应用引言长期以来,外围设备与主机CPU速度之间的不匹配始终困扰着人们,影响了计算机系统更迅速的发展。随着计算机处理能力及存储规模的迅速增长,这个问题表现得更加突出。虽然已经采取了各种软、硬件的方法,不断地改善着CPU与I/O设备之间的接口性能。然而,在许多应用中接口问题依然是制

4、约系统性能的瓶颈。对于特定的设计,设计者面对纷繁芜杂的接口标准,一般根据系统所需的成本及功能选择合适的标准产品,这可能导致接口标准冲突和引起互用性问题;或许新选择与接口兼容的标准器件,但又可能会造成不满足功能需要或成本要求等。随着电子技术的发展,特别是专用集成电路(ASIC)设计技术的日趋完善,数字化的电子自动化设计(EDA)工具给电子设计带来了巨大变革,尤其是硬件描述语言的出现,解决了传统电路原理图设计系统工程的诸多不便。随着ASIC技术、EDA技术的不断完善和发展以及VHDL、HDL等通用性好、移植性强的硬件描述语言的普及,FPGA等可编程逻辑器件必将在现代数字应用系统中得到广泛的应用,发

5、挥越来越重要的作用。FPGA技术的迅速发展使得接口问题有了好的解决方案。例如,现有的高性能接口IP及高速物理I/O的FPGA,可满足10Gb/s以上的通信系统的要求;而且用FPGA解决接口不兼容器件间的通信问题。因此本文将提出一种新的基于FPGA的复用接口设计方法。1、FPGA及Quartus II简介1.1 什么是FPGA FPGA(FieldProgrammable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电

6、路数有限的缺点。目前以硬件描述语言(Verilog 或 VHDL)所完成的电路设计,可以经过简 单的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC 设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flipflop)或者其他更加完整的记忆块。 系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所

7、以FPGA可以完成所需要的逻辑功能。 FPGA一般来说比ASIC(专用集成芯片)的速度要慢,无法完成复杂的设计,而且消耗更多的电能。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差的FPGA。因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。另外一种方法是用CPLD(复杂可编程逻辑器件备)。1.2 FPGA的结构目前主流的FPGA仍是基于查找表技术的,已经远远超出了先前版本的基本性能,并且整合了常用功能(如RAM、时钟管理和DSP)的硬核(ASIC型

8、)模块。FPGA芯片主 要由7部分完成,分别为:可编程输入输出单元(IOB)、基本可编程逻辑单元(CLB)、完整的时钟管理(DCM)、嵌入块式RAM(BRAM)、丰富的布线资源、内嵌的底层功能单元和内嵌专用硬件模块。图1-1 FPGA芯片内部结构1.3 FPGA设计步骤FPGA 设计流程包括系统设计和设计实现, 系统方案完成之后即进入设计实现阶段的工作, 它以系统方案为输入, 进行RTL 级描述、功能仿真(RTL 级仿真)、逻辑综合、布线前门级仿真、适配(布局布线)、时序仿真(布线后门级仿真)、时序分析、器件编程、系统验证一系列流程的处理才能完成FPGA芯片的设计, 其设计流程如下图 所示。需

9、要说明的是, 如果仿真验证不对或者到走某一步有错, 就要返回修改。有必要检查和原理图或者HDL 设计代码的修改最多也最有效。修改后要重新走一遍流程。有时修改的地方有RTL 级描述、系统方案、约束和测试激励等。一般情况下, 对RTL 级的描述即要反复修改, 经过多次这样的迭代才能完成最后的设计。图1-2 FPGA设计流程图1.4、硬件描述语言VHDLVHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言 。VHDL的英文全写是:VHSIC(Very High Speed Integrated

10、 Circuit)Hardware Description Language.翻译成中文就是超高速集成电路硬件描述语言。因此它的应用主要是应用在数字电路的设计中。目前,它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。当然在一些实力较为雄厚的单位,它也被用来设计ASIC.VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及

11、实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。VHDL具有以下特点:1、功能强大、设计灵活2、支持广泛,易于修改3、强大的系统硬件描述能力4、独立于器件设计,与工艺无关5、很强的移植能力6、易于共享和复用1.5、Quartus II简介Quartus II 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器

12、以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。图1-3 Quartus II 设计流程图1-4 Quartus II 图形用户界面的功能2、系统的设计要求及组成2.1系统的设计要求EDA技术在航空设备综合智能检测仪中的应用,航空设备综合检测仪必须有一个和所有设备均能相互连接的复用接口,通常该借口的控制电路由传统的集成电路组成,因此带来的体积大、成本高,可靠性差的特性。所以我们要设计一个复用新型的

13、接口来代替传统的借口,该借口具有体积小,成本小,较为可靠的复用借口。我们采用FPGA在该复用借口的设计中,大大缩短了系统的设计周期,降低了开发成本,编程调试变的更为方便,可靠性得到很大程度上的提高。在实验中采用了硬件描述语言VHDL,他可以用来进行各种级别的逻辑设计,可以用来进行数字逻辑系统的仿真验证、时序分析和逻辑综合等,应用十分广泛。本文使用VDHL设计复用接口模块,实现接口复用的通用结构。2.2系统的组成被测设备:输入被检测的数据FPGA复用接口芯片控制开关:实现各接口的切换LED灯发光:显示所按键液晶显示器:显示操作说明及测试结果微机系统:处理发送过来的数据打印机:打印测试结果图2-1

14、 系统的结构框图3、实验方案及选择3.1实验方案的选择方案有两个:一个是传统的集成电路,一个是用VDHL描述的语言,设计一个基于FPGA的复用借口传统的集成电路设计出的接口体积大,成本高,可靠性比较低。用FPGA设计出的借口可以实现体积小,可靠性高,而且设计周期短,可以实现工业的自动化生产,大幅度减少成本。经过认真的比较分析,我们选择第二个方案。3.2实验功能框图我们的最终的实验功能框图如下串行输 出并行输 出4位并转串模块4位串转并8位并转串模块8位串转并16位串转并16位并转串图3-1实验功能框图4、功能的设计我们在这个实验中设计要是实现串行数据和并行数据的转换。我们的设计是在一块电路板上

15、实现4位、8位、16位的串行数据和并行数据之间互相的转换。4.1 四位并转串首先要有一个时钟来控制电路,然后有一个数据输入口,还有一个分频器(这个是并行转串行所特有的,串行转并行则没有)。假如是串行输入、并行输出,则数据输入口输入一串串行数据,经过电路转换为并行输出。反之则亦然。例如4位并行输入,一位串行输出,其实验原理框图如下:四分频器数据并行输入端口串并转换器数据串行输出端口图4-1-1 四位并转串实验框图在Quartus II软件上把实验程序编写好之后进行调试,先编写各个小模块的程序,然后在连接起来,这样找错误比较方便。例如我们上面提到的是四位并行输入转为串行输出的程序代码如下:libr

16、ary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity bc4_1 is /实体bc4_1port(clk:in std_logic; /时钟使能输入 load4_1:in std_logic; din4_1:in std_logic_vector(3 downto 0); dout4_1: out std_logic);end entity bc4_1;architecture behav of bc4_1 is signal cnt:std_logic_vector(1 downto 0);/定

17、义信号cnt signal q:std_logic_vector(3 downto 0);/定义信号qbeginprocess(clk)begin if clkevent and clk =1 then cnt = cnt+1; end if;end process;process(clk) begin if clkevent and clk = 1 then if load4_1 =0 then q(3) 00 then q(3 downto 1)=q(2 downto 0); else if cnt = 00 then q=din4_1;end if;end if; end if; end

18、 if; end process;dout4_1= q(3);end behav;在软件上调试后得到的波形图如下:输入为1001图4-1-2 四位并转串波形4.2 四位串转并四位串并转换接口电路实现的功能为:将输入的四位串行数据做处理后并行输出。结构框图如下:4位串行数据输入串并转换器4位并行数据输出图4-2-1四位串转并实验框图部分程序代码如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cb1_4 isport (clk,load1_4:in std_logic; din1_

19、4:in std_logic; dout1_4:out std_logic_vector(3 downto 0);end entity;architecture one of cb1_4 is signal q:std_logic_vector(4 downto 0);beginprocess(clk)beginif clkevent and clk=1 then if load1_4=0 then dout1_4=ZZZZ; else if q(4)=0 then q= 1110&din1_4; else q=q(3 downto 0)&din1_4; end if; end if; end

20、 if;end process;process(q)begin if q(4)=0 then dout1_4=q(3 downto 0); else dout1_4= ZZZZ; end if;end process; end;4位串转并功能模拟仿真:假设 输入为0101:图4-2-2四位串转并波形4.3 八位并转串原理和上面的四位并转串一样,只是将四分频器改为八分频器即可。实验框图如下:八分频器数据并行输入端口串并转换器数据串行输出端口图4-3-1 八位并转串实验框图部分程序代码如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_

21、logic_unsigned.all;entity c3_3 is port(clk:in std_logic; en33:in std_logic; din3:in std_logic_vector(7 downto 0); dt3: out std_logic);end entity c3_3;architecture behave of c3_3 is signal cnt:std_logic_vector(2 downto 0); signal q:std_logic_vector(7 downto 0);beginprocess(clk)begin if clkevent and c

22、lk =1 then cnt = cnt+1; end if;end process;process(clk) begin if clkevent and clk = 1 then if en33 =0 then q(7) 000 then q(7 downto 1)=q(6 downto 0); else if cnt = 000 then q=din3; end if;end if;end if;end if;end process;dt3= q(7);end behave;8位并行输入,一位串行输出仿真波形图 输入为10111111图4-3-2 八位并转串波形4.4 八位串转并原理和四位

23、串转并基本一样,只是将输入的数据改成了八位串行数据。结构框图如下:8位串行数据输入串并转换器8位并行数据输出图4-4-1八位串转并实验框图部分程序代码如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cb1_8 isport (clk,en22:in std_logic; din2:in std_logic; dt2:out std_logic_vector(7 downto 0);end entity;architecture one of cb1_8 is signal q:

24、std_logic_vector(8 downto 0);beginprocess(clk)beginif clkevent and clk=1 then if en22=0 then dt2=ZZZZZZZZ; else if q(8)=0 then q= 11111110&din2; else q=q(7 downto 0)&din2; end if;end if;end if;end process;process(q)begin if q(8)=0 then dt2=q(7 downto 0); else dt2= ZZZZZZZZ; end if;end process;end;图4

25、-4-2八位串转并波形4.5 十六位并转串原理和四位并转串一样,只是将四分频器改为十六分频器即可。实验框图如下:十六分频器数据并行输入端口串并转换器数据串行输出端口图4-5-1 十六位并转串实验框图部分程序代码如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity c7_7 is port(clk:in std_logic; en77:in std_logic; din7:in std_logic_vector(15 downto 0); dt7: out std_logic);end

26、 entity ;architecture behav of c7_7 is signal cnt:std_logic_vector(3 downto 0); signal q:std_logic_vector(15 downto 0);beginprocess(clk)begin if clkevent and clk =1 then cnt = cnt+1; end if;end process;process(clk) begin if clkevent and clk = 1 then if en77 =0 then q(15) 0000 then q(15 downto 1)=q(1

27、4 downto 0); else if cnt = 0000 then q=din7; end if;end if;end if;end if;end process;dt7= q(15);end behav;16位并行输入,1位串行输出仿真波形图 输入为1111000011110000图4-5-2 十六位并串转波形4.6 十六位串转并原理和四位串转并基本一样,只是将输入的数据改成了十六位串行数据。结构框图如下:16位串行数据输入串并转换器16位并行数据输出图4-6-1十六位串转并实验框图部分程序代码如下:library ieee;use ieee.std_logic_1164.all;us

28、e ieee.std_logic_unsigned.all;entity cb1_16 isport (clk,en66:in std_logic; din6:in std_logic; dt6:out std_logic_vector(15 downto 0);end entity;architecture one of cb1_16 is signal q:std_logic_vector(16 downto 0);beginprocess(clk)beginif clkevent and clk=1 then if en66=0 then dt6=ZZZZZZZZZZZZZZZZ; el

29、se if q(16)=0 then q= 1111111111111110&din6; else q=q(15 downto 0)&din6; end if;end if;end if;end process;process(q)begin if q(16)=0 then dt6=q(15 downto 0); else dt6= ZZZZZZZZZZZZZZZZ; end if;end process;end;图4-6-2十六位串转并波形4.7分频器的设计分频器的使用是在数据并行转串行的时候,使用分频器是为了让并行的数据更好的输入,以便计算机的识别,用VHDL语言编写的分频器程序如下 (以

30、下的例子为四分频器):library ieee;use ieee.std_logic_1164.all;entity mux12_4 isport(ah,bh,din:in std_logic_vector(3 downto 0); a:in std_logic_vector(1 downto 0); y: out std_logic_vector(3 downto 0);end mux12_4;architecture rtl of mux12_4 issignal sel:std_logic_vector(1 downto 0);beginselyyyy=ZZZZ; end case;en

31、d process;end rtl;5、软件仿真及分析5.1顶层模块每个小模块编写及调试好之后就可以将他们耦合在一起进行调试,在顶层的原理图编辑框中调出各个子模块,然后将各个子模块进行连线,生成最终的顶层原理图,接下来对原理图的功能形式进行综合仿真。我们设计的顶层原理图如下:图5-1顶层模块原理图图5-2波形仿真52仿真波形的分析分析:由上面的仿真波形可以看出。我们设计的功能主要分为两个:一个是将并行数据输入,然后输出并行数据;另一个是将串行数据输入,然后串行输出。由图4-8-2可知:输入端有一个时钟信号CLK,用来控制数据的输入。然后分别是数据的并行输入din4_1、din8_1、din16

32、_1及串行输入din1_4、din1_8、din1_16,经过仿真可以看到他们对应的输出为dout4_1、dout8_1 、dout16_1及dout1_4、 dout1_8、dout1_16。比如din4_1同时输入1001,则dout依次1001.同理,din1_4依次输入0101,则dout1_4同时输出0101。实验仿真和我们预期的结果一样。6、 硬件组装测试根据原理功能框图和设计要求,我们用16个LED灯进行输出显示,配合时钟使能控制,通过4个开关,分别按要求选择需要的四位、八位、十六位数据的串并转换。由于各个小模块原理都一样,所以我们的硬件组装比较简单。当有一串数据输入,通过选择相

33、应的开关,通过灯的亮灭情况观察数据输出结果是否符合要求。 图6-1 硬件电路图 7、实验总结通过本次创新实验的训练,提高了我实际工程设计能力,对EDA电子技术、VHDL硬件描述语言、FPGA开发应用及相关知识有了一定的了解和掌握。实验过程中我认为技术的难点和学习最费时的地方在于VHDL语言。我们通过Quartus II系列的软件的学习,初步了解和掌握EDA的基本内容及实用技术,实验中得到了柴老师的倾心指导,获益颇多,相信是人生的一笔宝贵的财富。8、参考文献参考文献【1】 潘松,黄继业 EDA技术使用教程(第三版) 科学出版社2006【2】 邬杨波 王曙光,胡建平 有限状态机VHDL设计及优化信

34、息技术 2004(01)【3】 谭会生 瞿遂春 EDA技术综合应用实例与分析 2004:112156【4】 唐瑜 符兴吕,罗江 用VHDL语寿实现序列信号的产生和检测 2008(09)【5】 曾繁泰 陈美金 VHDL程序设计 2001:56120【6】 张先永 CPLD在航空设备综合智能检测仪中的应用 大众科技 2006 NO5【7】 现代电子技术 2010年第一期总第312期【8】 黎美 刘笃仁 基于USB 2.0的接口芯片ISP1581的应用与设计设计J中国集成电路,2005(7):5560【9】 方加喜,徐善锋,李玉山.通用串行总线原理及其外设接口设计J.半导体技术,2007,27(11):33-38.【10】 ASHENDEN P J.VHDL 设计指南M.北京:机械工业出版社,2005【11】 周立功等.SOPC 嵌入式系统基础教程M。北京:北京航空航天大学出版社,2006:5-209 9、致谢

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号