EDA实验

合集下载

EDA实验报告

EDA实验报告

EDA实验报告班级:姓名:目录实验一:七段数码显示译码器设计 (1)摘要 (1)实验原理 (1)实验方案及仿真 (1)引脚下载 (2)实验结果与分析 (3)附录 (3)实验二:序列检测器设计 (6)摘要 (6)实验原理 (6)实现方案及仿真 (6)引脚下载 (7)实验结果与分析 (8)实验三:数控分频器的设计 (11)摘要 (11)实验原理 (11)方案的实现与仿真 (11)引脚下载 (12)实验结果及总结 (12)附录 (12)实验四:正弦信号发生器 (14)摘要 (14)实验原理 (14)实现方案与仿真 (14)嵌入式逻辑分析及管脚下载 (16)实验结果与分析 (17)附录 (18)实验一:七段数码显示译码器设计摘要:七段译码器是一种简单的组合电路,利用QuartusII的VHDL语言十分方便的设计出七段数码显示译码器。

将其生成原理图,再与四位二进制计数器组合而成的一个用数码管显示的十六位计数器。

整个设计过程完整的学习了QuartusII的整个设计流程。

实验原理:七段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16进制的,为了满足16进制数的译码显示,最方便的方法就是利用译码程序在FPGA\CPLD中来实现。

本实验作为7段译码器,输出信号LED7S的7位分别是g、f、e、d、c、b、a,高位在左,低位在右。

例如当LED7S 输出为“1101101”时,数码管的7个段g、f、e、d、c、b、a分别为1、1、0、1、1、1、0、1。

接有高电平段发亮,于是数码管显示“5”。

实验方案及仿真:I、七段数码显示管的设计实现利用VHDL描述语言进行FPGA上的编译实现七段数码显示译码器的设计。

运行QuartusII在G:\QuartusII\LED7S\下新建一个工程文件。

新建一个vhdl语言编译文件,编写七段数码显示管的程序见附录1-1。

EDA设计实验二 负反馈放大器设计与仿真

EDA设计实验二 负反馈放大器设计与仿真

实验二负反馈放大器设计与仿真1.实验目的(1)熟悉两级放大电路设计方法。

(2)掌握在放大电路中引入负反馈的方法。

(3)掌握放大器性能指标的测量方法。

(4)加深理解负反馈对电路性能的影响(5)进一步熟悉利用Multisim仿真软件辅助电路设计的过程。

2.实验要求1)设计一个阻容耦合两极电压放大电路,要求信号源频率10kHz(峰值1mv),负载电阻1kΩ,电压增益大于100。

2)给电路引入电压串联负反馈:①测试负反馈接入前后电路的放大倍数,输入输出电阻和频率特性。

②改变输入信号幅度,观察负反馈对电路非线性失真的影响。

3.实验内容反馈接入前的实验原理图:1.放大倍数:Au=0.075V/0.707mV=106.0822.输入电阻:Ri=0.707mV/94.48nA=7.483kΩ3.输出电阻:Ro=0.707V/143.311nA=4.934kΩ4.频率特性:fL=357.094Hz,fH=529.108kHz输出开始出现失真时的输入信号幅度:19.807mV反馈接入后的实验电路:开关闭合之后:1.放大倍数:Af=7.005mV/0.707mV=9.9082.输入电阻:Ri=0.707mV/0.198uA=3.57kΩ3.输出电阻:Ro=0.707mV/0.096mA=7.364Ω4.频率特性:fL=67.134Hz,fH=6.212MHz输出开始出现失真时的输入信号幅度≈197mV4.理论值分析由于三极管2N2222A的β=220,所以反馈接入前第一级rbe1=rb+βVT/Ic=6.7kΩ第二级rbe2=rb+βVT/Ic=6.5kΩ第二级输入电阻Ri’=R8||(R7+40%R13)||rbe2=3.65kΩ放大倍数Au=βR4||Ri’*R9||R12/([rbe1+(1+β)R1]rbe2)=107.034输入电阻Ri=R3||(R2+30%R5)||[rbe1+(1+β)R1]=7.484kΩ输出电阻Ro=R9=5.1kΩ反馈接入后:F=0.101放大倍数Af=Au/(1+AuF)=9.056输入电阻Rif=R3||(R2+30%R5)||(1+AuF)Ri=3.621kΩ输出电阻Rof=Ro/(1+AoF)=7.425Ω所以可以得出结论Af≈1/F5.实验结果分析由仿真结果以及理论计算值可以看出,接入负反馈后,放大倍数明显下降,输入电阻变化不明显,输出电阻明显下降,原因是接入电压并联负反馈之后,输出电压基本稳定而输出电流由于负反馈的增加而变大,导致输出电阻变小。

EDA-实验报告

EDA-实验报告

实验一五人表决器设计一、实验目的1 加深对电路理论概念的理解3 加深计算机辅助分析及设计的概念4 了解及初步掌握对电路进行计算机辅助分析的过程二、实验要求制作一个五人表决器,共五个输入信号,一个输出信号。

若输入信号高电平数目多于低电平数目,则输出为高,否则为低。

三、实验原理根据设计要求可知,输入信号共有2^5=32种可能,然而输出为高则有15种可能。

对于本设计,只需一个模块就能完成任务,并采用列写真值表是最简单易懂的方法。

四、计算机辅助设计设A,B,C,D,E引脚为输入引脚,F为输出引脚。

则原理图如1所示图1.1 五人表决器原理图实验程序清单如下:MODULE VOTEA,B,C,D,E PIN;F PIN ISTYPE 'COM';TRUTH_TABLE([A,B,C,D,E]->[F])[0,0,1,1,1]->[1];[0,1,1,1,0]->[1];[0,1,0,1,1]->[1];[0,1,1,0,1]->[1];[1,0,1,1,1]->[1];[1,1,0,1,1]->[1];[1,1,1,0,1]->[1];[1,1,1,1,0]->[1];[1,1,1,0,0]->[1];[1,1,0,1,0]->[1];[1,1,1,1,1]->[1];[1,1,0,0,1]->[1];[1,0,0,1,1]->[1];[1,0,1,0,1]->[1];[1,0,1,1,0]->[1];END五、实验测试与仿真根据题目要求,可设输入分别为:0,0,0,0,0;1,1,1,1,1;1,0,1,0,0;0,1,0,1,1。

其测试程序如下所示:MODULE fivevoteA,B,C,D,E,F PIN;X=.X.;TEST_VECTORS([A,B,C,D,E]->[F])[0,0,0,0,0]->[X];[1,1,1,1,1]->[X];[1,0,1,0,0]->[X];[0,1,0,1,1]->[X];END测试仿真结果如图1.2所示:图1.2 五人表决器设计仿真图可知,设计基本符合题目要求。

eda技术实验报告

eda技术实验报告

eda技术实验报告EDA技术实验报告引言EDA(Electronic Design Automation)技术是电子设计自动化的缩写,是现代电子设计中不可或缺的一环。

它通过计算机辅助设计,提高了电路设计的效率和质量。

本文将介绍EDA技术的背景、应用和实验结果。

背景随着电子产品的不断发展,电路设计变得越来越复杂,传统的手工设计已经无法满足需求。

EDA技术的出现填补了这一空白。

它利用计算机的强大计算能力和算法,帮助设计师完成电路设计、仿真、布局和验证等工作。

应用1. 电路设计EDA技术的核心应用是电路设计。

通过EDA工具,设计师可以绘制电路图、选择器件、进行参数设置等。

EDA工具还可以自动进行电路优化,提高电路性能。

2. 仿真验证在电路设计完成后,需要对电路进行仿真验证。

EDA技术可以提供准确的仿真结果,帮助设计师分析电路的性能和稳定性。

仿真验证可以帮助设计师发现潜在的问题,提前解决。

3. 物理布局物理布局是将电路逻辑转化为实际的物理结构。

EDA技术可以自动进行物理布局,优化电路的面积和功耗。

物理布局的好坏直接影响到电路的性能和可靠性。

4. 电路验证在电路设计完成后,需要进行电路验证,确保电路的正确性和可靠性。

EDA技术可以自动进行电路验证,提供准确的验证结果。

电路验证可以帮助设计师发现设计缺陷,提高电路的可靠性。

实验设计在本次实验中,我们选择了一款EDA工具进行实验。

首先,我们设计了一个简单的数字电路,包括与门和或门。

然后,利用EDA工具进行电路仿真和优化。

最后,对电路进行物理布局和验证。

实验结果通过实验,我们得到了以下结果:1. 仿真结果显示,设计的数字电路在不同输入条件下均能正确输出结果,验证了电路的正确性。

2. 通过优化算法,我们成功提高了电路的性能,减少了功耗和面积。

3. 物理布局结果显示,电路的布局紧凑,满足了设计要求。

4. 电路验证结果显示,电路的功能和性能均符合设计要求,验证了电路的可靠性。

eda技术实验报告

eda技术实验报告

EDA技术实验报告1. 背景介绍EDA(Exploratory Data Analysis)是指探索性数据分析,是数据科学和机器学习中一项重要的任务。

通过EDA技术,我们可以对数据集进行可视化和统计分析,从而深入了解数据的特征和结构,为后续的数据处理和建模提供指导。

2. 实验目的本实验旨在通过使用EDA技术来分析一个给定的数据集,并从中获取有价值的信息。

通过实践,我们将深入了解EDA技术的应用和优势。

3. 实验步骤步骤1:导入数据首先,我们需要将实验所需的数据导入到Python的数据分析库中。

我们可以使用pandas库读取数据集,并将其存储为DataFrame对象,以便后续的分析和处理。

import pandas as pd# 读取数据集data = pd.read_csv('data.csv')步骤2:数据概览在进行数据分析之前,我们先要对数据进行整体的了解。

我们可以通过以下几个步骤来获取数据的概览信息:1.查看数据的前几行,了解数据的结构和格式。

data.head()2.查看数据的基本统计信息,包括均值、标准差、最小值、最大值等。

data.describe()3.检查数据中是否存在缺失值或异常值。

data.isnull().sum()步骤3:数据可视化EDA技术的核心之一是数据可视化。

通过可视化数据,我们可以更直观地理解数据的分布和关系。

下面是几种常用的数据可视化方法:1.直方图:用于展示数值型数据的分布情况,可以帮助我们了解数据的集中趋势和离散程度。

data['column'].plot.hist()2.散点图:用于展示两个数值型变量之间的关系,可以帮助我们发现数据的相关性。

data.plot.scatter(x='column1', y='column2')3.条形图:用于展示类别型数据的分布情况,可以帮助我们比较不同类别之间的差异。

EDA实验报告

EDA实验报告

EDA实验报告一、实验目的本实验旨在通过使用EDA(数据探索性分析)技术,进一步了解和分析所研究数据的特征、分布、关系以及可能存在的异常值等,从而为后续的数据建模和决策提供更加准确的依据。

二、实验步骤1. 数据收集与加载从数据源中获取所需数据集,并使用相应的数据加载工具将数据集导入到实验环境中。

多种数据源包括文件、数据库、API请求等方式均可。

2. 数据检查与预处理对导入的数据进行初步检查,包括数据类型、缺失值、异常值等方面的处理。

根据具体需求,对缺失值可以进行填充或删除操作,对异常值可以通过替换、删除或者修复的方式进行处理。

3. 数据探索性分析a) 描述性统计分析对各个变量进行描述性统计,包括计算均值、中位数、标准差等指标,以直观地了解数据的分布和变异程度。

b) 单变量分析对每个变量进行分析和探索,绘制直方图、箱线图、概率密度图等,以帮助我们了解变量的分布情况、异常值等。

c) 多变量分析使用散点图、柱状图、热力图等方式,对不同变量之间的关系进行分析。

可以通过相关性分析、协方差矩阵等方法来探索变量之间的线性关系。

4. 结果可视化在数据分析过程中,可以使用适当的可视化方法将分析结果直观地展示出来,如绘制折线图、散点图、热力图等。

可视化可以更好地理解数据的特征和趋势。

5. 异常检测与处理在探索性分析过程中,发现异常值后,需要进一步分析和决定如何处理它们。

可以采用剔除、修复等方式,使得数据能够更加符合实际情况。

6. 相关性分析对于关键变量之间的相互关系,可以使用相关性分析等统计方法来衡量它们的相关程度。

这可以帮助我们理解变量之间的影响和作用,以及它们与问题或目标变量之间的关系。

三、实验结果通过对所研究数据集的EDA实验,我们得出以下结论:1. 数据集的缺失值情况较为严重,需要进行适当的处理,以避免因缺失数据引起的结果不准确或失真的问题。

2. 变量A和变量B之间存在较强的正相关关系,即当A增加时,B 也会相应地增加;变量C则与变量A和B之间的关系较弱。

EDA实验报告 (2)

实验一QUARTUS II软件安装、基本界面及设计入门一、实验目的:QUARTUSII是Altera公司提供的EDA工具,是当今业界最优秀的EDA设计工具之一。

提供了一种与结构无关的设计环境,使得电子设计人员能够方便地进行设计输入、快速处理和器件编程。

通过本次实验使学生熟悉QUARTUSII软件的安装,基本界面及基本操作,并练习使用QUARTUS的图形编辑器绘制电路图。

二、实验内容:1、安装QUARTUSII软件;2、熟悉QUARTUSII基本界面及操作;3通过一个4位加法器的设计实例来熟悉采用图形输入方式进行简单逻辑设计的步骤。

三、实验仪器:1、PC机一台;2、QUARTUSII软件;3、EDA实验箱。

四、实验原理:4位加法器是一种可实现两个4位二进制数的加法操作的器件。

输入两个4位二进制的被加数A和B,以及输入进位Ci,输出为一个4位二进制和数D和输出进位数Co。

半加操作就是求两个加数A、B的和,输出本位和数S及进位数C。

全加器有3位输入,分别是加数A、B和一个进位Ci。

将这3个数相加,得出本位和数(全加和数)D和进位数Co。

全加器由两个半加器和一个或门组成。

五、实验步骤:安装QUARTUSII软件;因为实验时我的机器了已经有QUARTUSII软件,所以我并没有进行安装软件的操作。

设计半加器:在进行半加器模块逻辑设计时,采用由上至下的设计方法,在进行设计输入时,需要由下至上分级输入,使用QuartusIIGraphic Editor进行设计输入的步骤如下。

(1)、打开QUARTUSII软件,选择File-new project wizard…新建一个设计实体名为has的项目文件;(2)、新建文件,在block.bdf窗口下添加元件符号,并连接。

如下图:半加器原理图(3)、将此文件另存为has.gdf的文件。

(4)、在主菜单中选择Processing→Start Compilation命令,系统对设计进行编译,同时打开Compilation Report Flow Summary窗体,Status视图显示编译进程。

EDA实验指导书全

实验一Quartus II开发环境入门一、实验目的1、了解QuartusII软件及基本操作2、熟悉图形编辑器Block Builder/Schematic File的设计输入3、掌握电路的编译和适配4、掌握电路仿真与时序分析5、熟悉3/8线译码器工作原理和五人表决器设计二、实验原理1、以3/8线译码器为例,总体思路以EP1C3中的三个拨位开关,SW3,SW2,SW1为三个输入信号,可以代表8种不同的状态,该译码器对这8种状态译码,并把所译码的结果在七个彩灯上显示。

2、三、实验步骤主要仪器和设备:计算机,EDA实验箱。

步骤一:1、建立工程,设计输入。

选择菜单“File”→“New Preject Wizard”将设计文件加入工程中:点击下方的“Next” 按钮,在弹出的对话框中点击“File”栏的按钮,将此工程相关的所有VHDL文件加入进此工程(如果有的话)。

Cyclone系列的EP1C3T144C8按下“Next”后,出现仿真工具选择对话框。

不作任何选择。

4、完成设置点击“Next”后,完成工程的设定,点击“finish”。

步骤二:1、选择File/New或点击主菜单中的空白图标,进入新建程序文件状态,选择VHDL file 。

VHDL程序文件的扩展名是:* .vhd程序代码:-- A simple 3 to 8 decoderlibrary ieee;use ieee.std_logic_1164.all;entity decoder isport ( inp: in std_logic_vector(2 downto 0);outp: out std_logic_vector(7 downto 0)); end decoder;architecture behave of decoder isbeginoutp(0) <= '1' when inp = "000" else '0';outp(1) <= '1' when inp = "001" else '0';outp(2) <= '1' when inp = "010" else '0';outp(3) <= '1' when inp = "011" else '0';outp(4) <= '1' when inp = "100" else '0';outp(5) <= '1' when inp = "101" else '0';outp(6) <= '1' when inp = "110" else '0';outp(7) <= '1' when inp = "111" else '0';end behave;步骤三:1、选择菜单“File”→“New ” →“ Schematic File”,即弹出原理图编辑框。

eda实验报告

eda实验报告
1. 实验目的
通过本次实验,了解EDA(Electronic Design Automation)的基本概念和应用模式,并通过实际操作掌握EDA工具的使用方法和流程。

2. 实验原理
EDA是电子设计自动化的缩写,是指通过计算机技术来实现电子系统设计的各个环节的自动化。

常用的EDA工具有电路仿真、电路布局、原理图设计、印刷电路板设计等。

3. 实验步骤
3.1 电路仿真
首先,我们需打开EDA工具,并导入所需的仿真器和电路元件库。

其次,我们需绘制电路图并进行仿真,根据仿真结果进一步分析和改进电路设计。

3.2 电路布局
在电路设计完成后,我们需进行电路布局,以便更精确地计算
电路性能和参数。

在布局过程中,我们需根据电路设计需求进行
元件排布,并考虑布局紧凑性和功耗等因素。

3.3 原理图设计
电路图设计是EDA工具中非常重要的一个环节,它可以帮助
我们全面了解电路设计的各个细节,确定电路元件的类型和参数,以及进一步优化电路性能。

3.4 印刷电路板设计
在进行电路仿真、布局、原理图设计后,我们需将电路设计转
化为印刷电路板(PCB)的形式。

在进行印刷电路板设计前,我
们需考虑各个细节,在选择印刷方式、器件布局、线路距离、阻
抗匹配等方面进行优化和调整。

4. 实验结论
通过本次实验,我深刻认识到EDA工具在电子设计中的应用
和重要性,并掌握了EDA工具的基本操作方法和流程。

此外,我
了解了EDA工具在电子设计和生产中的优势和局限性,对于今后
电子设计工作的开展和优化有很大的指导意义。

EDA实验报告

EDA实验报告EDA(VHDL编程)实验报告一、引言EDA (Electronic Design Automation) 是一种用于电子设计和验证的自动化工具。

VHDL(VHSIC Hardware Description Language)是一种硬件描述语言,用于描述和建模数字系统。

本实验旨在使用VHDL编程并使用EDA工具进行设计和验证。

二、实验目的1.理解并熟悉VHDL编程2.学会使用EDA工具进行设计和验证3.实践数字系统的建模和仿真三、实验过程1.VHDL编程根据实验要求,我们使用VHDL编程来实现一个4位2选1多路器。

首先,我们定义输入端口和输出端口,并声明所需的信号和变量。

然后,我们编写组合逻辑和时序逻辑以实现所需的功能。

最后,我们将实例化该多路器并指定其输入和输出端口。

2.EDA工具设计和验证我们选择了 Xilinx ISE Design Suite 作为我们的 EDA 工具。

首先,我们创建一个新的项目并选择相应的 FPGA 芯片。

然后,我们添加我们的VHDL 设计文件到项目中,并进行综合、布局和路由。

最后,我们使用仿真工具验证我们的设计。

四、实验结果经过实验,我们成功地编写并实例化了一个4位2选1多路器。

我们使用 Xilinx ISE Design Suite 进行综合、布局和路由,并成功验证了我们的设计。

五、实验总结通过本实验,我们掌握了VHDL编程和EDA工具的使用。

我们学会了使用VHDL描述数字系统,并使用EDA工具进行设计和验证。

这些技能对于电子设计和验证非常重要,并将有助于我们更好地理解和应用数字系统的原理和方法。

在实验过程中,我们也遇到了一些困难和挑战。

例如,我们可能需要更深入地了解VHDL编程的语法和方法,以及如何使用EDA工具的高级功能。

此外,我们还需要更多的实践来提高我们的设计和仿真技能。

总之,本实验有助于我们深入学习和理解数字系统的设计和验证。

通过实践和使用EDA工具,我们能够更好地应用所学知识,提高我们的设计和验证能力。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

河南农业大学课程设计报告设计题目:交通灯控制器的设计学院:理学院专业:电子信息科学与技术班级: 08级电科(2)班学号: 0808101035姓名:石利芳电子邮件: Shiliminanyang@日期: 2011年12 月成绩:指导教师:贾树恒河南农业大学理学院课程设计任务书学生姓名石利芳指导教师贾树恒学生学号0808101035 专业电子信息科学与技术题目交通灯控制器的设计任务与要求主要内容:设计主干道的交叉路口交通信号灯无人自动管理的控制系统.将路口红绿灯的各种亮灯情况定义为不同的状态,路口状况定义为触发条件,组成有限状态机。

要求:(1)采用VHDL语言编写程序,并在QUARTUSII工具平台中进行仿真,下载到EDA实验箱进行验证。

(2)熟练操作设计所用的软硬件系统:Max+plusⅡ软件。

(3)按要求编写课程设计报告,正确绘制程序流程图、实验接线图等,正确阐述设计原理、方法和实验结果。

(4)通过课程设计培养学生严谨的科学态度,认真地工作作风。

(5)在老师的指导下,要求每个学生独立完成课程设计报告的全部内容。

开始日期2011 年 12 月 6 日完成日期2011 年 12 月 15 日课程设计所在单位理学院电子科学系1引言当前,大量的信号灯电路正向着数字化、小功率、多样化、方便人、车、路三者关系的协调,多值化方向发展随着社会经济的发展,城市交通问题越来越引起人们的关注。

,这些城市纷纷修建城市高速道路,在高速道路建设完成的初期,它们也曾有效地改善了交通状况。

然而,随着交通量的快速增长和缺乏对高速道路的系统研究和控制,高速道路没有充分发挥出预期的作用。

而城市高速道路在构造上的特点,也决定了城市高速道路的交通状况必然受高速道路与普通道路耦合处交通状况的制约。

人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。

城市交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。

1.1 设计的目的本次课程设计的目的是通过设计交通灯控制器,了解EDA技术,了解并掌握VHDL硬件描述语言的设计方法和思想,巩固和综合运用所学过的计算机组成原理知识,提高分析、解决计算机技术实际问题的独立工作能力。

1.2 设计的基本内容这次课程设计的题目是交通灯控制器的设计。

设计了主干道的交叉路口交通信号灯无人自动管理的控制系统.将路口红绿灯的各种亮灯情况定义不同的状态,路口状况定义为触发条件,组成有限状态机.基于此模型的交通信号灯控制系统可充分利用现有交通资源,缓解城市交通压力。

2 EDA、VHDL、有限状态机简介2.1 EDA简介EDA是电子设计自动化(Electronic Design Automation)缩写,是90年代初从CAD(计算机辅助设计)、CAM(计算机辅助制造)、CAT(计算机辅助测试)和CAE(计算机辅助工程)的概念发展而来的。

EDA 技术是以计算机为工具,根据硬件描述语言HDL( Hardware Descriptionlanguage)完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局布线、仿真以及对于特定目标芯片的适配编译和编程下载等工作。

典型的EDA工具中必须包含两个特殊的软件包,即综合器和适配器。

综合器的功能就是将设计者在EDA 平台上完成的针对某个系统项目的HDL、原理图或状态图形描述,针对给定的硬件系统组件,进行编译、优化、转换和综合,最终获得我们欲实现功能的描述文件。

综合器在工作前,必须给定所要实现的硬件结构参数,它的功能就是将软件描述与给定的硬件结构用一定的方式联系起来。

也就是说,综合器是软件描述与硬件实现的一座桥梁。

综合过程就是将电路的高级语言描述转换低级的、可与目标器件FPGA/CPLD相映射的网表文件。

适配器的功能是将由综合器产生的王表文件配置与指定的目标器件中,产生最终的下载文件,如JED 文件。

适配所选定的目标器件(FPGA/CPLD芯片)必须属于在综合器中已指定的目标器件系列。

硬件描述语言HDL是相对于一般的计算机软件语言,如:C、PASCAL而言的。

HDL语言使用与设计硬件电子系统的计算机语言,它能描述电子系统的逻辑功能、电路结构和连接方式。

设计者可利用HDL程序来描述所希望的电路系统,规定器件结构特征和电路的行为方式;然后利用综合器和适配器将此程序编程能控制FPGA和CPLD内部结构,并实现相应逻辑功能的的门级或更底层的结构网表文件或下载文件。

目前,就FPGA/CPLD开发来说,比较常用和流行的 HDL主要有ABEL-HDL、AHDL和VHDL。

2.2 VHDL简介VHDL语言是一种用于电路设计的高级语言。

它在80年代的后期出现。

最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言。

但是,由于它在一定程度上满足了当时的设计需求,于是他在1987年成为ANSI/IEEE的标准(IEEE STD 1076-1987)。

1993年更进一步修订,变得更加完备,成为ANSI/IEEE的ANSI/IEEE STD 1076-1993标准。

目前,大多数的CAD厂商出品的EDA软件都兼容了这种标准。

VHDL的英文全写是:VHSIC(Very High Speed Integrated Circuit)Hardware Descriptiong Language.翻译成中文就是超高速集成电路硬件描述语言。

因此它的应用主要是应用在数字电路的设计中。

目前,它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。

当然在一些实力较为雄厚的单位,它也被用来设计ASIC。

关于用VHDL和原理图输入进行CPLD/FPGA设计的粗略比较:在设计中,如果采用原理图输入的设计方式是比较直观的。

你要设计的是什么,你就直接从库中调出来用就行了。

这样比较符合人们的习惯。

但是这样做需要设计人员要在两方面有较高的素质:1.对电路的知识要比较丰富。

2.对CPLD/FPGA的结构比较熟悉。

有了这两个条件才能在设计的过程中选用适当的器件从而提高设计的可靠性、提高器件的利用率及缩短设计的周期。

但是有一个重大的问题是在于,如果你的产品有所改动,需要采用另外的CPLD/FPGA时,你将需要重新输入原理图。

但是当你采用VHDL等高级语言来设计时这些问题都会得到较好的解决。

由于在使用VHDL等高级语言时,有专用的工具来实现将语言描述的电路功能转换为实际的电路所以你就用不着对底层的电路很熟悉,也用不着对CPLD/FPGA的结构很熟悉(因为有专用的工具针对你的描述采用相应的器件)。

当你要换器件时,你只需要将原来设计好的VDHL文件在新器件的设计工具中再次实现就行了。

2.3 有限状态机简介有限状态机是指输出取决于过去输入部分和当前输入部分的时序逻辑电路。

一般来说,除了输入部分和输出部分外,有限状态机还含有一组具有“记忆”功能的寄存器,这些寄存器的功能是记忆有限状态机的内部状态,它们常被称为状态寄存器。

在有限状态机中,状态寄存器的的下一个状态不仅与输入信号有关,而且还与该寄存器的当前状态有关,因此有限状态机又可以认为是组合逻辑和寄存器逻辑的一种组合。

其中,寄存器逻辑的功能是存储有限状态机的内部状态;而组合逻辑有可以分为次态逻辑和输出逻辑两部分,次态逻辑的功能是确定有限状态机的下一个状态,输出逻辑的功能是确定有限状态机的输出。

在实际的应用中,根据有限状态机是否使用输入信号,设计人员经常将其分为Moore型有限状态机和Mealy型有限状态机两种类型。

1 Moore型有限状态机其输出信号仅与当前状态有关,即可以把Moore型有限状态的输出看成是当前状态的函数。

2 Mealy型有限状态机其输出信号不仅与当前状态有关,而且还与所有的输入信号有关,即可以把Mealy型有限状态机的输出看成是当前状态和所有输入信号的函数。

3 设计过程3.1 设计规划根据交通灯控制器的功能与要求,将其总体电路分为controller、分频器、时钟模块。

controller 实现逻辑和时序控制,外部脉冲振荡器的频率选为32 768 kHz,经分频器分频得1 Hz的信号,1 Hz信号用做时钟模块的计数脉冲。

总体框图如图3-1:3.2 各模块的原理及其程序3.2.1时钟模块设计分成时、分、秒三块,秒计时对分频器的输入计数,到达60个时清零并输出一个分钟进位,同样,分钟计时计到60个时清零并输出一个小时进位,小时计时计满24个时则清零。

校准时,set位为高电平,时钟停止走动,时、分、秒各位分别用8位开光设置,其中高四位对应高一位,低四位对应低一位。

VHDL 代码见附录。

时钟模块由VHDL程序实现后,其仿真图如图3-2所示。

图3-2 时钟模块仿真图3.2.2分频器模块设计使用32MHz的晶体振荡器,稳定度高,但需要分频以得到1Hz的秒脉冲,分频器以计数方式实现,当计到16000000个脉冲上升沿输出发生跳变,因此输出端每秒有一个上升沿,即得到1Hz的脉冲。

VHDL代码见附录.分频器模块由VHDL程序实现后,其仿真图如图3-3所示。

图3-3 分频器模块仿真图3.2.3信号控制器模块设计控制器的作用是根据计数器的计数值控制发光二极管的亮、灭,以及输出倒计时数值给七段译管的分译码电路。

此外,当检测到特殊情况(Hold=‘1’)发生时,无条件点亮红色的发光二极管。

VHDL代码见附录.对其用VHDL程序实现后,其仿真图如图3-4所示。

图3-4 信号控制器模块仿真图其中,Sa,Sb分别是a,b路口传感器的信号,aR,aY,aG,aLR,aLY,aLG分别代表控制主干道a的直行红灯、黄灯、绿灯,左转弯红灯、黄灯、绿灯的信号;bR,bY,bG,bLR,bLY,bLG分别代表控制主干道b的直行红灯、黄灯、绿灯,左转弯红灯、黄灯、绿灯的信号;aPR,aPG,bPR,bPG是人行道信号,hold是使能信号。

hold=0时a,b两路口红灯同时亮,便于处理特殊情况。

结束语通过紧张工作,完成了我的设计任务——用VHDL设计交通灯控制器。

通过本次课程设计的学习,我深深的体会到设计课的重要性和目的性所在。

对传统软件工程设计流程有了更深刻的理解,掌握了EDA软件的使用以及如何熟练的、合理的选用集成电路器件。

将书本上的理论知识和实际有机地结合起来,锻炼了实际分析问题和解决问题的能力,提高了适应实际的能力,为今后的学习和实践打下了良好的基础。

参考文献:[1]孙津平.数子电子技术.西安:西安电子科技大学出版社,2002[2]陈振源.电子技术基础.北京:高等教育出版社,2001[3]陈梓城、孙丽霞.电子技术基础.北京:机械工业出版社,2001[4]李中发.数字电子技术.北京:中过水利水电出版社,2001附录1. 时钟模块程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity frequency isport(clk10hz:in std_logic;clk1hz:out std_logic);end frequency;architecture count of frequency issignal tout:integer range 0 to 4;signal clk:std_logic;beginprocess(clk10hz)beginIf rising_edge(clk10hz) thenif tout=4 thentout<=0;clk<=not clk;else tout<=tout+1;end if;end if;end process;clk1hz<=clk;end count;2.分频器模块程序:Library ieee;Use ieee.std_logic_1164.all;Use ieee.std_logic_arith.all;Use ieee.std_logic_unsigned.all;Entity pulse isPort(clock,en:in std_logic;Clk:out std_logic);End pulse;Architecture behavioral of pulse isBeginCounter:process(clock,en)Variable count2:integer;Variable clk0:std_logic;BeginIf en='0' thenCount2:=0;Clk0:='0';Else if clock' event and clock ='1'thenCount2:=count2+1;If count2=16000000 thenClk0:='1';Else if count2=32000000 thenCount2:=0;Clk0:='0';End if;End if;end if;Clk<=clk0;End if;end process counter;End Behavioral;3. 信号控制器模块程序:libraRy ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity controller isport( clock,reset,hold:in std_logic;flash:out std_logic;numa,numb:out integer range 0 to 25;aR,aG,aY:out std_logic;bR,bG,bY:out std_logic);end controller;aRchitecture rtl of controller issignal countnum:integer range 0 to 50;beginprocess(clock)beginif reset='1' thencountnum<=0;elsif rising_edge(clock) thenif hold='1' thenflash<='1';elseflash<='0';if countnum=49 thencountnum<=0;elsecountnum<=countnum+1;end if;end if;end if;end process;process(clock)beginif rising_edge(clock) thenif hold='1' thenaR<='1';bR<='1';aG<='0';bG<='0';aY<='0';bY<='0';elseif countnum<=19 thennuma<=20-countnum;aR<='0';aG<='1';aY<='0';elsif countnum<=24 thennuma<=25-countnum;aR<='0';aG<='0';aY<='1';elsenuma<=50-countnum;aR<='1';aG<='0';aY<='0';end if;if countnum<=24 thennumb<=25-countnum;bR<='1';bG<='0';bY<='0';elsif countnum<=44 thennumb<=45-countnum;bR<='0';bG<='1';bY<='0';elsenumb<=50-countnum;bR<='0';bG<='0';bY<='1';end if;end if;end if;end process;end;。

相关文档
最新文档