文档库 最新最全的文档下载
当前位置:文档库 › EDA实验.doc

EDA实验.doc

EDA实验.doc
EDA实验.doc

实验一、设计8位全加器

一、实验目的

熟悉使用MAX+plus II的原理图输入方法设计简单组合电路,掌握层次化设计的方法,通过一个8为全加器的设计把握利用EDA软件进行电子线路设计的详细流程。

二、实验原理

一个8位全加器可以由八个一位全加器构成,加法器间的进位可以通过串行方式实现,即将低位加法器的进位输出与相邻高位加法器低位进位相连。一位全加器是由两个半加器和一个或门组成。

三、实验内容及步骤

一、模仿课本学习半加器设计

安装运行max+plus按照课本步骤自己设计出一个半加器如下:

半加器原理图如下所示:

半加器仿真波形图如下图所示:

一位全加器原理图如下所示:

一位全加器仿真波形如下图所示:

2,建立一个更高层次的原理图设计,利用以上获得的1位全加器构成8位全加器,并完成编译、综合、适配、仿真、和硬件测试。建议选择电路模式1(附图F-2):键2、键1输入8位加数:键4、键3输入8位被加数:数码6和数码5显示加和:D8显示进位cout。

八位全加器原理图如下所示:

八位全加器波形图如下所示:

实验二简单组合电路、时序电路设计一、实验目的

熟悉MAX+plusII的VHDL文本设计流程全过程,学习简单组合逻辑电路设计、多层次电路设计、仿真。

二、实验内容

1.按照4.4节给出步骤,利用MAX+plusII完成2选1多路选择器的文本输入(mux21a.vhd)

和仿真测试步骤,给出仿真波形。

2.将4.4节的多路选择器看成是一个元件mux21a,利用元件例化语句描述图4-38,并将此

文件存放在muxfile中。参考程序:

3.

4.

三、实验步骤及分析

2选1多路选择器文本输入:

编译成功:

时序仿真

输入波形图

建立波形文件及参量设置

实验内容2

代码如下:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY muxk IS

PORT(a1,a2,a3,s0,s1: IN STD_LOGIC;

OUTy: OUT STD_LOGIC);

END ENTITY muxk;

ARCHITECTURE BHV OF muxk IS

COMPONENT mux21a

PORT(a,b,s: IN STD_LOGIC;

y: OUT STD_LOGIC);

END COMPONENT;

SIGNAL tmp:STD_LOGIC;

BEGIN

U1:mux21a PORT MAP(a=>a2,b=>a3,s=>s0,y=>tmp); U2:mux21a PORT MAP(a=>a1,b=>tmp,s=>s1,y=>outy); END ARCHITECTURE BHV;

编译通过:

波形如下:

波形设置及仿真通过:

波形输出:

实验三、8位十六进制频率计设计

一、实验目的

设计8位十六进制频率计,学习较复杂的数字系统的设计方法。

二、实验原理

根据频率的定义和频率测量的基本原理,测定信号的频率必须有一个脉宽为1秒的输入信号脉冲计数允许信号;1秒计数结束后计数值锁入锁存器的所存信号并为下一次测频计数周期作准备的计数器清零信号。这三个信号可以由一个测频控制信号发生器产生,即图中的TFCTRL.

三、设计要求

TFCTRL的计数使能信号CNT-EN能产生一个1秒脉宽的周期信号,并对频率计中的32为二进制计数器COUNTER32B的ENABL使能端进行同步控制。当CNT_EN高电平时计数允许;低电平是计数停止,并保持其所计数值。在停止计数期间,首先需要一个锁存信号LOAD的上跳沿并将计数器在前一秒的计数值锁存在各锁存器REG32B中,并由外部的十六进制7段译码器译出,显示计数值。设置锁存器的好处是数据显示稳定,不会由于周期性的信号而不断闪烁。锁存信号后,必须有一清零信号RST_CNT对计数器进行清零,为下一秒的计数操作做准备。工作时序如下

四、实验内容

1.分别仿真测试模块例5-24/25/26,再结合5-27完成频率计的完整设计和硬件实现,

并给出其测评时序波形及其分析。

5-24:测频控制电路】

代码如下:

VHDL程序:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY FTCTRL IS

PORT(CLKK:IN STD_LOGIC;

CNT_EN:OUT STD_LOGIC;

RST_CNT:OUT STD_LOGIC;

Load:OUT STD_LOGIC);

END FTCTRL;

ARCHITECTURE behav OF FTCTRL IS

SIGNAL Div2CLK:STD_LOGIC;

BEGIN

PROCESS(CLKK)

BEGIN

IF CLKK'EVENT AND CLKK='1'THEN

Div2CLK<=NOT Div2CLK;

END IF;

END PROCESS;

PROCESS(CLKK,Div2CLK)

BEGIN

IF CLKK='0' AND Div2CLK='0' THEN RST_CNT<='1';

ELSE RST_CNT<='0';END IF;

END PROCESS;

Load<=NOT Div2CLK; CNT_EN<=Div2CLK;

END behav;

波形分析:

符合要求:计数使能信号CNT-EN能产生一个1秒脉宽的周期信号,并对频率计中的32为二进制计数器COUNTER32B的ENABL使能端进行同步控制。当CNT_EN高电平时计数允许;低电平是计数停止,并保持其所计数值。在停止计数期间,首先需要一个锁存信号LOAD的上跳沿并将计数器在前一秒的计数值锁存在各锁存器REG32B中,并由外部的十六进制7段译码器译出,显示计数值。设置锁存器的好处是数据显示稳定,不会由于周期性的信号而不断闪烁。锁存信号后,必须有一清零信号RST_CNT对计数器进行清零,为下一秒的计数操作做准备。

5-25 32位锁存器

VHD程序:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY REG32B IS

PORT(LK:IN STD_LOGIC;

DIN:IN STD_LOGIC_VECTOR(31 DOWNTO 0); DOUT:OUT STD_LOGIC_VECTOR(31 DOWNTO 0)); END REG32B;

ARCHITECTURE behav OF REG32B IS

BEGIN

PROCESS(LK, DIN)

BEGIN

IF LK'EVENT AND LK = '1' THEN DOUT <= DIN; END IF;

END PROCESS;

END behav;

仿真结果:

5—26 32位计数器

VHDL程序:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY COUNTER32B IS

PORT(FIN:IN STD_LOGIC;

CLR:IN STD_LOGIC;

ENABL:IN STD_LOGIC;

DOUT:OUT STD_LOGIC_VECTOR(31 DOWNTO 0)); END COUNTER32B;

ARCHITECTURE behav OF COUNTER32B IS SIGNAL CQI :STD_LOGIC_VECTOR(31 DOWNTO 0); BEGIN

PROCESS(FIN,CLR,ENABL)

BEGIN

IF CLR='1'THEN CQI<=(OTHERS=>'0');

ELSIF FIN'EVENT AND FIN='1'THEN

IF ENABL='1'THEN CQI<=CQI+1;END IF;

END IF;

END PROCESS;

DOUT<=CQI;

END behav;

仿真结果

5-27 频率计顶层文件

LIBRARY IEEE; --频率计顶层文件

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY FREQTEST IS

PORT ( CLK1HZ : IN STD_LOGIC;

FSIN : IN STD_LOGIC;

DOUT : OUT STD_LOGIC_VECTOR(31 DOWNTO 0) ); END FREQTEST;

ARCHITECTURE struc OF FREQTEST IS

COMPONENT FTCTRL

PORT ( CLKK : IN STD_LOGIC;

CNT_EN : OUT STD_LOGIC;

RST_CNT : OUT STD_LOGIC;

Load : OUT STD_LOGIC );

END COMPONENT;

COMPONENT COUNTER32B

PORT ( FIN : IN STD_LOGIC;

CLR : IN STD_LOGIC;

ENABL: IN STD_LOGIC;

DOUT : OUT STD_LOGIC_VECTOR(31 DOWNTO 0); END COMPONENT;

COMPONENT REG32B

PORT ( LK: IN STD_LOGIC;

DIN : IN STD_LOGIC_VECTOR(31 DOWNTO 0);

DOUT: out STD_LOGIC_VECTOR(31 DOWNTO 0) ); END COMPONENT;

SIGNAL TSTEN1 : STD_LOGIC;

SIGNAL CLR_CNT1 : STD_LOGIC;

SIGNAL Load1 : STD_LOGIC;

SIGNAL DTO1 : STD_LOGIC_VECTOR(31 DOWNTO 0);

SIGNAL CARRY_OUT1 : STD_LOGIC_VECTOR(6 DOWNTO 0);

BEGIN

U1 : FTCTRL PORT MAP( CLKK =>CLK1HZ,CNT_EN=> TSTEN1,RST_CNT => CLR_CNT1, Load => Load1 );

U2 : REG32B PORT MAP( CLOCK => Load1, DA TA => DTO1,DOUT => DOUT);

U3 : COUNTER32B PORT MAP(FIN => FSIN,CLR => CLR_CNT1,ENBAL => TSTEN1, DOUT => DTO1 );

END struc;

五、实验结果及分析

实验四、用状态机实现对ADC0809的采样

控制电路

一、实验目的

学习用状态机对A/D转换器ADC0809的采样控制电路的实现。

二、实验原理

ADC0809是CMOS的8位A/D转换器,片内有8路模拟开关,可控制8个模拟量中的一个进入转换器中。ADC0809的精度为8位,转换时间约100us,含锁存控制的8路多路开关,输出有三态缓冲器控制,单5V电源供电。

三、实验内容:

利用MAX+plus II对例7-12进行文本编辑输入和仿真测试,给出仿真波形,最后进行引脚锁定并进行测试,硬件验证例7-12对ADC0809的控制功能。

LIBRARY IEEE;

三、波形仿真

西安电子科技大学EDA实验报告

EDA大作业及实验报告

实验一:QUARTUS Ⅱ软件使用及组合电路设计仿真 实验目的: 学习QUARTUS Ⅱ软件的使用,掌握软件工程的建立,VHDL源文件的设计和波形仿真等基本内容; 实验内容: 1.四选一多路选择器的设计 首先利用QuartusⅡ完成4选1多路选择器的文本编辑输入(mux41a.vhd)和仿真测试等步骤,给出仿真波形。 步骤: (1)建立工作库文件夹和编辑设计文件; (2)创建工程; (3)编译前设置; (4)全程编译; (5)时序仿真; (6)应用RTL电路图观测器(可选择) 实验程序如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux41 IS PORT( S10:IN STD_LOGIC_VECTOR(1 DOWNTO 0); A,B,C,D:IN STD_LOGIC; Q:OUT STD_LOGIC ); END ENTITY mux41; ARCHITECTURE bhv OF mux41 IS BEGIN PROCESS(A,B,C,D,S10) BEGIN IF S10="00" THEN Q<=A; ELSIF S10="01" THEN Q<=B; ELSIF S10="10" THEN Q<=C; ELSE Q<=D; END IF; END PROCESS; END bhv; 波形仿真如图:

其中,分别设置A,B,C,D四个输入都为10.0ns的方波,其占空比分别为25%,50%,75%,90%以作为四种输入的区分,使能端s10以此输入00(即[0]),01(即[1]),10(即[2]),11(即[3]),可以观察到输出端Q依次输出分别为A,B,C,D。试验成功。 其RTL电路图为: 2.七段译码器程序设计仿真 2.1 原理:7段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16进制的,为了满足16进制数的译码显示,最方便的方法就是利用VHDL译码程序在FPGA或CPLD中实现。本项实验很容易实现这一目的。例1作为7段BCD码译码器的设计,输出信号LED7S的7位分别接如实验图1数码管的7个段,高位在左,低位在右。例如当LED7S输出为"0010010" 时,数码管的7个段:g、f、e、d、c、b、a分别接0、0、1、0、0、1、0,实验中的数码管为共阳极的,接有低电平的段发亮,于是数码管显示“5”。 实验图1 数码管及其电路 2.2 实验内容:参考后面的七段译码器程序,在QUARTUS II上对以下程序进行编辑、编译、综

《EDA》实验指导书2013-6-1

辽东学院自编教材 《可编程逻辑器件原理及应用实验》指导书 李海成编 (计算机科学与技术、电子信息工程专业用) 姓名: 学号: 班级: 信息技术学院 2013年6月

目录 目录 (1) 实验一MAX+PLUS-II设计三八译码器......... 错误!未定义书签。实验二半加器 . (2) 实验三带进位输入的8位加法器 (4) 实验四数据比较器 (6) 实验五编码器 (9) 实验六组合逻辑电路的设计 (12) 实验七计数器 (14) 实验八触发器功能的模拟实现 (17)

(被加数)Ai (被加数)Bi (半加和)Hi (本位进位)Ci 实验二 半加器 实验类型: 验证性 实验课时: 2 指导教师: 李海成 时 间:201 年 月 日 课 次:第 节 教学周次:第 周 实验分室: 实验台号: 实 验 员: 一、 实验目的 1.设计并实验一个一位半加器 2.掌握CPLD/FPGA 组合逻辑设计基本方法。 二、 实验原理 计算机中数的操作都是以二进制进位的,最基本的运算就是加法运算。按照进位是否加入,加法器分为半加器和全加器电路两种。计算机中的异或指令的功能就是求两个操作数各位的半加和。一位半加器有两个输入、输出,如图2-1。 图2-1 一位半加器示意图 表2-1 一个半加大路的真值表如表2-1所示,根据真值表可得到半加器的函数表达式: Bi Ai Bi Ai Hi ?+?= Bi Ai Ci ?= 三、 实验连线 半加器的两个输入所对应的管脚同两位拨码开关相连,两个输入管脚名为a 、b ;两个输出所对应的管脚同两位发光二极管相连,两个输出管脚名为 c0和s,其中c0表示进位, s 表示相加结果。 四、

EDA实验指导书

实验一上机学习电路原理图的绘制(2) 一、设计目的 1. 掌握PROTEL软件的安装、运行及卸载,掌握Protel 99 SE的基本操作; 2. 掌握设计管理器的使用和设计环境的设置,熟悉常用元件库和各主要菜单及命令的使用; 3.学习电路原理图的基本绘图方法 二、设计内容 1.设置原理图的环境参数,添加相应的元件库文件 2.绘制课本P92页的一个D/A功能模块电路图,其中由一片12位的D/A、两片运放、一些电阻和电容组成 图1-1 实验1电路原理图实例 三、设计设备和仪器 1.计算机 1 台(CPU要求Pentium 166MHz以上,推荐内存应为16MB以上,显示器分辨率为800×600(或1024×768)模式。) 2.Protel 99SE 软件 四、设计方法 根据电路图加载相应的元件库文件,然后选择放置电子元件,编辑各元件并精确调整元件位置。对放置好的元件根据例图连接导线,绘制总线和总线出入端口,放置网络标号及电源和输入输出端口。最后放置注释文字。 五、实验步骤 (1)新建名为自己学号姓名的设计数据库 点击“NEW新建”新建数据库文件 在上图所示的选项栏里设置名为自己姓名学号的数据库文件 (2)建立名为自己姓名的原理图文件

点击上图所示图标建立名为自己姓名的原理图文件(3)进入原理图设计环境,修改文件名并修改图纸大小为A4 点击下图中“Options”选项设置图纸大小 (4)加载常用元件库 (5)从元件库中选出需用元件放在原理图设计工作面上 (6)利用绘图工具对所有元器件进行连线 最终原理图如图所示。 六、设计报告 1.明确实验目的和实验要求; 2.写出详细的实验内容和步骤; 3.写出实验中遇到的问题及改正的方法 七、注意事项 熟悉绘图工具的功能和用法是绘制好电路原理图的关键。

EDA实验报告

目录 第一部分实验开发系统概述及使用说明.............................................................. 1第一章EDA实验系统 ....................................................................................... 1第二章EDA/SOPC实验系统 ............................................................................ 7第二部分实验部分............................................................................................ 10实验一EDA工具基本操作与应用 ........................................................... 10实验二计数器设计..................................................................................... 24实验三串入/并出移位寄存器实现 ........................................................... 26实验四四人抢答器设计............................................................................. 28实验五序列检测器设计............................................................................. 29实验六DDS信号源的设计........................................................................ 30实验七交通灯控制器设计......................................................................... 31实验八数字钟设计..................................................................................... 32实验九出租车计费器设计......................................................................... 33实验十频率计的实现................................................................................. 34附录——FPGA接口对照表 ............................................................................ 35

EDA实验指导 基于FPGA的动态扫描电路设计new

FPGA实验指导及记录 实验三基于FPGA的数码管动态扫描电路设计 1.实验目的: (1)掌握FPGA工作的基本原理、FPGA硬件平台的使用; (2)熟悉7段数码管显示译码电路的设计。 (3)掌握数码管动态扫描显示原理及动态扫描电路的设计。 2.实验任务:利用FPGA硬件平台上的6位数码管动态显示计数器输出数据。 3.电路设计 (1)顶层电路 由分频模块fre_div,计数器模块counter100,译码显示模块diaplay构成。分频模块fre_div将可将实验平台晶体振荡器提供的50MHz时钟信号分频,输出500Hz,1KHz及1Hz三种信号备用,conter100模块实现模100计数功能,display模块为数码管动态显示模块,实现计数数字在6位数码管上的动态显示。 (2)分频器模块fre_div 该模块已经设计完成,存放在F盘502文件夹里,使用时请自行拷贝至当前工程文件夹,并按设计需要选择合适的输出。 (3)计数器模块counter100 该计数器模块实现模100计数。此处同学们应掌握数据总线的画法。

(4)译码显示模块display 该模块由counter6模块,dig_select模块,seg_select模块以及decoder模块构成,请同学们自行完成该模块总体设计,当display模块的输入信号scanclk频率为1KHz时,数码管扫描周期为36ms,每次扫描每位数码管显示时长6ms。各子模块设计思路如下。 a)counter6模块 该模块需使用74390设计一个模6的计数器。请在空白处做预设计,画出电路图。 b)dig_select模块 该模块用于选择6位数码管中的某一位显示相应字形。74138为3-8译码器,功能表见附录。

EDA实验报告

EDA 实验报告 实验一:组合电路的设计 实验内容是对2选1多路选择器VHDL 设计,它的程序如下: ENTITY mux21a IS PORT ( a, b : IN BIT; s : IN BIT; y : OUT BIT ); END ENTITY mux21a; ARCHITECTURE one OF mux21a IS SIGNAL d,e : BIT; BEGIN d <= a AND (NOT S) ; e <= b AND s ; y <= d OR e ; END ARCHITECTURE one ; Mux21a 仿真波形图 以上便是2选1多路选择器的VHDL 完整描述,即可以看成一个元件mux21a 。mux21a 实体是描述对应的逻辑图或者器件图,图中a 和b 分别是两个数据输入端的端口名,s 为通道选择控制信号输入端的端口名,y 为输出端的端口名。Mux21a 结构体可以看成是元件的内部电路图。最后是对仿真得出的mux21a 仿真波形图。 Mux21a 实体 Mux21a 结构体

实验二:时序电路的设计 实验内容D 触发器的VHDL 语言描述,它的程序如下: LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY DFF1 IS PORT (CLK : IN STD_LOGIC ; D : IN STD_LOGIC ; Q : OUT STD_LOGIC ); END ; ARCHITECTURE bhv OF DFF1 IS BEGIN PROCESS (CLK) BEGIN IF CLK'EVENT AND CLK = '1' THEN Q <= D ; END IF; END PROCESS ; END bhv; D 触发器的仿真波形图 最简单并最具代表性的时序电路是D 触发器,它是现代可编程ASIC 设计中最基本的时序元件和底层元件。D 触发器的描述包含了VHDL 对时序电路的最基本和典型的表达方式,同时也包含了VHDL 中许多最具特色的语言现象。D 触发器元件如上图所示,其在max+plus2的仿真得出上面的波形 D 触发器

基于VHDL语言的EDA实验报告(附源码)

EDA 实验报告 ——多功能电子钟 姓名:张红义 班级:10级电科五班 学号:1008101143 指导老师:贾树恒

电子钟包括:主控模块,计时模块,闹钟模块,辅控模块,显示模块,蜂鸣器模块,分频器模块。 1.主控模块: 主要功能:控制整个系统,输出现在的状态,以及按键信息。 源代码: libraryieee; use ieee.std_logic_1164.all; useieee.std_logic_arith.all; useieee.std_logic_unsigned.all; entity mc is port(functionswitch,k,set,lightkey: in std_logic; chose21,setout: out std_logic; lightswitch:bufferstd_logic; modeout,kmodeout : out std_logic_vector(1 downto 0); setcs,setcm,setch,setas,setam,setah:outstd_logic); end mc; architecture work of mc is signalmode,kmode:std_logic_vector(1 downto 0); signal light,chose21buf:std_logic; signalsetcount:std_logic_vector(5 downto 0); begin process(functionswitch,k,set,lightkey) begin iffunctionswitch'event and functionswitch='1' then mode<=mode+'1'; end if; iflightkey'event and lightkey='1' then lightswitch<=not lightswitch; end if; if mode="01" thenchose21buf<='0'; else chose21buf<='1'; end if; ifk'event and k='1' then if mode="01" or mode="11" then kmode<=kmode+'1'; end if;end if; if set='1' then if mode = "01" then ifkmode="01" then setcount<="000001"; elsifkmode="10" thensetcount<="000010"; elsifkmode="11" then setcount<="000100";

EDA实验指导书

实验一 MAX+PLUSII软件的使用 [实验目的] 掌握MAX+PLUSII软件的使用。 [实验内容] 学习MAX+PLUSII软件的设计操作步骤。 [实验原理] MAX+PLUSII软件介绍。 MAX+PLUSII软件功能简介: 1 原理图输入(Graphic Editor) MAX+PLUSII软件具有图形输入能力,用户可以方便的使用图形编辑器输入电路图,图中的元器件可以调用元件库中元器件,除调用库中的元件以外,还可以调用该软件中的符号功能形成的功能块。 2 硬件描述语言输入(Text Editor) MAX+PLUSII软件中有一个集成的文本编辑器,该编辑器支持VHDL,AHDL和Verilog硬件描述语言的输入,同时还有一个语言模板使输入程序语言更加方便,该软件可以对这些程序语言进行编译并形成可以下载配置数据。 3 波形编辑器(waveform Editor) 在进行逻辑电路的行为仿真时,需要在所设计电路的输入端加入一定的波形,波形编辑器可以生成和编辑仿真用的波形(*.SCF文件),使用该编辑器的工具条可以容易方便的生成波形和编辑波形。 4 编译与仿真 当设计文件被编译好,并在波形编辑器中将输入波形编辑完毕后,就可以进行行为仿真了,通过仿真可以检验设计的逻辑关系是否准确。 5 器件编程 当设计全部完成后,就可以将形成的目标文件下载到芯片中,实际验证设计的准确性。[实验步骤] 设计过程如下: 1)输入项目文件名(File/Project/Name) 2)输入源文件(图形、VHDL、AHDL、Verlog和波形输入方式) (Max+plusⅡ/graphic Editor, Max+plusⅡ/Text Editor, Max+plusⅡ/Waveform Editor) 3)指定CPLD型号(Assign/Device) 4)设置管脚、下载方式和逻辑综合的方式 (Assign/Global Project Device Option,Assign/Global Logic Synthesis) 5)保存并检查源文件(File/project/Save & Check) 6)指定管脚(Max+plusⅡ/Floorplan Editor) 7)保存和编译源文件(File/project/Save & Compile) 8)生成波形文件(Max+plusⅡ/Waveform Editor) 9)仿真(Max+plusⅡ/Simulator) 10)下载配置(Max+plusⅡ/Programmer) [实验报告要求] 不做要求。 实验二简单组合逻辑电路设计 [实验目的] 1 通过本实验提供的实例,掌握组合逻辑电路的设计方法。

EDA实验

河南农业大学 课程设计报告 设计题目:交通灯控制器的设计 学院:理学院 专业:电子信息科学与技术 班级: 08级电科(2)班 学号: 0808101035 姓名:石利芳 电子邮件: Shiliminanyang@https://www.wendangku.net/doc/389751485.html, 日期: 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程序

09EDA实验指导书

EDA实验指导书

目录 实验一基于QUARTUSII图形输入电路的设计 (2) 实验二含异步清零和同步使能的加法计数器 (5) 实验三图形和VHDL混合输入的电路设计 (7) 实验四矩阵键盘接口电路的设计 (10) 实验五交通灯控制电路实验 (16) 附图EP1K10TC100管脚图 (24) 主芯片:ACEX 1K 系列的EP1K10TC100-3 下载电缆:Byte Blaster II

实验一基于QUARTUSII图形输入电路的设计 一、实验目的 1、通过一个简单的3线—8线译码器的设计,掌握组合逻辑电路的设计方法。 2、初步了解QUARTUSII原理图输入设计的全过程。 3、掌握组合逻辑电路的静态测试方法。 二、实验原理 3线-8线译码器三输入,八输出。当输入信号按二进制方式的表示值为N时,输出端标号为N的输出端输出高电平表示有信号产生,而其它则为低电平表示无信号产生。因为三个输入端能产生的组合状态有八种,所以输出端在每种组合中仅有一位为高电平的情况下,能表示所有的输入组合。其真值表如表1-1所示 输入输出 D2 D1 D0 Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 表1-1 3线-8线译码器真值表 译码器不需要像编码器那样用一个输出端指示输出是否有效。但可以在输入中加入一个输出使能端,用来指示是否将当前的输入进行有效的译码,当使 能端指示输入信号无效或不用对当前信号进行译码时,输出端全为高电平,表 示无任何信号。本例设计中没有考虑使能输入端,自己设计时可以考虑加入使 能输入端时,程序如何设计。 三、实验内容 在本实验中,用三个拨动开关来表示3线-8线译码器的三个输入(D2-D0);用

EDA交通灯实验报告

实验:交通灯设计 一、设计任务及要求: 设计任务:模拟十字路口交通信号灯的工作过程,利用实验板上的两组红、黄、绿LED作为交通信号灯,设计一个交通信号灯控制器。要求: (1)交通灯从绿变红时,有4秒黄灯亮的间隔时间; (2)交通灯红变绿是直接进行的,没有间隔时间; (3)主干道上的绿灯时间为40秒,支干道的绿灯时间为20秒; (4)在任意时间,显示每个状态到该状态结束所需的时间。 主干道 图1 路口交通管理示意图 设计要求: (1)采用VHDL语言编写程序,并在QuartusII工具平台中进行仿真,下载到EDA实验箱进行验证。 (2)编写设计报告,要求包括方案选择、程序清单、调试过程及测试结果。 二、设计原理 1、设计目的: 学习DEA开发软件和QuartusII的使用方法,熟悉可编程逻辑器件的使用。通过制作来了解交通灯控制系统,交通灯控制系统主要是实现城市十字交叉路口红绿灯的控制 2、设计说明

(1)第一模块:clk时钟秒脉冲发生电路 在红绿灯交通信号系统中,大多数情况是通过自动控制的方式指挥交通的。 因此为了避免意外事件的发生,电路必须给一个稳定的时钟(clock)才能让系统正常运作。 模块说明: 系统输入信号: Clk: 由外接信号发生器提供256的时钟信号; 系统输出信号: full:产生每秒一个脉冲的信号; (2)第二模块:计数秒数选择电路 计数电路最主要的功能就是记数负责显示倒数的计数值,对下一个模块提供状态转换信号。 模块说明: 系统输入:full: 接收由clk电路的提供的1HZ的时钟脉冲信号; 系统输出信号:tm:产生显示电路状态转换信号 tl:倒计数值秒数个位变化控制信号 th:倒计数值秒数十位变化控制信号 (3)第三模块:红绿灯状态转换电路 本电路负责红绿灯的转换。 模块说明: 系统输入信号:full: 接收由clk电路的提供的1hz的时钟脉冲信号; tm: 接收计数秒数选择电路状态转换信号; 系统输出信号:comb_out: 负责红绿灯的状态显示。 (4)第四模块:时间显示电路 本电路负责红绿灯的计数时间的显示。 模块说明: 系统输入信号:tl:倒计数值秒数个位变化控制信号; th:倒计数值秒数十位变化控制信号; 系统输出信号:led7s1: 负责红绿灯的显示秒数个位。 led7s2:负责红绿灯的显示秒数十位。 三、设计方案

eda实验

实验一3/8 译码器和半加器的实现 一.实验目的 1.学习QuartusⅡ的基本操作; 2.熟悉教学实验箱的使用 3.设计一个3/8 译码器和一个半加器; 4.初步掌握VHDL语言和原理图的设计输入,编译,仿真和调试过程; 二.实验说明 1.本次实验要求应用VHDL语言实现一个3/8 译码器。3/8 译码器的逻辑功能如下: 本实验要求使用VHDL语言描述3/8译码器,并在实验平台上面实现这个译码器。描述的时候要注意VHDL语言的结构和语法,并熟悉QuartusⅡ的文本编辑器的使用方法。尝试使用不同的VHDL语言描述语句实现3/8译码器,并查看其RTL结构区别,理解不同描述方法对综合结果的影响。将程序下载到实验箱上,分别用按键和LED作为输入和输出对结果进行验证,进一步熟悉所用EDA实验箱系统。 2. 采用原理图的方式实现一个半加器。 本实验的具体电路自己通过真值表或布尔方程式得出,建立工程和和块原理图文件,并进行编译和仿真,验证设计的正确性。 本实验的内容比较简单,主要是通过这次实验熟悉实验环境,为以后更好的做实验做准备。 所用器件 EDA实验箱、EP1K10TC100-3器件。 三.实验步骤 按照教学课件《QUARTUS II 使用方法》,学习QuartusⅡ软件的使用方法:1.在WINDOWS 界面双击QuartusⅡ图标进入QuartusⅡ环境; 2.单击File 菜单下的New Project Wizard: Introduction 按照向导里面的介绍新建一个工程并把它保存到自己的路径下面。(注意路径当中不要有中文和空格)3.单击File 菜单下的New,选择VHDL File(原理图方式时选择Block

EDA实验指导书

ED心验指导书齐鲁理工学院

目录 实验一Protel DXP 2004认识实验 0 实验二两级阻容耦合三极管放大电路原理图设计 0 实验三原理图元件库建立与调用 (2) 实验四两级阻容耦合三极管放大电路PCB图设计............................ .4实验五集成电路的逻辑功能测试.. (6) 实验六组合逻辑电路分析与设计............................................... 1.1实验七Quartus II的使用 ................................................. 1.6实验八组合逻辑器件设计. (16) 实验九组合电路设计 (24)

实验一Protel DXP 2004 认识实验 一、实验目的 1. 掌握Protel DXP 2004的安装、启动和关闭。 2. 了解Protel DXP 2004主窗口的组成和各部分的作用。 3. 掌握Protel DXP 2004工程和文件的新建、保存、打开。 二、实验内容与步骤 1、Protel_DXP_2004 的安装 (1) 用虚拟光驱软件打开Protel_DXP_2004.iso 文件 (2) 运行setup\Setup.exe 文件,安装Protel DXP 2004 (3) 运行破解程序后,点击导入模版”,先导入一个ini文件模版(如果要生成单机版的License选择Unified Nexar-Protel License.ini;要生成网络版的License选择Unified Nexar-Protel Network License.ini ),然后修改里面的参数:TransactorName=Your Name (将"Your Name替换为你想要注册的用户名);SerialNumber=0000000 (如果你只有一台计算 机,那么这个可以不用修改,如果有两台以上的计算机且连成局域网,那么请保证每个License文件中的SerialNumber=为不同的值。修改完成后点击生成协议文件",任意输入一 个文件名(文件后缀为.alf)保存,程序会在相应目录中生成1个License文件。点击替换密钥”,选取DXP.exe (在DXP 2004安装目录里,默认路径为),程序会自动替换文件中的公开密钥。将前面生成的License文件拷贝至DXP 2004安装目录里(默认路径为)授权完成。 (4) 打开Protel 在左上角DXP 菜单下的Preference 菜单项里,选中Use localize resources后关闭Protel_DXP_2004 ,重新打开软件变为简体中文版本。 2、Protel_DXP_2004 的卸载 卸载Protel_DXP_2004的具体步骤如下: (1) 在Windows的“开始”菜单中选择“设置/控制面板”,然后在控制面板中选择“添加/删除程序”选项,将弹出对话框。从中选择DXP 2004应用软件。 (2) 单击删除”按钮,将弹出对话框,询问用户是否真的要删除程序。 (3) 单击“是”按钮,开始卸载。在卸载过程中,若想终止卸载,可单击“取消”按

EDA实验报告

电子科技大学成都学院 实验报告册 课程名称:EDA实验与实践 姓名:魏亮 学号:2940710618 院系:微电子技术系 专业:集成电路设计与集成系统(嵌入式) 教师:李海 2011 年12 月12 日

实验一:计数器 一、实验目的: 学习计数器的设计,仿真和硬件测试; 进一步熟悉Verilog HDL的编程方法。 二、实验原理和内容: 本实验的原理是利用复位信号rst,时钟信号clk,输出cout ,实现由0自加到学号(即18)。 本实验的内容是利用Quartus Ⅱ建立一个自加至18的计数器,并进行仿真测试。 三、实验步骤: 1. 启动Quartus Ⅱ建立一个空白工程,然后命名为count . qpf 。 2. 新建Verilog HDL源程序文件count.v,输入程序代码并保存, 然后进行综合编译,若在编译过程中发现错误,则找出并更正错误, 直到编译成功为止。 3. 建立波形仿真文件并进行仿真验证。 四、实验数据和结果: module count (clk,rst,cout); input clk,rst; output[5:0] cout; reg[5:0] cout; always @ (posedge clk) begin if(rst) begin cout=cout+1; if(cout==5'b10011) cout=0; end end endmodule

五、实验总结: 进一步熟悉仿真测试和Verilog HDL 编程方法。

实验二:流水灯 一、实验目的: 通过次试验进一步了解、熟悉和掌握CPLD/FPGA开发软件的使用方法及Verilog HDL的编程方法;学习简单的时序电路的设计和硬件 测试。 二、实验原理和内容: 本实验的内容是建立可用于控制LED流水灯的简单硬件电路,要求在实验箱上时间LED1~LED8发光二极管流水灯显示。 原理:在LED1~LED8引脚上周期性的输出流水数据,如原来输出的数据是11111100则表示点亮LED1、LED2。流水一次后,输出数据应 该为11111000,而此时则应点亮LED1~LED3三个LED发光二极管,这 样就可以实现LED流水灯,为了方便观察,在源程序中加入了一个分频 程序来控制流水速率。 三、实验步骤: (1)启动QuartusII建立空白工程,然后命名为led.qpf。 (2)新建Verilog HDL源程序文件led.v,输入程序代码并保存(源程序参考实验内容),进行综合编译,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。 (3)FPGA引脚分配,在Quartus II主界面下,选择Assignments→Pins,按照实验课本附录进行相应的引脚分配,引脚分配好以后保存。 (4)对该工程文件进行最后的编译,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。 (5)打开试验箱的电源开关,执行下载命令,把程序下载到FPGA试验箱中,观察流水灯的变化。 四、实验数据和结果: module led(led,clk); input clk; output[7:0] led; reg[7:0] led_r; reg[31:0] count; assign led=led_r[7:0]; always @ (posedge clk) begin count<=count+1';

EDA实验

实验报告 课程名称:EDA实验 实验题目:EDA实验总结 学生姓名:裴彬彬学号:20101050045 物理科学技术学院物理系2010 级电子科学与技术专业 指导教师:陈永康 实验时间:2013 年 实验地点:物科学院3414

一:3-8译码器 实验程序: module no1(y,en,a) ; output [7:0]y ; input en ; input [2:0]a; reg[7:0] y ; always @ (en or a) if (!en) y = 8'b1111_1111 ; else case(a) 3'b000 : y = 8'b1111_1110 ; 3'b001 : y = 8'b1111_1101 ; 3'b010 : y = 8'b1111_1011 ; 3'b011 : y = 8'b1111_0111 ; 3'b100 : y = 8'b1110_1111 ; 3'b101 : y = 8'b1101_1111 ; 3'b110 : y = 8'b1011_1111 ; 3'b111 : y = 8'b0111_1111 ; default : y = 8'bx ; endcase endmodule 波形: 实验总结: 1.编程中在使用CASE语句时,容易将ENDCASE语句忘掉,导致程序错误。 2.在文件名必须与VHDL文件中的设计实体名保持一致。

二:4位并行乘法器 实验程序: module no2(a,b,y); input [3:0]a; input [3:0]b; output [7:0]y; assign y=a*b; endmodule 波形: 实验总结: 本实验学习了assign语句的使用方法和使用条件。三:补码生成 实验程序: module no3 (a,y); input [7:0]a; output [7:0]y; reg [7:0]y;

EDA实验指导书new_Quartus2

EDA技术实验手册及程序代码 物理与信息项目学院 学号:111000228 姓名:汪艺彬 注意事项 1、本实验手册是为了配合《EDA技术实用教程》,作为本课程实验环节的补充 指导而编制。 2、实验中涉及的QuartusⅡ软件的使用请参考 《EDA技术实用教程》中有关章节。 手册中所有的虚线空白框,都留出来作为实验记录之用,每个实验完成后,应按照实验内容的要求将实验结果记入框中。 4、每个实验后面都附有一道思考题,完成实验内容后可以作为更进一步的练习 。 5、每次实验后将手册相关部分<完成实验结果记录)和实验源代码<.vhd文件) 一起,作为实验报告上交。 6、课程结束后请将所有报告按顺序加封面装订好上交,作为实验部分成绩计入 总成绩。 实验一利用原理图输入法设计4位全加器一、实验目的: 熟悉如何在QuartusⅡ集成环境下利用原理图输入设计简单组合逻辑电路,掌握层次化的电路设计方法。 二、实验原理: 一个4位全加器可以由4个一位全加器构成,加法器间的进位可以串行方式实现,即将低位加法器的进位输出cout与相邻的高位加法器的进位输入信号cin相接。 三、实验内容: 1.QuartusII软件的熟悉

熟悉QuartusⅡ环境下原理图的设计方法和流程,可参考课本5.4节的内容,重点掌握层次化的设计方法。 2.设计1位全加器原理图 设计的原理图如下所示 3.利用层次化原理图方法设计4位全加器 <1)生成新的空白原理图,作为4位全加器设计输入 <2)利用已经生成的1位全加器作为电路单元,设计4位全加器的原理图,如下所示 4、设计一个超前进位4位全加器 以上设计的全加器是基于串行进位的结构,高位的进位输入必须等待低位的运算结果,造成较长的延时。通过对进位位进行超前运算,可以缩短这部分的延时。 在已有1位全加器的基础上设计一个具有超前进位结构的4位全加器,原理图如下所示 5、完成设计流程

郑州航院EDA实验报告模板

《EDA技术及应用》 实验报告 系部:电子通信工程系 指导教师:张松炜 学号:121307214 ____ 姓名:李俊杰_______

2014___年_6___月__19_日 实验一点亮LED设计 一、实验目的 通过此试验可以让大家逐步了解,熟悉和掌握FPGA开发软件Quartus II的使用方法及VerilogHDL的编程方法。 二、实验内容 本实验是一个简单的点亮LED灯的实验,具体包括: 1)使用Quartus II建立一个工程; 2)Quartus II工程设计; 3)设置编译选项并编译硬件系统; 4)下载硬件设计到目标FPGA; 5)观察LED的状态; 三、实验原理 和单片机一样,向片子里写进数据,输出高电平(对于共阴极的),或者输出低电平(对于共阳极)。根据Cyclone片子已经分配好的针脚设置好针脚。 四、实验步骤 建立-----个工程-----输入程序-----软件编译 ------生成下载文件-----下载—调试。

五、实验程序 module led1(led); //模块名led1 output[7:0] led; //定义输出端口 reg[7:0] led; //定义寄存器 always //过程1 begin led = 8'b10101010; //输出0xAA end endmodule 六、思考题 (1)写出使用QuartusII软件开发工程的完整的流程。 建立一个工程—输入程序—软件编译综合—生成下载文件— 下载—硬件调。 实验二流水灯实验 一、实验目的 通过此试验让大家进一步了解熟悉和掌握FPGA开发软件的使用方法及软件编程方法。学习简单的时序电路的设计和硬件测试。 二、实验内容 本实验的内容是建立用于控制LED流水灯的简单硬件电路,要求在SmartSOPC上实现LED1-LED8发光二极管流水灯的显示。 三、实验原理

EDA实验实验报告

数字eda实验实验报告 学院:计算机科学与工程学院专业:通信工程学 号: 0941903207 姓名:薛蕾指导老 师:钱强 实验一四选一数据选择器的设计 一、实验目的 1、熟悉quartus ii软件的使用。 2、了解数据选择器的工作原理。 3、熟悉eda开发 的基本流程。 二、实验原理及内容 实验原理 数据选择器在实际中得到了广泛的应用,尤其是在通信中为了利用多路信号中的一路, 可以采用数据选择器进行选择再对该路信号加以利用。从多路输入信号中选择其中一路进行 输出的电路称为数据选择器。或:在地址信号控制下,从多路输入信息中选择其中的某一路 信息作为输出的电路称为数据选择器。数据选择器又叫多路选择器,简称mux。 4选1数据 选择器: (1)原理框图:如右图。 d0 、d1、d2、d3 :输入数据 a1 、a0 :地址变量 由地址码决定从4路输入中选择哪1路输出。 (2)真值表如下图: (3)逻辑图 数据选择器的原理比较简单,首先必须设置一个选择标志信号,目的就是为了从多路信 号中选择所需要的一路信号,选择标志信号的一种状态对应着一路信号。在应用中,设置一 定的选择标志信号状态即可得到相应的某一路信号。这就是数据选择器的实现原理。 三.实验内容 1、分别采用原理图和vhdl语言的形式设计4选1数据选择器 2、对所涉及的电路进行 编译及正确的仿真。电路图: 四、实验程序 library ieee; use ieee.std_logic_1164.all; entity mux4 is port( a0, a1, a2, a3 :in std_logic; s :in std_logic_vector (1 downto 0); y :out std_logic ); end mux4; architecture archmux of mux4 is begin y <= a0 when s = 00 else --当s=00时,y=a0 a1 when s = 01 else --当s=01时,y=a1 a2 when s = 10 else --当s=10时,y=a2 a3; --当s取其它值时,y=a2 end archmux; 五、运行结果 六.实验总结 真值表分析: 当js=0时,a1,a0取00,01,10,11时,分别可取d0,d1,d2,d3. 篇二:eda实验报告模版 《eda技术》实验报告

相关文档