EDA技术
实训(论文)说明书
题 目: 采用流水线技术
设计高速数字相关器
摘 要
EDA是电子设计自动化,在20世纪60年代中期从计算机辅助设计、计算机辅助制造、计算机辅助测试和计算机辅助工程的概念发展而来的。国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。在电子技术设计领域,可编程逻辑器件的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。
流水线技术在速度优先中是最常用的技术之一。它能显著地提高设计运行速度上限。在现代微处理器、数字信号处理器、高速数字系统、高速A/D、D/A设计中几乎都离不开流水线技术、甚至在有单片机的设计中也采用流水线技术、以期达到高速特性。
关键字:流水线技术;VHDL;数字相关器;仿真
Abstract
EDA is electronic design automation, in the mid 1960 s from computer aided set, computer aided manufacturing, computer aided testing and computer aided working idea. International electronic and computer technology more advanced countries, has been actively exploring new electronic circuit design method, and the design methods, tools and so on the sweeping changes, has been a huge success. In the electronic technology design field, the application of programmable logic devices, has been widely popular, these devices for the digital system design with great flexibility. These devices through software programming and the hardware structure and working manner reconstruction, so that the design of the hardware design of the software that can be as convenient.
Pipeline technology in speed priority is the most commonly used one of the technology. It can significantly improve the design speed limit. In the modern microprocessor, digital signal processor, high speed digital system, high speed A/D, D/A design almost all cannot leave the line technology, even in the design of the single chip microcomputer is also USES line technology, in order to achieve high speed characteristics.
Key words: Pipeline technology; VHDL; Digital correlator; The simulation
目 录
引言 1
1 实训内容 1
2 EDA技术简介 1
2.1 EDA技术发展历史 1
2.2 EDA技术特点 2
3 Quartus II简介 2
4 流水线设计 2
4.1 流水线技术的概念 3
4.2 流水线技术转换 3
5 程序分析 4
5.1 原理框图 4
5.2 四位相关器 4
5.3 十六位相关器 5
6 调试过程 6
7 总结 8
谢 辞 10
参考文献 11
引言
随着基于PLD的EDA技术的发展和应用领域的扩大与深入,EDA技术在电子信息、通信、自动控制及计算机引用等领域的重要性日益突出。本设计为一个在数字通信系统中常见的数字相关器,并利用流水线技术提高其工作速度,数字相关器实现了数字通信过程中的检测,在数字通信系统中具有重要的作用,广泛应用于帧同步字检测、扩频接收机、误码校正以及模式匹配等领域。
1 实训内容
设计一个在数字通信系统中常见的数字相关器,并利用流水线技术提高其工作速度,对其进行仿真和硬件测试。
数字相关器用于检测等长度的两个数字序列间相等的位数,实现序列间的相关运算。一位相关器,即异或门,异或的结果可以表示两个1位数据的相关程度。异或为0表示数据位相同;异或为1表示数据位不同。多位数字相关器可以由多个一位相关器构成,如N位的数字相关器由N个异或门和N个1位相关结果统计电路构成。根据上述原理设计一个并行4位数字相关器。
2 EDA技术简介
EDA技术,就是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术。
2.1 EDA技术发展历史
初级阶段的硬件设计大量选用中小规模标准集成电路,人们将这些器件焊接在电路板上,做成初级电子系统,对电子系统的调试是在组装好的PCB板上进行的。由于设计师对图形符号使用数量有限,传统的手工布图方法无法满足产品复杂性的要求,更不能满足工作效率的要求。这时,人们开始将产品设计过程中高度重复性的繁杂劳动,如布图布线工作,用二维图形编辑与分析的CAD工具替代
20世纪70年代的自动布局布线的CAD工具代替了设计工作中绘图的重复劳动;到了20世纪80年代出现的具有自动综合能力的CAE工具以逻辑模拟、定时分析、故障仿真、自动布局和布线为核心,重点解决电路设计没有完成之前的功能检测等问题,则代替了设计师的部分工作,对保证电子系统的设计,制造出最佳的电子产品起着关键的作用。
20世纪90年代,设计师逐步从使用硬件转向设计硬件,从单个电子产品开发转向系统级电子产品开发。因此,EDA工具是以系统机设计为核心,包括系统行为级描述与结构综合,系统仿真与测试验证,系统划分与指标分配,系统决策与文件生成等一整套的电子系统设计自动化工具。这时的EDA工具不仅具有电子系统设计的能力,而且能提供独立于工艺和厂家的系统级设计能力,具有高级抽象的设计构思手段。
2.2 EDA技术特点
利用EDA技术进行电子系统的设计,具有以下几个特点。用软件的方式设计硬件;用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的;设计过程中可用有关软件进行各种仿真;系统可现场编程,在线升级;整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。
3 Quartus II简介
Altera Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。
Altera Quartus II 设计软件是业界唯一提供FPGA和固定功能HardCopy器件统一设计流程的设计工具。工程师使用同样的低价位工具对 Stratix FPGA进行功能验证和原型设计,又可以设计HardCopy Stratix器件用于批量成品。系统设计者现在能够用Quartus II软件评估HardCopy Stratix器件的性能和功耗,相应地进行最大吞吐量设计。
Altera的Quartus II可编程逻辑软件属于第四代PLD开发平台。该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。Quartus平台与Cadence、ExemplarLogic、 MentorGraphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容。改进了软件的LogicLock模块设计功能,增添 了FastFit编译选项,推进了网络编辑性能,而且提升了调试能力。
4 流水线设计
流水线设计是用于提高所设计系统运行速度的一种有效的方法。为了保障数据的快速传输,必须使系统运行在尽可能高的频率上,但如果某些复杂逻辑功能的完成需要较长的延时,就会使系统很难运行在高的频率上,在这种情况下,可使用流水线技术,即在长延时的逻辑功能快中插入触发器,使复杂的逻辑操作分步完成,减少每个部分的处理延时,从而使系统的运行频率得以提高。流水线设计的代价是增加了寄存器逻辑,即增加了芯片资源的耗用。
4.1 流水线技术的概念
所谓流水线设计实际上就是把规模较大、层次较多的组合逻辑电路分为几个级,在每一级插入寄存器组暂存中间数据。K级的流水线就是从组合逻辑的输入到输出恰好有K个寄存器组(分为K级,每一级都有一个寄存器组)上一级的输出是下一级的输入而又无反馈的电路。 如图4-1所示。
图4-1 流水线操作概念示意图
4.2 流水线技术转换
这个组合逻辑包括两级。第一级的延迟是T1和T3两个延迟中的最大值; 第二级的延迟等于T2的延迟。为了通过这个组合逻辑得到稳定的计算结果输出,在从输入到输出的每一级插入寄存器后,流水线设计的第一级寄存器所具有的总的延迟为T1与T3时延中的最大值加上寄存器的 T(触发时间)。同样,第二级寄存器延迟为T2的时延加上T。采用流水线设计为取得稳定的输出总体计算周期为:
max(max(T1,T3)+T,(T2+T))
流水线设计需要两个时钟周期来获取第一个计算结果,而只需要一个时钟周期来获取随后的计算结果。如图4-2所示。
图2-2组合逻辑设计转化为流水线设计
5 程序分析
5.1 原理框图
用4个4位相关器中间通过相应的加法器,把这4个元器件并起来合成一个并行的16位相关器。如图5-1原理框图所示。
图5-1原理框图
5.2 四位相关器
4位相关器,用4个1位相关器组成,位相关器,即异或门,异或的结果可以表示两个1位数据的相关程序。如图5-2为仿真器件。如图5-3仿真波形。
图5-2仿真器件
图5-3仿真波形
其VHDL语言如下:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
entity xiangguan4 is
port(a,b:in std_logic_vector(3 downto 0);
sum:out std_logic_vector(2 downto 0);
clk:in std_logic);
end xiangguan4;
architecture one of xiangguan4 is
signal ab :std_logic_vector(3 downto 0);
begin
process(clk)
if clkevent and clk=1 then
ab=a xor b;
end if;
end process;
process(clk)
begin
if clkevent and clk=1 then
if ab=1111 then sum=000;
elsif ab=0111 or ab=1011 or ab=1101 or ab=1110 then sum=001;
elsif ab=0001 or ab=0010 or ab=0100 or ab=1000 then sum=011;
elsif ab=0000 then sum=100;
else sum=010;
end if;
end if;
end process;
end one;
5.3 十六位相关器
16位相关器,用4个4位相关器组成,位相关器,即异或门,异或的结果可以表示两个1位数据的相关程序。如图5-4仿真波形。
图5-4仿真波形
其VHDL语言如下:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity gaxgq16 is
port(clk:in std_logic;
qa,qb:in std_logic_vector(0 to 15);
qc:out std_logic_vector(0 to 3));
end gaxgq16;
architecture gaxgq16_arc of gaxgq16 is
component xgq4
port(clk:in std_logic;
a,b:in std_logic_vector(0 to 3);
c:out std_logic_vector(0 to 3));
end component;
signal c1,c2,c3,c4:std_logic_vector(0 to 3);
signal cc:std_logic_vector(0 to 3);
signal ccc:std_logic_vector(0 to 3);
begin
u1:xgq4 port map(clk,qa(0 to 3),qb(0 to 3),c1);
u2:xgq4 port map(clk,qa(4 to 7),qb(4 to 7),c2);
u3:xgq4 port map(clk,qa(8 to 11),qb(8 to 11),c3);
u4:xgq4 port map(clk,qa(12 to 15),qb(12 to 15),c4);
process(clk)
begin
if(clkevent and clk=1)then
cc=c1+c2;
ccc=c3+c4;
end if;
if(clkevent and clk=1)then
qc=cc+ccc;
end if;
end process;
end gaxgq16_arc;
6 调试过程
本次实训的调试过程分为软件调试和硬件调试过程。在软件调试过程中,我先做了一个四位相关器,四位相关器是四个一位异或门的相加,输入的数据分为a、b。本次的实训四位相关器程序的结构体部分已经在课本上,于是我只是在课本的基础上加上了实体部分,四位相关器的程序就完成了,然后通过波形仿真,显示我的程序正确。接下来是实寻训的另一个要求,使用流水线设计的方法,流水线设计方法就是把延时较大的组合逻辑块切割成几块延时大致相等的组合逻辑块,在编程中,我将异或门与输出数据分别加入时钟信号,这样就可以将较大的延时分割为两个延时模块,以达到缩短运行时间的结果。以四位相关器为例,如图6-1为无流水线设计,图6-2为有流水线设计。
图6-1为无流水线设计
图6-2为有流水线设计
在解决完四位相关器的程序问题后,我就开始配置管脚,下载到试验箱中看看实验现象,配置之前,我使用仿真器进行时序仿真,查看波形的具体显示,通过仿真,说明我的四位相关器的程序是正确的。然后我就开始确定配置管脚的模式,通过查看各个模式电路结构,我确定选择模式五,通过与课本后面的管脚结构图,很快就锁定完所有的管脚了,然后我下载的了试验箱中,第一次下载没有成功,错误提示说电脑没有与试验箱连接,多次尝试后依然没有成功。但我换了另一台实验箱后,电脑显示下载成功。我在试验箱中通过输入八位数据进入相关器中,输出在数码管中显示,通过波形验证和硬件检测证明,四位相关器成功。
接下来做的是十六位相关器,虽然题目要求的是并行四位的数字相关器,但因为一个并行四位的数字相关器并没有占用我多少的时间,所以我想做一个十六位的数字相关器,即四个四位相关器的相加。最后,我通过查找资料,以四位数字相关器为基础,编写出了十六位的数字相关器,编译成功。于是我进行波形仿真,波形仿真如程序一样也成功了。但接下来的配置过程我遇到了大麻烦,十六位数字相关器需要32个输入,但实际的试验箱中并没有那么多的按钮,所以我需要改变输入方式,通过询问老师,我使用将并行输入的方式改为串行输入的方式。先输入十六位数导入寄存器中,再输入十六位数导入寄存器中进行比较。最后得到四位输出。但因为自身水品限制,在接下来的几天中,我并没编译出串行输入的程序。所以十六位数字相关器只有波形仿真。
7 总结
本次实训是EDA程序的编写与硬件实现,这次实训让我学会了很多的许多的知识。
DEA的理论课程只有六周,实践课程也只有六周,经过了大半个学期的时间,我对于EDA的理论和实际编写已经淡忘的差不多了。实训的到来,让我再次拿起了EDA的课本,复习EDA的基本语句,慢慢尝试使用Quartus II编写编译程序,经过了几天的复习,我对于EDA的理论知识和实际操作更加的熟悉和熟练。所以,长达两周的实训让我受益匪浅。
30号那天是EDA实训动员大会,本次EDA实训的负责老师分别为陈小毛老师、符强老师和归发第老师,动员大会上,陈小毛老师很耐心的为我们详解每一个题目的重点和注意事项,并向我们展示了新的的实验板和其附带的教学视频。因为么明天就是元旦的三天假期,我们班并不想浪费这是几天的时间,所以动员大会后,我们班就在那个教室进行了题目的分配。我的题目是十四号,采用流水线技术设计高速数字相关器。对于这个题目,我的第一个反应就是,什么是流水线技术,什么是相关器。所以接下来我就开始去找寻这个答案。
元旦三天我并没有闲着,每天我都对着电脑。在网上,我很快找到了我想要的答案,谓流水线设计实际上就是把规模较大、层次较多的组合逻辑电路分为几个级,在每一级插入寄存器组暂存中间数据。K级的流水线就是从组合逻辑的输入到输出恰好有K个寄存器组,上一级的输出是下一级的输入而又无反馈的电路。而相关器就更简单了,数字相关器用于检测等长度的两个数字序列间相等的位数,实现序列间的相关运算。一位相关器,即异或门,异或的结果可以表示两个1位数据的相关程度。异或为0表示数据位相同;异或为1表示数据位不同。其实我这个题目的重点就在于流水线技术,关于相关器的概念题目上已经有了简单的介绍,相关器的实现并不复杂,可以说很简单。关于流水线的技术在课本的十一章已经有了介绍,流水线属于优化和时序分析中速度优化的部分,课本中已经有了很详细的介绍了。在355页,我也找到了相关的实验与设计的程序内容。根据课本,我很快的编写出了四位相关器的完整程序。
4号那天,我终于拿到了Quartus II安装包,以前在学习EDA的时候,因为种种原因,我并没有在电脑中安装Quartus II,以前所有的EDA实践编写任务,我都是在EDA的实验课中编写完成的。Quartus II的安装完成后,我就迫不及待的去仿真我的四位相关器了,我将打在word的上的程序复制进了空白文件中,第一次编译正如自已所料的那样,报了一堆的错误,那些错误多数都是因为自己的一些大意,如少了一些标点符号,一些因为自己对关键字的不熟悉而导致的打错字。经过了一个多小时的排错和纠正,四位相关器的程序终于完成,编译成功后,我就进行波形仿真,因为太久没有使用Quartus II软件,对于波形仿真的具体操作我并不熟练。所以我就开始阅读课本的第五章内容,去复习一边波形仿真和配置的具体方法和步骤。我根据课本很快的就将数字四位相关器的波形仿真图生成了出来,与预计的输出相一致。就此。我的采用流水线技术设计高速数字相关器程序完成。
5号早上,我去到实验室进行硬件的检测。在参照课本后面的管脚图上,我并没有犯更多的错误,第一次的配置我就在实验箱上取得了想要的现象。但是实训还有几天的时间,所以我就向归发第老师询问关于十六位数字相关器的写法,归发第老师很仔细的向我讲解了十六位数字相关器。当时,我对于流水
文档评论(0)