vhdl语言范文

时间:2023-03-01 05:41:17

vhdl语言

vhdl语言范文第1篇

关键词: VHDL数字电路设计流程

VHDL是超高速集成电路硬件描述语言(Very High Speed Integrated circuit Hardware Description Language)的英文缩写。它的开发始于美国国防部1981年的超高速集成电路计划,其目的是为了给出一种与工艺无关的、支持大规模系统设计的标准方法和手段。通过不断的发展和完善,VHDL于1987年成为IEFE的一种标准语言。VHDL是一种面向设计的、多领域、多层次的IEEE标准硬件描述语言,是目前十分流行的硬件描述工具,并且被大多数EDA工具支持。

1.VHDL的特点

1.1功能强大。与其它的硬件描述语言相比,VHDL具有更强的描述能力和语言结构,可以用简洁的源代码描述复杂的逻辑控制。它具有多层次的设计描述功能,层层细化,最后直接生成电路级描述。

1.2系统硬件描述能力强。VHDL具有丰富的数据类型、丰富的仿真语句和库函数,它在任何大系统的设计早期就能查验设计系统功能的可行性,随时可对设计进行仿真模拟。

1.3设计与工艺无关。用VHDL进行硬件电路设计时,我们并不需要首先考虑选择完成设计的器件。VHDL的硬件描述与具体的工艺和硬件结构无关,因此VHDL设计程序的硬件实现目标器件有广阔的选择范围。

1.4设计方法灵活,易于修改。VHDL语言标准、规范,大多数EDA工具都支持VHDL。在硬件设计过程中,用VHDL语言编写的源程序便于管理,VHDL易读、结构模块化、方便修改、交流和保存。

1.5支持广泛,移植能力强。VHDL是一个标准语言,在电子设计领域为众多的EDA工具支持,因此移植能力好。

2.VHDL的基本结构

完整的VHDL程序一般由库、实体、结构体三个最基本的部分构成。

2.1库(Library)。在库内存放了可被其他VHDL程序调用的数据定义、器件说明、程序包等资源,库的种类很多,在安装元件库的目录下有VHDL87或VHDL93文件夹,里面包括IEEE、Altera、IPM、STD四个库。

2.2实体(Entity)。它仅定义设计模块输入/输出信号,不涉及模块内部逻辑功能的实现。

2.3结构体(Architectrue)。它描述设计模块的逻辑功能,结构体必须和实体相联系,确定实体定义的输入与输出信号的逻辑关系,一个设计实体可以有多个结构体。

3.VHDL的设计流程

在VHDL的设计过程中,我们采用自顶向下的方法,首先从系统设计入手,在顶层进行功能方框图的划分,其次对各模块进行设计并仿真,再次综合进行门级仿真,如果没有错误即可下载,最后实现电路。用VHDL设计数字系统的流程如下:

输入源程序编译源程序仿真综合门级仿真物理设计时序仿真

4.VHDL的应用实例――24进制计数器

我们可以通过MAX+Plusll平台的编译、仿真,得到仿真波形图(图1),在仿真无误的情况下,编程下载到器件芯片(图2)。

24进制计数器VHDL程序描述如下:

通过以上实例,我们可以看到,VHDL语言具有良好的电路行为描述能力和系统描述能力,利用VHDL语言设计数字电路更为灵活方便,设计周期也大大减小。目前,国际上用VHDL进行系统逻辑设计成为流行方式,学会VHDL及其设计方法也是新的潮流。VHDL将成为数字系统设计领域中所有技术人员必须掌握的一种语言。

参考文献:

[1]程云长.可编程逻辑器件与VHDL语言.北京科学出版社,2002.

[2]江冰.电子技术基础及应用.北京机械工业出版社,2001.

vhdl语言范文第2篇

关键词:VHDL硬件描述语言;电子技术设计;设计流程

VHDL硬件描述语言在数字电路与系统描述、模拟和设计中应用比较普遍,属于电子技术设计的核心[1]。尤其是随着集成电路技术的进步,人们对电子技术设计效率和设计水平的要求不断提升,因此选择合理的硬件描述语言具有必要性,而VHDL硬件描述语言能够有效降低电子技术设计难度,且具有通用性高、支持面广的特征,并获得了市场和电子电力公司的肯定与支持,可以有效促进电子技术设计想着自动化方向发展,缩短开发周期。

1 VHDL语言在电子设计中应用的构成

VHDL(Very-High-Speed Inte-grated Circuit Hardware Description Languagea)硬件描述语言,即超高速集成电路硬件描述语言,主要是应用于数字电路系统性能描述和模拟的语言[2]。VHDL硬件描述语言是在1983年由美国国防部创建,并在后期的发展和应用中,成为硬件描述语言的标准之一。随着IEEE对VHDL硬件描述语言的修订,VHDL硬件描述语言的内容得到的进一步的扩展,主要是从更高的抽象层次和系统描述能力进行扩展。当前VHDL硬件描述语言已经成为通用性硬件描述语言。

VHDL硬件描述语言的语法具有高度严格的特征,与Ada风格比较相近,即一段完整的VHDL代码包含实体语句、构造体语句、配置说明语句等。其中实体语句主要是针对设计单元的外部接口信号进行描述,构造体语句主要是针对设计单元内部的结构和行为进行描述。根据研究可知,利用构造体语句进行设计单元内部功能描述又可以分为三种方式,即行为级描述、寄存器传输级描述和结构描述等。配置说明依据主要是针对选取不同元件构成设计单元版本的描述。此外VHDL代码还包含库说明语句和包说明语句。其中库是进行编译实体、构造体、包和配置数据的存放,而包则是用来存在共享数据类型、常量和子程序等。常见的库类型主要分为IEEE库、STD库、ASIC矢量库等[3]。

2 VHDL语言在电子设计中应用主要特点

VHDL硬件描述语言主要是进行数字系统结构、行为、功能和接口的描述,其与其他语言相比,具有很多明显的优势和特点,主要表现在以下几个方面。

2.1 VHDL硬件描述语言描述能力强

VHDL硬件描述语言具有电路描述能力强和建模能力强等优势,主要表现在其能够从多个层次实现对数字系统的建模与描述,有效简化硬件设计任务,降低硬件设计难度,继而提高电子技术设计效率和设计可靠性。

2.2 VHDL硬件描述语言设计优化能力

VHDL硬件描述语言应用在电子技术设计中,能够脱离具体硬件电路、设计平台等特性,且其电路行为描述能力和系统描述能力优良,且其生命力和应用潜力非常强大,尤其是在语言易读性方便、层次性方面和结构化设计方面等。

2.3 VHDL硬件描述语言全新设计方法

VHDL硬件描述语言主要采用自上而下的设计方法,且包含库,有效应用在电子产品生命周期缩短的环境中,面对重新设计、融入全新技术和改变工艺等,均具有良好的适应性。自上而下的设计方法,可以将较大的系统分解成若干个模块,在分工合作时更加简单方便。此外设计人员在利用VHDL硬件描述语言进行电子技术设计时,可以单纯进行功能的设计,对于其他不会影响功能的因素,且无需耗费太多的精力[4]。

3 VHDL语言在电子设计中的应用策略

在电子技术设计中,VHDL硬件描述语言属于比较高层次的设计方法。技术人员在利用VHDL硬件描述语言进行电子技术设计时,首先要利用VHDL硬件描述语言进行电路系统的表达,并输入至计算机。随后利用HDL综合器对设计进行综合,将软件设计的HDL描述与硬件结构挂钩,实现软件转化为硬件电路。综合的作用主要是将VHDL硬件描述语言转换为低级语言,确保实现与FPGA/CPLD的基本结构相应的网表文件[5]。再利用适配器将综合器产生的网标文件配置目标器件中,产生下载文件。适配器又称之为结构综合器,主要是将网标文件针对的目标器件进行逻辑映射操作,如逻辑分割、优化等。而且由于电子技术设计的模拟仿真主要是在高层上实现,能够进一步提高错误发生效率,提升电子技术设计效率。

仿真主要是利用计算机对设计进行模拟,包含时序仿真、功能仿真。其中时序仿真中,文件包含器件硬件特性参数,即基于真实器件的特性进行仿真,仿真精度高。功能仿真主要是针对逻辑功能进行模式,不涉及具体器件的硬件特性。仿真后,将适配后生成的下载文件或配置文件,利用编程器进行下载,以实现硬件调试和验证。最后需要对硬件系统进行测试,确保设计项目在目标系统上的工作情况满足要求,针对存在错误的地方需要及时进行改进。

4 结束语

综上所述,将VHDL硬件描述语言应用与电子技术设计中,能够实现从多个层次进行数字系统的设计,有效降低设计难度,缩短设计周期,提高设计效率。如今VHDL硬件描述语言在电子技术设计应用中主要表现为自上而下应用方向,体现出逻辑综合和优化的重要性。

参考文献

[1]李要球,卢璐.VHDL硬件描述语言在数字电路设计中的应用[J].实验室科学,2011,05:97-99+103.

[2]夏莉莉.浅议VHDL语言在电子设计自动化中的应用[J].信息安全与技术,2012,07:44-46.

[3]张苹珍,王俊峰,仲涛.VHDL在数字逻辑电路设计中的应用方法[J].信息通信,2012,05:96-97.

[4]柴志成,罗俊宁.VHDL语言在数字电路教学改革中的应用[J].电子世界,2014,17:180-181.

vhdl语言范文第3篇

关键词:VHDL;CPLDCPU

中图分类号:TP312 文献标识码:B文章编号:1009-9166(2008)33(c)-0049-01

CPU因其在各大系统中处于核心位置而在硬件电路设计中备受关注,但因其结构复杂,所涉专业背景多而不被一般人掌握。CPU设计极具代表性,虽发展日新月异,但就其基本原理而言大同小异。VHDL语言是符合IEEE标准的当今世界最为流行的硬件描述语言。下文通过对CPU结构模型的简化,依托综合实验平台,所描述的简易4位CPU,能实现加、减、乘、移位等操作。

一、系统功能设计。精简CPU结构模型,运用Altera公司的MAX7000s系列芯片,依托综合实验板,运用状态机实现了微机指令系统。其指令的分析和执行过程与微机中的CPU相似,能完成简单的算数运算和逻辑运算。

二、设计与实现。(一)、简易4位CPU的基本结构单元。1)程序计数器;2)输入与MAR(Memory Access Register);3)16×8RAM;4)指令寄存器;5)累加器(Accumulator);6)二进制显示(Binary Display);7)B寄存器(B Register);8)输出寄存器(Output Register);9)运算器(Calculater)

(二)、寻址方式介绍。本设计中的4位CPU指令共有8个且可分为两种类型,如下表:

对状态机的主要部分的描述和注释:IF(clk'event AND clk='0')THEN--时钟下降沿触发

IF(run='1')THEN--如果CPU运行信号为

CASE pstate IS

WHEN s0=>nstate

f1:=true;--标志f1置true

IF(breg="00000000")THEN--如果B寄存器值为0

mar

END IF;

WHEN s1=>nstate

IF(breg="00000000")THEN--如果B寄存器值为0

IF(flag=true)THEN --标志为true

pc

flag:=false;--标志flag置false

END IF;--如果不满足条件,是因为正执行多次移位的指令

END IF;--只有移位完才能执行下一条指令,所以程序计数器数值不变

(四)、简易4位CPU功能仿真(加法)。以下是计算10+15+17-20=1C(十六进制加减计算)的VHDL源程序,这部分将写入ROM中:ARCHITECTURE rtl OF ROM16x8_1 IS

BEGIN

dataout

"00011010" WHEN (address="0001" AND ce='0') ELSE

"00011011" WHEN (address="0010" AND ce='0') ELSE

"00101100" WHEN (address="0011" AND ce='0') ELSE

"11100000" WHEN (address="0100" AND ce='0') ELSE

"11110000" WHEN (address="0101" AND ce='0') ELSE

"00010000" WHEN (address="1001" AND ce='0') ELSE

"00010101" WHEN (address="1010" AND ce='0') ELSE

"00010111" WHEn (address="1011" AND ce='0') ELSE

"00100000" WHEN (address="1100" AND ce='0') ELSE

"00000000";

END ARCHITECTURE rtl;

10+15+17-20=1C(十六进制加减计算)仿真波形图如下:

总结:采用自顶向下的设计方法,将复杂的CPU有效划分位状态机模型再进行设计和编程,并用QuartusII软件进行了仿真,最终在MAX7000s综合电路板上验证通过,很好地模拟了CPU的工作过程。但此设计亦有不足之处:1.没有直接实现除法;2.算数没有优先级。另外,综合开发板上的MAX7000s系列性能过低也是制约设计复杂的数字电路障碍之一。

作者单位:北京邮电大学电信工程学院

作者简介:吉祥(1986年-),男,汉族,上海长宁区人,北京邮电大学 电信工程学院2005级电子信息工程本科生。

参考文献:

[1]张亦华,延明.数字电路EDA入门――VHDL程序实例集[M].北京.北京邮电大学出版社.2002

[2]姜立东.VHDL语言程序设计及应用[M].北京:北京邮电大学出版社.2004

[3]付永庆.VHDL语言及应用[M].北京:高等教育出版社.2004

vhdl语言范文第4篇

关键词:状态机;Mealy型状态机;VHDL语言

中图分类号:TP391 文献标识码:A 文章编号:1007-9599 (2012) 13-0000-02

数字电路分为组合逻辑电路和时序逻辑电路。组合逻辑电路的输出只与当前输入有关,时序逻辑电路的输出不仅与当前输入有关,还与过去的输入有关。状态机是一种广义的时序电路,它的输出不仅与当前输入信号有关,还与当前的状态有关。

一、状态机有三个基本要素:状态、输入、输出

状态是状态机中最根本的要素。状态机的最基本特点就是寄存器中存储的状态按照一定的条件或规律进行转移,并输出特定信号。

输入信号作为状态机状态转移的条件,即状态机根据输入信号和当前状态决定下一个转移的状态。

输出信号一般由当前状态和当前输入信号决定,也可只由当前状态决定。

二、状态机的特点

(1)状态机的结构模式相对简单,设计方案相对固定。

(2)状态机的VHDL设计层次分明,结构清晰,易读易懂。

(3)就运行速度而言,状态机的每一个状态中可以完成许多并行的运算和控制操作。

(4)就可靠性而言,状态机也具有明显的优势。

三、状态机的分类

状态机可分为有限状态机和无限状态机,在这里只讨论有限状态机。按照输出信号是否与输入信号有关,可将有限状态机分为Moore型和Mealy型。Moore型状态机的输出只与当前状态有关,Mealy型状态机的输出不仅与当前状态有关,还与当前输入有关。Moore型和Mealy型状态机示意图分别如图一和图二所示。

从输出的时序上看,Mealy型状态机的输出是当前状态和所有输入信号的函数,它的输出是在输入变化之后立即发生的,不依赖时钟的同步。Moore型状态机的输出仅为当前状态的函数,状态机的输入发生变化还必须与状态机的时钟同步。由于Mealy型状态机的输出与时钟不同步,因此很容易在输出端产生毛刺,造成不可预料的结果。因此从稳定性的角度讲,Moore型状态机比较好;但是从相应时间角度讲,Mealy型状态机对输入的响应最多可比Moore型状态机早一个时钟周期.在工程实践中,具体电路有具体的设计要求,根据实际情况选择相应的状态机。

四、基于状态机的8路彩灯设计

在我们的生活中,电子彩灯已成为我们装点生活常用的电器,电子彩灯控制电路的设计要求也越来越高。要求我们设计的彩灯花灯品种更多,控制更加方便,灵活性高,可靠性高。采用传统数字电路设计的彩灯控制器电路复杂,设计周期长,精度不高。基于FPGA的电子彩灯设计设计灵活,功能完善。

8路彩灯控制系统分为分频模块和花型循环控制模块。

(1)分频模块:我们在这里选择的时钟脉冲信号是50MHz,由于时钟脉冲的频率太高,所以我们未分频时看到的是8个LED灯全亮,而看不到LED灯闪烁的状态。我们这时将50MHz分频,达到人视觉能感觉的频率,即可看到LED闪烁的效果。

分频程序如下:

(2)花型循环控制模块:花型循环控制模块是系统的核心部分,它主控着8路彩灯的花型。循环彩灯控制模块主要由状态机设计,用状态机设计灵活性强。

按设计的要求实现8种花型:00001111、10000000、01100011、01001111、11000000、11101111、11111111和10010011。用S0,S1,S2,S3,S4,S5,S6,S7来表示8种不同的状态。状态图如下所示。

用状态机设计语句type states来实现,8路彩灯控制模块程序如下:

五、设计拓展

8路彩灯设计系统在实际应用中还可以灵活地修改。如果要改变循环灯的控制花型,可改变s0,s1,s2,s3,s4,s5,s6,s7中所设的数值;如果要改变循环灯的花型数量,可改变状态机中s的数量,如12种花型,可改为s0—s11;还可以修改频率来控制花型闪烁的速度。

六、小结

使用VHDL语言进行8路彩灯电路设计,思路简单,功能明了,灵活性强。在控制电路中采用状态机设计,电路控制灵活,功能便于实现,思路简洁便于修改。比起用常规的单片机设计8路彩灯电路更简单实用。此系统可在分频前在ISE软件下的ISE simulator上进行仿真和验证,并可加上适当的约束条件后,在Spatan3E的开发板验证试验结果。

参考文献:

[1]Kleitz.W.VHDL数字电子学[M].北京:北京希望电子出版社,2008

[2]田耘.VHDL开发精解与实例剖析[M].北京:电子工业出版社,2009

vhdl语言范文第5篇

【关键词】数字电路;传统方式;VHDL

1.引言

随着计算机以及大规模集成电路应用的普及,电子行业正在迅速的发展。目前采用小中规模的数字电路逻辑设计已经不能满足数字电子技术发展的需要。例如传统的TTL电路或者COMS电路设计任务繁琐,设计效率低,所以迫切的需要我们做出调整,适应社会对数字电子技术发展的要求。伴随着集成电子工艺的发展,新型的逻辑器件也应运而生,到目前为止,市场上的逻辑器件大致可分为三类:第一是标准的逻辑芯片如COMS/TTL等系列芯片;第二是微型计算机芯片和各种微处理器;第三种就是应用规格芯片ASIC,其中ASIC芯片中就有我们接下来介绍的可编程逻辑器件(PLD)[1]。而使用可编程逻辑芯片就必须要求我们掌握编写VHDL语言的技术。这种设计数字电路实验的方法大大克服了传统数字电路设计出现的缺点,更加适应现在社会的发展。

2.传统数字电路设计优缺点

传统的数字电路设计过程大致经过以下几个步骤:一是分析问题画出状态转换图以及状态转换表,二是进行状态化简,三是状态编码,四是写出输入方程、驱动方程以及输出方程,五是画出逻辑电路图,经过这一系列步骤之后,还要在电路板上焊接电路,或者在面包板上拼接电路。传统的设计方法是数字电路设计的基础,它的优点是能够反映了数字电路的基本工作原理,系统内部构成的各个细节也能够很直观的反映出来,各部分之间的联系显而易见。因此,通过对设计的原理图的观察我们可以验证系统的合理性,同时也奠定了数字电路设计的基础。它的缺点是设计步骤复杂,在整个过程中需要用到大量的芯片和连线。而且传统的方法出错率高而且不易修复,在焊接电路板的时候如果不注意就会导致接触不良或者出现某个芯片损坏的情况,这就导致整个电路板都不起作用。

3.PLD器件芯片的出现

PLD又称可编程逻辑器件,PLD芯片上的金属引线和电路都是厂家做好的,但是器件的逻辑功能在出厂时是没有确定的,用户可以根据自己的需要合理的编程设计确定想要的功能。而编程用到的语言就是我们接下来要介绍的VHDL语言。目前PLD器件芯片具有微处理器灵活等优点,芯片的引脚也从一开始的20多个引脚发展到现在的200引脚[2]。可编程逻辑器件的出现从很大程度上使得数字电路设计发生了根本性变革。采用PLD设计电路不再是对电路板设计,而是对芯片设计,使之实现我们预想的功能。一般的PLD的集成度很高,可以满足一般的数字系统的需要。设计人员只需要自己编程到一块PLD上,而不用去供应商那儿买特定功能的芯片。我们可以对芯片内部的逻辑和外部的引脚进行设计。这样就克服了传统方式中对电路板进行焊接所花费的大量时间,克服了工作量大,难以调试等缺点,用户只需要编写适当合理的程序就可以实现预想的功能。如此大大简化了设计步骤,更加适应社会发展的需要。

4.VHDL简介

VHDL语言是一种应用于描述数字系统的功能、结构和接口的语言。VHDL含有许多具有硬件特征的语句而且语言的描述也更类似于一般计算机的高级语言。在编程上简单可行性高。VHDL的程序结构特点是将一项工程设计,或称设计实体。分成外部和内部,在对一个设计实体定义了外部界面后,当其内部开发完成后,其他的设计也能够直接调用这个实体。VHDL系统设计的基本点是将设计实体分成内外部分。VHDL语言之所以能够成为标准化的硬件描述语言并且获得广泛应用,正是因为它本身具有其他硬件描述语言不具有的优点。归纳起来,VHDL语言主要具有以下优点:

(1)VHDL语言设计多样:VHDL语言结构很强大,而且设计方法多样,既支持层次化设计也支持模块化设计,既可以采用自顶向下设计方式,也可以采用自底向上的设计方法。

(2)VHDL语言的设计是针对于芯片而并非器件,传统的硬件拼接的方法针对的是器件,但是VHDL语言是直接对芯片而言的,在设计电路时,用户可以不必考虑所选用的器件。设计者也可以不必考虑系统硬件结构,而进行独立的设计。

(3)VHDL语言可移植性强,对于同一个硬件的VHDL语言来说,它可以从一个工作平台移植到另一个工作平台上。

(4)VHDL语言有非常丰富的库函数和仿真语句,用户可以随时对系统进行仿真。

由此可见传统方式与应用VHDL的区别有以下几点:第一,传统的方法采用自上至下的设计方式,而应用VHDL语言则采用自下至上的设计方法;第二,传统方式采用的是通用的逻辑元器件,系统硬件的后期进行调试和仿真,而应用VHDL语言采用的芯片则是PLD(可编程逻辑器件),系统的设计早期进行调试与仿真;第三,传统的设计方式主要采用电路原理图的方式设计,而本文提出的设计方式主要则以VHDL语言描述为主,从而降低了硬件设计电路的难度。

5.VHDL语言结构及语言设计步骤

VHDL语言结构由library(库)定义区,entity(实体)定义区,architecture(构造体)定义区package(包集合)configuration(配置)组成,其中library,entity和architecture也是一个VHDL语言所必有的。

VHDL语言设计步骤大致可以分为以下三步:第一,分析系统结构并划分模块;第二,输入VHDL语言的代码,编写程序,并且将其编译,在此过程中如果有错误要及时修正;第三,对编译的后的VHDL文件进行仿真。

6.VHDL举例

下面介绍一个简单分频器的例子:

Library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity fenpin is

port(clk,clear:in std_logic;

q:out_std_logic);

end fenpin;

architecture behave of fenpin is

signal m:interge range 0 to11

begin

p1:process(clear,clk)

begin

if clear =’0’then m<=’0’;

elsif “clk event and clk=’1’”then

if m=11 then m<=’0’;

else m<=m+1;

end if;

end if;

end process p1;

p2:process(m)

begin

if temp<6 then q<=’0’;

else q<=’1’;

end if;

end process p2;

end behave;

由例题可以看出,在设计分频器是可以不用硬件搭连的方式,用VHDL语言进行编程更简单易行。

7.小结

本文针对目前传统数字电路设计中存在的若干弊端,提出用VHDL语言编写适当合理程序来设计数字电路实验的方法,避免了硬件电路中若干繁琐的问题,使得系统简单明了,可维护性强,芯片也可以反复使用。传统的硬件设计方法已不能满足现代电子工业的发展,在数字电路的应用中,VHDL语言必将会被广泛的使用。

参考文献

[1]张有志.可编程逻辑器件PLD原理与应用[M].北京:中国铁道出版社,1996:1-3,91

[2]卢毅,赖杰.VHDL与数字电路设计[M].北京:科学出版社,2002.

vhdl语言范文第6篇

VHDL被IEEE确认为标准硬件描述语言。VHDL描述语言层次较高,在进行电子系统设计时可以不了解电路的结构细节,初学者在学习VHDL的过程中需要理论结合实验,在不断地软件编程中获得锻炼,掌握技能。本文以二选一数据选择器为例,运用MAXPLUS软件平台来介绍VHDL编程语言中常见的错误及解决方法。

初学者首先在c:\max2work文件夹中新建一个工程库文件夹,命名为“exy”,后打开MAXPLUS软件,新建一个文本文件,在编辑窗中输入程序,完毕后保存。笔者依据教学经验,将学生容易出错的知识点综合在一起所得到的二选一数据选择器的程序如下:

librry ieee; use IEEE.std_logic_1164.all;

entity ch0 is

port ( d0, d1,sel,: in std_logic;

q: out std_logic)

end ch0;

architecture connect of ch0 is

begin

process (d0,d1,sel)

variable temp1,temp2:std_logic;

begin

temp1

end connect;

2 编译和改错

编辑好文本后,选择与实验箱对应的芯片,并将项目路径设置统一,再进行编译。编译提示错误有如下几种类型:

(1)文本后缀错误.tdf:Error:line 1,file c:\max2work\exy\untitled2.tdf:TDF syntax error:Expected,ASSERT,CONSTANT,DEFINE,DESIGN,FUNCTION,IF,OPTIONS,PARAMETERS,SUBDESIGN,or TITLE but found a symbolic name “library”将后缀改为.vhd。

(2)实体名命名错误:Error: line 1,file c:\max2work\exy\untitled2.vhd:VHDL design file “untitled”must contain an entity of the same name. 错误提示要求文件名和实体名一致,将文件名改为ch0。

(3)Error:line 8,file c:\max2work\exy\ch0.vhd:VHDL syntax error: port clause must have “;”,but found END instead. 程序中PORT语句结束后没有分号,加上“;”。

(4)Error: line 17,file c:\max2work\exy\ch0.vhd:identifier error :identifier “temp3” has not been declared。程序进程中用到了temp3,但是前面没有定义,在进程定义语句temp2后面加上”,temp3”。

(5)Error: line 17,file c:\max2work\exy\ch0.vhd:VHDL syntax error: process statement must have end process,but found connect instead.进程缺少结束语句,在”end connect;”前加上” end process;”。

(6)Error: line 15:file c:\max2work\exy\ch0.vhd:Assignment error:target of a Signal Assignment Statement must be a signal or an aggregate, but is a Variable instead.赋值语句temp1

(7)Error: line 18:file c:\max2work\exy\ch0.vhd:Assignment error:target of aVariable Assignment Statement must be a variable or an aggregate, but is a port instead. 赋值语句q:=temp3;中采用的是变量赋值语句,但q为信号,故赋值语句应该改为信号赋值语句:”q

3 结束语

初学者在软件编程中常见的问题主要包括如下:路径设置、文件命名、语句结束、库的调用、变量和常量的使用等。问题出现的原因主要是由于知识掌握不牢,对VHDL的语法不熟悉,对语言的使用不熟练,以及粗心大意。所以初学者需要带着严谨的态度,并通过不断地进行软件编程练习,在不断地出错及改错中积累经验,并逐步地来提高编程技能和设计电子产品的能力。

参考文献

[1]刘江海.DA技术[M].武汉:华中科技大学出版社,2013.

[2]聂小燕,鲁才.数字电路EDA设计与应用[M].北京:人民邮电出版社,2010.

vhdl语言范文第7篇

关键词:教学改革 实践教学 VHDL语言

中图分类号:G642 文献标识码:A 文章编号:1674-098X(2015)09(a)-0117-02

VHDL语言[1-2](VHDL,VHSIC (Very High Speed Integrated Circuit)Hardware Description Language)是一种标准的数字系统硬件电路设计语言,于1983年由美国国防部(DOD) 为实现其高速集成电路计划发起创建的一种高速集成电路硬件描述语言,其目的是为了给数字电路的描述与模拟提供一个基本的标准。VHDL语言在1985年完成第一版,1987年成为IEEE标准(IEEE STD1076-1987),1993年增修为(IEEE STD1076-1993)标准。VHDL语言为高级硬件行为描述型语言,为所有可编程逻辑器件厂商(如Xilinx和Altera公司等)所支持,已成为电路设计人员和电子设计工程师必须掌握的工具语言。硬件逻辑设计技术[3]是电子信息类专业的重要专业课,该课程包括课堂理论教学和实验两个模块,其特点是软硬件结合,该课程的综合知识面宽及工程实践性强。电子信息类专业的学生掌握硬件逻辑设计能力无论是对学生完成毕业设计或工程创新,还是促进学生就业都有重要意义。因此,硬件逻辑设计的实践性教学在电子信息类专业实践教学中的地位日益显著,如何开设好VHDL语言及硬件逻辑设计是当前硬件设计语言课程中的一个非常重要的问题[4-6]。

1 教学目标

《VHDL语言及数字逻辑设计》课程属电子信息类专业技术类选修课,是将控制,仿真与芯片设计相结合的一门硬件设计语言。通过本课程的学习,使学生通过对VHDL语言及EDA技术的学习和实践训练,获得现代硬件数字逻辑设计的软件化设计方法,了解并初步掌握数字系统硬件电路设计领域的最新技术;通过有针对性、分层次、分阶段地实施实践教学,激发并调动学生创造性思维能力,强化学生的实践动手能力和创新能力,为学生在硬件逻辑设计领域的进一步深入探索和进行创新奠定工程基础,以及应用VHDL及EDA工具开发设计数字系统的基本方法及技术,为学生完成毕业设计及将来的工作等打下扎实的基础。

另外,本课程的教学难点是,一方面要把握学生的数字电路基础水平;另一方面要高度概括VHDL语言的专业课内容,深入浅出,还要照顾到彼此之间的联系,尤其是面向应用。因此,首先讲清楚确知学习VHDL语言的意义和FPGA的工作原理,并进一步讲清VHDL语言的基本结构和以及VHDL语言中主要描述语句的特点和用途,并设计一些基本逻辑电路实例,目的在于让学生熟悉VHDL语言的整个过程,能运用VHDL语言编程及进行仿真,并掌握其中的关键技术。这样便于学生进一步学习和理解VHDL语言的应用,增强学生在工作中的竞争能力,达到可以用VHDL语言设计数字逻辑电路和数字应用系统,并在CPLD/FPGA可编程逻辑器件上实现自己的设计。

2 教学内容

VHDL语言如今已经广泛被应用到FPGA/CPLD和ASIC中的设计。VHDL语言具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大简化了硬件逻辑设计任务,提高了硬件设计效率和可靠性。而且VHDL语言具有与具体硬件电路无关和与硬件设计平台无关的特性,并具有良好的电路行为描述的能力,在语言易读性和层次化结构化设计方面表现了强大生命力和应用潜力。因此,我们选择VHDL语言作为这门课的课堂教学内容。

《VHDL语言及硬件逻辑电路设计》课程内容的主要教学思路是,以VHDL硬件描述语言为硬件设计表达手段,以Xilinx公司的ISE软件为硬件设计开发工具,并以FPGA/CPLD可编程逻辑器件开发系统为教学实践平台,来实现学生对数字电路系统的开发设计,培养学生自顶而下的层次化设计思想,提高学生应用实践创新能力。

在教学内容上,删去了一些FPGA/CPLD可编程器件结构内容的过多讲解,重点讲解VHDL语言内容,并利用有限的课时补充了硬件逻辑电路设计方面的一些最新进展,以利于学生开阔视野和提高学习兴趣;针对VHDL语言语法丰富的特点,增加了大量课堂实例,并结合应用对VHDL语言中关键要点进行详细说明,便于学生理解和掌握VHDL课程内容;在开发软件方面以Xilinx公司的ISE软件作为平台,并针对硬件仿真,重点是让学生学会并熟练掌握用ISE软件进行数字系统仿真的基本过程和操作;在实践训练方面,精心设计了课堂练习/课后习题和配套实验,提高学生实践动手能力,从而达到良好的教学效果。

3 多层次式教学模式

《VHDL语言及硬件逻辑电路设计》课程是一门工程实践性很强的课程,我们提出以实践训练为主,边学边练的硬件逻辑设计教学模式,重点加大对学生实践能力、解决实际问题能力及团体合作精神等综合素质的培养,使“数字逻辑电路设计实践教学”在本科培养中发挥更重要的作用。在教学过程中,提出多层次的实践教学模式,通过大量的多层次实例教学让学生主动建构知识、增长技能、发展能力。

我们将《VHDL语言及硬件逻辑电路设计》课程的实践教学分为三个层次。

第一层次是课堂实验教学,这一阶段主要培养的是学生的主动学习能力,通过课堂实验练习使学生掌握和熟练使用开发工具,具备基本的硬件编程能力。课堂实验教学是针对教师在讲授理论内容后,对应设计相应知识内容的实验项目,并编写课堂实验指导书。在理论课部分内容方面,首先讲解VHDL语言的基本单元,如VHDL语言设计的基本单元、构成、子结构描述(元件说明,元件安装)等,在VHDL语言的数据类型方面,主要讲解VHDL语言的客体及分类、整数类型和数组类型,表达式与运算符;其次,介绍VHDL语言主要描述语句,如顺序描述语句和并发描述语句;最后介绍基本逻辑电路的设计,如组合逻辑电路的设计,时序电路的设计,存储器和有限状态机设计等。那么针对课程的理论内容,设计的实验主要有:(1)ISE工具的使用;(2)编码器和译码器等组合逻辑电路的设计;(3)有限状态机和计数器等时序电路的设计;(4)RAM和FIFO等存储器的设计。通过这些基础知识点的实验练习,能让学生较好的熟悉VHDL语言的基础知识和语句的基本应用,从而较好的掌握VHDL语言中的关键内容,加深了对VHDL语言知识点的感性认识和全面掌握,达到可以用VHDL语言设计数字逻辑电路和数字应用系统。在课堂上通过对算法实例的程序执行仿真模拟。

第二个层次是综合性设计实验,这一层次的实验要求学生已经掌握基本的VHDL语言知识并能综合地运用所学内容,主要培养学生动手实践能力、解决实际问题能力及团队合作能力。综合性设计实验以硬件开发板实验为主,主要包括跑马灯、VGA显示、波形发生器、通用异步收发器、SRAM接口设计等题目。在实验中,教师要求学生每4人为一组进行实践练习。在实验过程中,要求学生能上机编写代码并调试VHDL程序,每组学生对实验过程和实验结果进行分析和总结,并提交硬件实验报告。在实验课中,教师根据各个小组提交的实验报告,首先安排各小组进行实践动手经验交流,然后选择一些优秀小组中的代表上台做实验心得汇报,并现场进行问题分析和技术总结,加深了对VHDL语言中知识点的感性认识和全面掌握。通过这些活动,不但让学生熟悉了硬件设计的开发环境,提高了硬件设计编程技巧,而且还能激励学生主动学习VHDL语言的兴趣,提高学生的分析和解决实际问题的能力,并培养学生团体合作能力。

第三个层次是课程设计实验,这一阶段要求学生独立完成硬件工程课题的设计与实现,在强调学生独立设计实现的同时,更加注重学生综合能力的培养。课程设计题目采取开放式选题,可由教师提供背景明确和启发性强的题目,也可以由学生自主选择题目并提交相应的课程题目设计目标、任务和方法,经教师审核批准后作为课程设计题目。另外学生也可以根据个人兴趣选择不同类型的课程设计题目后,由学生自行拟定实验方案,查阅文献资料和编写VHDL程序,自主解决实验问题,并对对实验结果进行分析总结,撰写课程设计研究报告。通过这些课程设计实验设计,在培养学生自主学习及主动学习的同时,也锻炼学生的动手能力和表达能力。

4 结语

VHDL语言及数字逻辑设计课程是一门工程实践性很强的课程,通过有多层次地实施实践教学,充分发挥实践教学的优势,激发了学生的学习热情,强化学生的实践动手能力和创新能力,并培养学生独立思考、自主创新的学习习惯,取得了较好的教学效果。该实践教学体系遵循人才培养的客观规律,将多层次实验从简单到复杂、从基础实验练习到综合创新实验,贯穿于整个VHDL语言及数字逻辑设计课程学习过程,使学生在循序渐进的实践教学过程中成长。

参考文献

[1] 侯伯亨,顾新.VHDL硬件描述语言与数字逻辑电路设计[M].西安:西安电子科技大学出版社,2009.

[2] 谭会生,张昌凡,EDA技术及应用[M].西安:西安电子科技大学出版社,2011.

[3] 曾志廉,何清平,通用FPGA试验系统的设计与应用[J].计算机信息,2007(11):234-235.

[4] 叶波,赵倩.“集成电路系统设计”课程教学改革探讨[J].中国电力教育,2010(16):109-110.

[5] 张瑾,李泽光,刘海燕.关于《EDA技术及应用》课程的思考[J].大连大学学报,2006,27(6):110-112.

vhdl语言范文第8篇

关键词:VHDL; Max+Plus Ⅱ; 计数器; EDA技术

中图分类号:TP311文献标识码:B

文章编号:1004-373X(2010)08-0070-03

Medical Application of EDA Technology Taking VHDL Language as Core

TAN Xiao-ling, DUAN Xin-wen

(Qinghai Normal University, Xining 810008, China)

Abstract: As a new hardware description language, VHDL is mainly used for the description, simulation and automatic design of digital circuits and systems. It is the core technology of current clectronic design automation (EDA) and can be more widely used in the medical speciality and other relative fields along with the development of information technology. In this study, the counter designed with VHDL was applied to human pulse measurement. Compared to the artificial method, the results measured by such counter is more accurate and can be displayed intuitively by the digital tubes. It shows the close contact between the digital system designed with VHDL and medicine, as well as its great prospects on the medical practice. It had proved that the combination of EDA and medicine not only promotes the further application of EDA technology, but also boosts the development of medicine greatly.

Keywords:VHDL; Max+Plus Ⅱ; counter; EDA technology

0 引 言

VHDL超高速集成电路硬件描述语言是随着集成电路系统化和高度集成化逐步发展起来的,是一种用于数字系统设计、测试,面向多领域、多层次的IEEE标准硬件描述语言。它从20世纪70年代作为电路设计工具诞生于美国国防部至今,已经成为十分流行的硬件描述工具,并且为大多数EDA工具所支持\。随着电子技术的不断进步,数字系统的设计正朝着高速度、大容量、小体积的方向发展。 传统的自底而上的模式已不能满足芯片和系统的设计要求。为了提高设计效率,能够简化设计流程,大幅降低设计难度的VHDL设计方法受到广泛关注。VHDL与其他传统集成电路描述语言相比,具有明显优势\:

(1) 功能强大,描述力强。可用于门级、电路级甚至系统级的描述、仿真和设计。

(2) 可移植性好。对于设计和仿真工具及不同的平台均可采用相同的描述。

(3) 研制周期短, 成本低。

(4) 可以延长设计的生命周期。

(5) 具有电路仿真与验证功能,用户甚至不必编写相量测试即可进行源代码级调试。设计者能够跳过电路实验,直接对各种方案进行比较和选择,使设计效率得以提高。

(6) 对设计的描述具有相对独立性。

(7) 语言标准、规范,易于共享和复用。

目前,VHDL渗透了电子技术及其相关的各个工业领域,在工业设计中发挥着日益重要的作用。在世界范围内,关于VHDL在多个领域尤其在芯片,系统设计方面的应用研究已经取得众多瞩目成果。

而将VHDL与医学相结合,势必成为电子自动化设计(EDA)一个全新的研究方向,本文主要研究将EDA通过VHDL应用于医学,以对脉搏的测量为例,以实现数字系统对人体多种生理活动及生理反应的直观精确测量。

1 实验设计

1.1 EDA技术在医学教学中脉搏测量中的应用探讨

在临床诊断,护理学等中介绍脉搏的测量时认为脉搏很容易在手腕掌面外侧跳动的桡动脉上摸到,也可测量颈部的颈动脉或腹股沟的股动脉。其测量方法是病员手臂放于舒适位置,用食指,中指,无名指的指腹端按压在桡动脉表面,一般病员默数半分钟,将所测的脉率乘以2便是一分钟的脉数,异常病人测一分钟。成年人的脉搏在安静状态下每分钟是60~80次。如少于60次是心动过缓。但训练有素的运动员,脉搏有时也在60次以下,这正是心脏健康有力的表现。如超过100次是心动过速。体力活动或情绪激动时,脉搏可暂时增快,发烧时脉搏也增快。一般是体温每升高1 ℃,脉搏就增加10~20次。此法只能粗略计算脉搏跳动,如将VHDL语言应用其中,便可以通过EDA实验箱中的七段数码管直观准确地看到一分钟的计数结果,并与之前通过医学教材讲授方法测出结果相比对,从而判定测量的正确与否。

1.2 设计思路

将脉搏信号通过脉搏传感器采集进入计算机,而后作为输入信号,而此信号作为脉冲信号,即如时钟信号一般,当输入时计数器开始计数,如下面设计一个十进制计数器的VHDL描述便可用来对所采集的脉搏信号计数\。

1.3 VHDL设计流程

VHDL流程设计\如图1所示。

图1 VHDL流程设计图

现在,计算机辅助工程软件的供应商已把日益通用的硬件描述语言VHDL作为其CAD 或EDA 软件输入与输出的标准, 其中ALTEKA公司提供的综合工具Max+Plus Ⅱ,具有全面的逻辑设计能力, 从编辑、综合、布线到仿真、下载都十分方便。

2 设计方案与结果分析

VHDL 语言设计十进制计数器的源程序\:

library ieee;

use ieee.stdlogic1164.all;

use ieee.stdlogicunsigned.all;

entity jsq is

port(cp,rst:in stdlogic;

cp1:out stdlogic;

q:out stdlogicvector(3 downto 0));

end jsq;

architecture behave of jsq is

begin

process(cp,rst)

variable q1:stdlogicvector(3 downto 0);

begin

if rst=′1′ then q1:=(others=>′0′);

elsif cp′event and cp=′1′then

if q1

else q1:=(others=>′0′);

end if;

q

end if;

if q1="1001" then cp1

else cp1

end if;

end process;

end behave;

在程序输入完成后, 经Max+Plus Ⅱ中的Compiler编译通过后,可用Stimulator进行仿真,查看仿真结果,如图2所示。

图2 经Max+Plus Ⅱ编译,通过Stimulator得到的仿真结果

也可以加入七段显示译码器的VHDL设计来通过实验箱的七段数码管扫描显示计数结果\仿真结果如图3所示。

图3 译码器的仿真结果

代码如下:

library IEEE;

use ieee.stdlogic1164.all;

use ieee.stdlogicunsigned.all;

entity huay is

port( q1:in stdlogicvector(3 downto 0);

light:OUT stdlogicvector(6 downto 0));

end huay;

architecture behave of huay is

begin

process(q1)

begin

case q1 is

when"0000"=>light

when"0001"=>light

when"0010"=>light

when"0011"=>light

when"0100"=>light

when"0101"=>light

when"0111"=>light

when"1000"=>light

when"1001"=>light

when others=>light

end case;

end process;

end behave;

最终实现的顶层文件原理图如图4所示。

图4 顶层文件原理图

顶层文件设计如图4所示,通过该文件可以实现译码,下载到EDA实验箱时,便可于实验箱的数码管上读出相应的脉搏数,如图5所示。

图5 通过数码管得到的最终仿真图

VHDL语言与医学内容的结合,除了应用于脉搏的测量,还可应用于心跳及呼吸等的测量,以及受人体对声、光刺激后的生理反应时间的测定\等。电子自动化设计(EDA)及其相关技术,在医学领域具有巨大的应用前景,有待进一步的研究和发掘。

3 结 语

VHDL是一种随着电子技术的不断发展,为满足电路系统化和高度集成化要求而发展起来的一种新型硬件描述语言。VHDL具有广泛的应用范围,在芯片及电路系统设计等方面发挥着日益重要的作用\。以VHDL为核心的EDA技术应用于医学,能直观准确的测量人体的脉搏心跳,呼吸等生理活动,以及受到外界刺激的生理反应等,在医学领域存在广阔的发展空间,随着进一步的探索和实践,必将对医学的发展起到极大的推动作用。

参考文献

[1]陈耀和. VHDL语言设计技术[M]. 北京: 电子工业出版社, 2004.

[2]汪国强. EDA技术及应用[M]. 北京: 电子工业出版社, 2006.

[3]潘泽强. VHDL语言在数字电路教学中的应用[J]. 科技资讯, 2008(35): 15.

[4]张顺兴. 数字电路与系统设计[M]. 南京: 东南大学出版社, 2004.

[5]余孟尝. 数字电子技术简明教程[M]. 3版. 北京: 高等教育出版社, 2006.

[6]朱正伟. EDA技术及应用[M]. 北京: 清华大学出版社, 2005.

[7]周政新. 电子设计自动化实践与训练[M]. 北京: 中国民航出版社, 1998.

[8]江晓安. 数字电子技术[M]. 西安: 西安电子科技大学出版社, 2002.

[9]刘玉英. 一种测量生理反应时间的电路设计[J].现代电子技术, 2008, 31(17): 171-173.

vhdl语言范文第9篇

摘要:本文介绍了基于VHDL硬件描述语言设计的多功能电子时钟的思路和技巧。在QuartusⅡ开发环境中编译和仿真了所设计的程序,并逐一调试验证程序的运行状况。仿真和验证的结果表明,该设计方法切实可行,该电子时钟具有一定的实际应用性。

关键词:电子时钟硬件描述语言 VHDL QuartusⅡ

1 设计原理

电子时钟电路由秒、分、时5个计数模块和6个显示译码模块组成。秒计数模块的计数时钟clk为1Hz的标准信号。当电子时钟处于正常计时状态时,秒计数器的进位输出信号c作为分钟模块的计数信号,分计数模块的进位输出c为小时模块的计数信号。电子时钟除了正常计时外,还能够调整时间。在本文中,通过手动调节din3个输入量的高低电平而分别实现对秒、分、时的调整。

2 功能模块设计

本文中的电子时钟由上述11个模块组成。设计时,首先用VHDL语言编写各个功能模块,分别在QuartusⅡ开发环境下编译、仿真,然后再用顶层文件将各功能模块连接起来。以下介绍各模块的设计方法和技巧。

2. 1 秒、分、时计数模块

秒、分计数模块都是60进制的加法计数器,时计数模块是24进制计数器。与一般的标准计数器不同的是秒、分、时计数模块中分别添加了调节秒、分和小时的功能,即当clk的上升沿到来时,分别调节din的高低电平,就可达到调整秒、分、小时的目的。其中60进制加法器是由一个10进制和一个6进制计数器组成的。10进制计数器VHDL程序:entity counter10 is;Port ( clk : in std_logic;reset : in std_logic;din : in std_logic_vector(3 downto 0);dout : out std_logic_vector(3 downto 0);c:out std_logic);end counter10;architecture Behavioral of counter10 is;signal count : std_logic_vector(3 downto 0);begin;dout \

6进制计数器VHDL程序与10进制计数器VHDL程序相似,只需修改初始定义语句和计数语句就可实现:if count="101" then;count\

2.2 结果显示模块

6个数码管要正常显示,关键在于位选信号和数码管的一一对应。将4bit二进制数译码,在LED上显示相应数字。其译码器VHDL程序如下:Port (din:in std_logic_vector(3 downto 0 ); --四位二进制码输入dout:out std_logic_vector(6 downto 0) );--输出LED七段码

when "0000" =\> dout\ dout\

when "0010" =\> dout\ dout\

when "0100" =\> dout\ dout\

when "0110" =\> dout\ dout\

when "1000" =\> dout\ dout\

when others =\> dout\

3 电子时钟顶层设计仿真与下载验证

vhdl语言范文第10篇

关键字:VHDL;RAM存储器;分布式RAM;块状RAM;IP核;FPGA

1引言

随着现代EDA技术的发展,可编程逻辑器件已广泛应用于数字信号处理、网络通信、工业控制、计算机相关产品中;存储器是数字应用系统中必不可少的模块。在现代可编程逻辑器件的设计中,为了缩短设计周期,减少开发、调试的时间,通常利用芯片厂家提供的专用IP (Intellectual Property)核完成常见模块的设计。这种调用现有IP核的方法被广泛应用于存储器模块设计中。但是由于IP核的商业性、闭源性[1],使其在使用中,缺乏灵活性和可移植性。

本文重点讨论了用VHDL硬件描述语言,直接调用可编程逻辑器件底层的硬件资源完成可移植通用存储器IP核的设计思路、方法与实例,并给出了一种可在ISE和QuartusII 等设计平台编译下载的RAM随机访问存储器的VHDL语言源程序。

2可编程逻辑器件的

存储器结构与实现

2.1 FPGA芯片的存储器结构

随着通用存储器在应用系统中普遍的使用,各大可编程器件的厂商均在自己的FPGA芯片内嵌入了专用的RAM结构,按照在芯片内的分布情况可以分为分布式(Distribute) RAM和块状(Block)RAM。本文主要讨论Xilinx公司的FPGA结构,其思路、方法对其他公司的FPGA结构也适用。 2.1.1 块状RAM

块状RAM是分布FPGA芯片内部的嵌入式专用同步双口RAM存储单元,通常沿芯片的边缘垂直边排列如图1、图2所示,是FPGA的一个重要资源。高端FPGA的片内RAM规模越来越大,应用也越来越广泛,是SOPC(可编程片上系统)的有力硬件支持。使用片内块状 RAM可以实现单口RAM、双口RAM、同步/异步FIFO、ROM、CAM、大型查找表、数据宽度转换器、循环缓冲器和移位寄存器等常用单元模块,每种应用都支持不同的数据宽度和深度。块状RAM的性能比其他形式的RAM性能优越。又由于是专用的RAM,写入读出通路没有其他逻辑电路,而且嵌入在FPGA内部,与外挂的RAM相比,读写到片内逻辑的延时是相当小的,再加上专用RAM的双读/写同步方式,很容易达到设计的要求。块状RAM之间有专用的布线资源,当RAM容量很大时,也不会影响速度。使用块状RAM与使用外部RAM相比,可以简化印制版(PCB)的设计与制作,提高系统的稳定性[2]。

2.1.2分布式RAM

分布式RAM是利用可配置逻辑模块(CLB)中的查找表(LUT)设计实现的存储器资源。可编程逻辑器件底层单元一般由触发器(FF)和查找表(LUT)组成,Xilinx的底层可编程硬件资源叫SLICE,由2个FF和2个LUT组成,每个CLB模块中有两个SLICE单元,而Altera的底层可编程硬件资源叫LE,由1个FF和1个LUT组成。分布式RAM分布在每个LC中,可以将一个LC作为16×1的同步RAM使用,也可以将两个LC联合起来作为16×2、32×1的同步RAM或者16×1的双口RAM使用,如图3所示。通过级连分布式RAM也可以实现更大容量的存储器[3]。

这种结构的存储器完全由可编程逻辑器件片内资源来实现,结构比较灵活,具有高速的特点,但存储宽度和深度受片内资源限制比较有限,存储容量较小,通常应用于小数据缓冲器、FIFO或寄存器文件,在DSP系统设计中较为常见。

2.1.3 块状RAM与分布式RAM的使用

在一般情况下,系统需要存储一定的数据时,最好使用块状RAM。无论是在资源的合理利用方面,还是稳定性方面,块状RAM都是最好的选择。在要求高速且存储容量较小的情况下也可以使用分布式RAM。但其要占用FPGA芯片内数量有限的触发器资源,所以一般建议当所设计的RAM容量超过1kb时就使用块状RAM。另外由于FPGA芯片内部嵌入的是同步RAM存储单元,在某些设计中如需要使用异步存储器,就必须使用分布式RAM,从而实现异步存储。

3通用存储器的实现

为了调用FPGA芯片内的存储器资源,通常利用芯片厂商提供的工程软件直接调用所提供的通用存储器IP核,按要求设定参数后,直接生成可以在工程中调用的存储器模块。这种方法的优点是方便、快捷,可以缩短设计周期。但是由于IP核本质是具有知识产权的商业软件,其商业性及源代码的封闭性,决定了IP核在使用过程中不可能像开源VHDL代码一样,具有极高的灵活性、扩展性与可移植性;以下就结合代码分析一种基于VHDL语言实现通用存储器描述的思路及方法。

3.1 VHDL语言设计思路

用VHDL实现RAM存储器时,RAM进程的触发信号有时钟信号、片选信号和写信号。时钟信号的上升沿到来时,若片选信号和写信号均为1,这时从数据总线输入的数据被写入地址总线上地址制定的存储单元中,完成RAM的写操作。当时钟信号的上升沿到来时,若片选信号为1、写信号为0,则数据将从相应的存储单元通过数据总线读出,完成RAM的读操作。

为了使代码使用灵活、方便,且具有良好的通用性、可重构性及可移植性,在存储宽度和深度的定义及同步、异步读模式、块状RAM与分布式RAM使用选择定义的过程中,必须利用在VHDL语言中的类属性定义来实现。使用时根据设计需要更改类属性定义参数,即可完成所需类型RAM的设计。

在进程设计过程中,为了使程序能根据设计要求生成不同类型的RAM,整个程序包括了三个子进程,同时利用VHDL语言中的配置语句,根据类属性的定义完成对不同类型RAM生成子进程的选择,生成设计需要的RAM模块。程序流程如图4所示。

根据以上设计思路,实现具有3种模式选择、任意大小与数据宽度的RAM模型,这三种模式分别为:(1)调用分布式RAM资源实现的单口异步读RAM;(2)调用分布式 RAM资源实现的单口同步读带同步清零信号的RAM;(3)调用块状RAM资源实现的单口同步读的RAM。例化后RAM模型的引脚图如图5所示。

3.2 仿真测试

为了仿真需要,假定需要设计一个1024*8位的单口同步读带同步清零信号分布式RAM,对类属性进行按要求设定后,综合报告如下:

Macro Statistics--宏模块数据报告

# LUT RAMs: 1---调用LUT单元

1024x8-bit single-port distributed RAM: 1---创建了1024*8b的单口分布式RAM

# Registers : 1---调用寄存器

8-bit register: 1---创建了8位同步寄存器模块

可以看出通过调用可编程芯片内底层的RAM资源,生成了所要求的1024*8位的单口同步读带同步清零信号分布式RAM。在ModelSim仿真软件输入波形图,仿真结果入图6所示,从时序仿真结果图可以看出设计的正确性。

下载到Altera公司提供的ACEX1K系列的芯片EP1K30QC208-2和Xilinx公司的Spantan II系列芯片 xc2s50-pq208 的实验平台上验证,结果均正确,达到了预期的设计目标[4] [5]。

3.3 基于硬件描述语言的可移植存储器IP核的优势

基于VHDL语言实现的通用存储器IP核经过实验验证,可以在ISE和QuartusII 等设计平台上通过综合、编译,直接调用可编程逻辑芯片的底层资源完成设计。同时使用者可以根据设计需要修改参数,灵活的生成各种模式不同大小的通用存储器。根据不同的设计要求,还可以对代码进行优化、修改,使之增加额外的功能,如自校检、自初始化等等。因此与传统软件化的IP核相比,此方法具备很高的可移植性,及可重构性,同时也具备了良好的灵活性与可扩展性。

4结束语

本文以硬件描述语言作为手段,介绍了基于VHDL语言的一种可移植通用存储器IP核的实现思路和方法及其应用扩展,并举出了基于VHDL语言实现的一种可移植RAM存储器实验模型。由于VHDL的使用很灵活,我们只给出程序的主框架及参考算法,具体细节及功能扩展,使用者可根据要求对代码进行完善,通过各种仿真及测试,达到最优编译效果,完成设计。以上实验研究表明,采用基于VHDL语言实现的可移植通用存储器IP核能很好地解决在数字系统设计中重构性、移植性、灵活性及扩展性的要求,提高了系统设计的效率,其思想方法,具有一定的应用价值和应用前景。

参考文献

[1] 曾繁泰,陈美金.VHDL程序设计.清华大学出版社.2000,8.

[2] 黄智伟,王彦.FPGA系统设计与实践.电子工业出版社.2005,1.

[3] 孙航.Xilinx可编程逻辑器件高级应用与设计技巧.电子工业出版社.2004,8.

[4] Quartus II Help Version 6.0.Copyright? 1995-2006 Altera Corporation.

[5] Xilinx Corporation XAPP464 (v2.0)Copyright?March 1. 2005.

作者简介

宋克俭, 助教,硕士研究生,研究方向为计算机应用技术。

上一篇:英语语言学范文 下一篇:logo语言范文