EDA总实验报告

EDA总实验报告
EDA总实验报告

实验报告

实验课程:EDA技术

学生姓名:邱永洪

学号:6100210026

专业班级:中兴101 班

2012年 12月 27日

目录

实验一一位全加器

实验二模可变计数器

实验三数字时钟

实验四序列发生和检测实验五交通灯控制

实验六16*16点阵显示

南昌大学实验报告学生姓名:邱永洪学号:6100210026专业班级:中兴101

实验类型:□验证□综合■设计□创新实验日期:2012、

10、12

实验一一位二进制全加器设计实验

一、实验目的

1、学习Quartus II的文本和原理图输入方法设计简单组合电路以熟悉QuartusII的使用;

2、熟悉设备和软件,掌握实验操作。

二、实验内容与要求

(1)在利用VHDL编辑程序实现半加器和或门,在主层中进行应用。熟悉

层次设计概念;

(2)给出此项设计的仿真波形;

(3)参照实验板的引脚号,选定和锁定引脚,编程下载,进行硬件测试。

三、设计思路

1 ,一个1位全加器可以用两个1位半加器及一个或门连接而成。而一个

1

其中a为被加数,b为加数,co为本位向高位进位,so为本位和

因而可得表达式为:co=ab而so= ab+ab =a⊕b

其VHDL文本如下

LIBRARY IEEE; --半加器描述(1):布尔方程描述方法

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY h_adder IS

PORT (a, b : IN STD_LOGIC;

co, so : OUT STD_LOGIC);

END ENTITY h_adder;

ARCHITECTURE fh1 OF h_adder is

BEGIN

so <= NOT(a XOR (NOT b)) ; co <= a AND b ;

END ARCHITECTURE fh1;

2,而全加器的真值表如下;

其中ain为被加数,bin为加数,cin为低位向本位的进位,count为本位向高位的借位,sum 为本位和

所以,一位全加器的表达式如下:

Sum=ain⊕bin⊕cin

count=ainbin+cinain+cinbin

3,或门VHDL文本如下

LIBRARY IEEE ; --或门逻辑描述

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY or2a IS

PORT (a, b :IN STD_LOGIC;

c : OUT STD_LOGIC );

END ENTITY or2a;

ARCHITECTURE one OF or2a IS

BEGIN

c <= a OR b ;

END ARCHITECTURE one;

四、VHDL文本输入法设计

常用的硬件描述语言(HDL)就是VHDL语言,同原理图设计方法类似,首先打开Quartus II 7.2建立工程文件,然后选择菜单File->New,在Device Design Files 标签选项框中选择VHDL File。

LIBRARY IEEE; --半加器描述(1):布尔方程描述方法

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY h_adder IS

PORT (a, b : IN STD_LOGIC;

co, so : OUT STD_LOGIC);

END ENTITY h_adder;

ARCHITECTURE fh1 OF h_adder is

BEGIN

so <= NOT(a XOR (NOT b)) ; co <= a AND b ;

END ARCHITECTURE fh1;

LIBRARY IEEE ; --或门逻辑描述

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY or2a IS

PORT (a, b :IN STD_LOGIC;

c : OUT STD_LOGIC );

END ENTITY or2a;

ARCHITECTURE one OF or2a IS

BEGIN

c <= a OR b ;

END ARCHITECTURE one;

LIBRARY IEEE; --1位二进制全加器顶层设计描述

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY f_adder IS

PORT(ain,bin,cin : IN STD_LOGIC;

cout,sum : OUT STD_LOGIC);

END ENTITY f_adder;

ARCHITECTURE fd1 OF f_adder IS

COMPONENT h_adder --调用半加器声明语句

PORT ( a,b : IN STD_LOGIC;

co,so : OUT STD_LOGIC);

END COMPONENT;

COMPONENT or2a

PORT (a,b : IN STD_LOGIC;

c : OUT STD_LOGIC);

END COMPONENT;

SIGNAL d,e,f : STD_LOGIC; --定义3个信号作为内部的连接线。

BEGIN

u1 : h_adder PORT MAP(a=>ain,b=>bin,co=>d,so=>e);--例化语句

u2 : h_adder PORT MAP(a=>e,b=>cin,co=>f,so=>sum);

u3 : or2a PORT MAP(a=>d,b=>f,c=>cout);

END ARCHITECTURE fd1;

六、VHDL文本输入法设计实验步骤

1.新建项目,选择项目文件夹,输入工程名称,添加文件(一般为空),选择芯片型号,选择仿真工具(一般为默认),最后生成项目。

2.新建VHDL文件,输入设计语言,保存时要注意与工程文件名相同。如下图:

图(2)文本输入

3.保存好后,进行综合编译,如果有错误,折回修改。

4、建立波形文件,导入结点,并设置好仿真结束时间,保存文件,进行仿真设置,然后进行波形仿真,如下图:

图(4)

六、仿真波形分析

.如下图:

因此,仿真正确。

七、硬件测试

1.选择菜单Assignment->Assignment Editor->Pin窗口,选择菜单View Show All Known Pin Names,此时编辑器将显示所有的输入输出信号,其中“To”列是信号列,“Location”列是引脚列,“General Function”列显示该引脚的通用功能。对于

一个输入输出信号,双击对应的“Location”列,在弹出的下拉列表框内选择需要锁定的引脚号。

2.引脚锁定后,保存,必须重新进行一次全程编译,编译通过后才能编程下载。

3.编程下载,用下载线将计算机并口和试验箱上的JTAG口接起来,接通电源。选择Tools—>Programmer菜单,打开programmer窗口。

在mode中选中JTAG,将Program/Configure下的笑方框选中

4在开始编程之前,必须正确设置编程硬件。点击“Hardware Setup”按钮,打开硬件设置口。

3)点击A dd Hardware 按钮,出现A dd Hardware 对话框,如图1-35 所示。

图1-35 编程硬件选择对话框

4)在A dd Hardware 对话框中,从H ardware type 列表中选择所需要硬件类型,如果是 USB 接口的请参照用户使用手册中的 USB 电缆的安装与使用,

如果使用的是并口下载线则选取如图1-35 所示的硬件类型,点击OK 按钮,完成对硬件类型的设置。回到编程器硬件设置窗口,点击C lose按钮退出设置。

则在编程器对话框中的编程硬件类型会出现刚才选取的编程器硬件。

5)如果软件已运行一个工程,则在打开编程器的时候,编程器窗口会自动出现这个工程文件要加载到目标器件的文件,如果要加载其它文件可以

从其它地方进行添加更改。选好加载文件后,再点选P rogam/Configure,编程

模式选取JTAG 模式,点击 STRAT 进行文件加载,直到加载进度变为

100%,文件成功加载完成。

八、硬件测试结果

硬件测试:根据真值表,本次实验中,我的ain bin cin 分别取的是K1.K2.K3而输出count sum取的是LED1和LED2,它们会根据K1.K2.K3的不同而显示亮灭,如输入000 ,由于输出count sum均为低电平,因此LED1和LED2均灭,输入111由于输入count sum均为高电平,因此LED1和LED2均亮,依据全加器真值表依次验证过后,结果与真值表相符合。试验成功。

九、试验心得

1、通过本次实验我基本熟悉了QUARTUSII的使用,分别学会了原理图输入

法和VHDL文本输入法,同时也学会了波形仿真,波形仿真要观察到程序所要的结果,应该正确设置仿真时间,否则无法全面显示程序要实现的功能。

2、在QUARTUSII软件使用方面,还是要注意一些细节问题,如原理图输入

与VHDl文本输入保存文件时不能保存在同一个文件夹下,否则在文本文件编译时,会提示半加器元件已存在,导致文件编译无法通过。工程名,vhdl文件名一定要与实体名相同等

3、硬件测试方面,要正确添加硬件、正确设置引脚进行引脚锁定,然后一

定不要忘记重新全程编译一遍,接下来是下载,有时由于接触不好会下载失败,我把实验箱关掉电源,重新插了下连接线,重新打开后,下载成功。

十、参考资料

《EDA技术实用教程》《EDA/SOPC系统开发平台》

南昌大学实验报告

学生姓名:邱永洪学号:6100210026专业班级:中兴101班

实验类型:□验证□综合■设计□创新实验日期:2012.10. 19

实验二模可变计数器的设计

一、实验目的

1、学习设计脉冲分频程序的设计,掌握分频的作用。

2、学会利用控制位M来控制计数器的模值。

二、实验内容与要求

1、计设置一位控制模的位M,要求M=0,模23计数;当M=1,模109计数;

2、计数结果用三位数码管显示,显示BCD码;

3、利用Quartus软件实现波形仿真;

4、应用实验箱验证此计数器的功能。

三、实验思路

1、要求分别实现模23和模109的计数,因些我分别用GW、SW、BW 代

表个位,十位和百位。还有一个控制模的位M,当M为0时实现模23计数,只用到GW和SW分别为个位和十位;当M为1时实现模109计数,用GW、SW、BW 分别为个位,十位和百位计数。

2、由于要求用三个数码管显示,由于每次只能只能选中一个数码管显示管,

因此我使用了数码管的动态扫描来实现视觉上多个数码管显示管同时显示的效果,这个步骤中分频计的作用很重要。我使用了一个可变的R作为分频计的初值。

3、计数时分两种情况

1)、当M为0时,实现模23计数,当个位为9则向十位进位,并个位清0,当个位小于9,则个位自身加1;计数到22时当下一个时钟上升沿到来时就清0重计。

2)、当M为1时,实现模109计数,当个位为9则向十位进位,并个位清0,当个位小于9,则个位自身加1;当个位和十位均为9时,就向百位进位,同时个位和十位自身清0;计数到108时当下一个时钟上升沿到来时就清0重计。

四、实验程序

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY count IS

PORT(CLK,M,EN,RST:IN STD_LOGIC;

R:IN STD_LOGIC_VECTOR(7 DOWNTO 0); ---分频计数初值

sel0,sel1,sel2:buffer STD_LOGIC;

SG:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); --数码管八段

CLK1:buffer STD_LOGIC;

GW,SW,BW: buffer STD_LOGIC_VECTOR(3 DOWNTO 0);--计数器的个,十,百位

COUT:OUT STD_LOGIC;--溢出信号

SEL:OUT STD_LOGIC_VECTOR(7 DOWNTO 0) --位选信号

);

END count;

ARCHITECTURE behav OF count IS

SIGNAL CNT,X : STD_LOGIC_VECTOR(7 DOWNTO 0); --数码管分频计数

SIGNAL J : STD_LOGIC_VECTOR(11 DOWNTO 0); --12位BCD计数值 SIGNAL CNT8: STD_LOGIC_VECTOR(2 DOWNTO 0); --数码管选择

SIGNAL A : STD_LOGIC_VECTOR(3 DOWNTO 0); --数码管显示值

SIGNAL MODEL : STD_LOGIC_VECTOR(11 DOWNTO 0); --模长信号

BEGIN

P1:PROCESS(CLK,R) --进程P1分出的频率用来数码管的位

BEGIN

X<=R;

IF CLK'EVENT AND CLK = '1' THEN CNT<=CNT+1;

IF CNT=X-1 THEN CLK1<='1';CNT<="00000000";--R分频:R是一个八位的二进制数

ELSE CLK1<='0';

END IF;

END IF;

END PROCESS;

P2:PROCESS(EN,RST,M,CLK1) --计数

BEGIN

CASE M IS

WHEN '0'=>MODEL<="000000100010";--23

WHEN '1'=>MODEL<="000100001000";--109

END CASE;

GW<=J(3 downto 0);

SW<=J(7 downto 4);

BW<=J(11 downto 8);

IF RST='1' THEN J<=(others=>'0');

ELSIF CLK1'EVENT AND CLK1='1' THEN

IF EN='1' THEN

IF J

IF GW=9 THEN --个位为9时加7调整

J<=J+7;

IF SW=9 THEN --十位为9时加103调整

J<=J+103;

END IF;

ELSE J<=J+1;

END IF;

ELSE J<=(others=>'0');

END IF;

END IF;

END IF;

END PROCESS;

P3:PROCESS( CLK) --数码管控制

BEGIN

IF CLK'EVENT AND CLK='1' THEN

IF CNT8<"010" THEN CNT8 <=CNT8+1;

ELSE CNT8<=(OTHERS=>'0');

END IF;

END IF;

SEL(0)<=sel0 ;

SEL(1)<=sel1 ;

SEL(2)<=sel2 ;

CASE CNT8 IS --个、十、百分别送数码管动态显示

WHEN "000" => sel2<='0';sel1<='1';sel0<='0';A<=GW; WHEN "001" => sel2<='0';sel1<='0';sel0<='1';A<=SW;

WHEN "010" => sel2<='0';sel1<='0';sel0<='0';A<=BW;

WHEN OTHERS =>NULL;

END CASE;

END PROCESS ;

P4:PROCESS(A) --七段译码程序

BEGIN

CASE A IS

WHEN "0000" =>SG<="00111111"; WHEN "0001" =>SG<="00000110"; WHEN "0010" =>SG<="01011011"; WHEN "0011" =>SG<="01001111"; WHEN "0100" =>SG<="01100110"; WHEN "0101" =>SG<="01101101"; WHEN "0110" =>SG<="01111101"; WHEN "0111" =>SG<="00000111"; WHEN "1000" =>SG<="01111111"; WHEN "1001" =>SG<="01101111"; WHEN OTHERS=>NULL;

END CASE;

END PROCESS;

COUT <='1' WHEN J =MODEL ELSE '0';

END behav;

五、仿真波形的建立与分析

1)、仿真波形的建立如下

2)、仿真结果如下图所示

仿真结果图

下面分各种情况一一对其分析

1)、EN、REST键的功能检验,COUNT键的进位溢出脉冲:

REST脉冲使各

位清零

2)当M=0时,实现模23计数功能:

计数满22产生

进位脉冲

计数满22个位,

十位清零

3)当M=1时,实现模109计数功能:

六、引脚锁定

在这里我设置了八个用户开关K0-K7用来设置初值R ,三个用户按键S1、S2、S3,其中S1控制EN,S2控制M ,S3控制REST 。

1.Assignments-.>device->

引脚锁定,参照下载实验板1K100的引脚号说明书,选择适当的引脚

2.引脚锁定后,保存,必须重新进行一次全程编译,编译通过后才能编程下载。 3、编程下载,用下载线将计算机并口和试验箱上的JTAG 口接起来,接通电源。 选择Tools —>Programmer 菜单,打开programmer 窗口。 在mode 中选中JTAG ,将Program/Configure 下的笑方框选中

4在开始编程之前,必须正确设置编程硬件。点击“Hardware Setup ”按钮,打开硬件设置口。

点击“Add Hardware ”打开硬件添加窗口,在“Hardware type ”下拉框中选择“ByteBlasterMV or ByteBlaster II ”,“Port ”下拉框中选择“LPT1”,点击OK 按钮确认,关闭Hardware Setup 窗口,完成硬件设置。

计数满108个位,十位,百位清零。

5、点击“Start”按钮,开始编程下载

图(14)下载成功

七、硬件测试结果

下载成功后,开始在实验箱上检验结果,我设置的CLK=1KHz

(1)clk为时钟信号,由时钟信号的上升沿触发计数

(2)m为模值输入端,当其变化时,计数容量相应发生变化;

(3)rest为清零控制端,当其为高电平时清零;

(4)en为使能控制端,当其为高电平时正常计数,当其为低电平时暂停计数;

(5)、当按下S3时,使M=0数码管计数到22后开始清0,实现了模23计数;再次

按下S3,M为1时,数码管计数到108后,开始清0,实现了模109计数。而且当

数码管计数到45,我把电平2置为低电平,即M为0时,个位,十位都清0,转向

模22计数。

因此实验硬件测试结果与程序要实现的功能相符合。

(6)、通过八个电平开关K0-K7设置R的初值为R=250;

当按下用户按键S3时,使REST产生一个脉冲,实现清零,在数码管上看到全显示

0;

实验成功。

八、试验心得

(1)、在建立波形文件时,END TIME设置非常重要,一开始没有设置好,在仿真波

形图上看不到个位、十位和百位的计数情况,本实验END TIME=1ms,波形仿真中模

23中,CLK为周期100s

μ。

μ;形仿真中模109中,CLK为周期10s

硬件测试时,当CLK脉冲很低时,可以看到动态扫描数码管的扫描情况,八个数码

管依次显示。

(2)数码管动态显示时,要注意选通位的设置。

九、参考资料

《EDA技术实用教程》潘松黄继业

《EDA实验指导书》丁杰朱启标

南昌大学实验报告

姓名: 邱永洪学号:6200210026 专业班级:中兴101班实验类型:验证□综合■设计□创新□实验日期:2012、11、9

实验三数字钟设计

一、试验规划

1.1、实验目的

1、.学习数字钟的FPGA设计方法

2、学习分层设计方法;

3、学会动态扫描数码管的使用,及其他硬件设备的使用。

4、了解数字钟的工作原理。

5、进一步熟悉用V HDL 语言编写驱动七段码管显示的代码。

6、掌握V HDL 编写中的一些小技巧。

1.2设计实验说明:

1、数字时钟主要由:分频器、扫描显示译码器、六十进制计数器、二十四进制计数器

电路组成。在整个时钟中最关键的是如何获得一个精确的1H Z计时脉冲,

2、数字时钟显示由时(24进制)、分(60进制)、秒(60进制)组成,利用扫描显示

译码电路在八个数码管显示。

1.3数字时钟组成及功能:

1、分频率器:用来产生1H Z计时脉冲;

2、二十四进制计数器:对时进行计数

3、六十进制计数器:对分和秒进行计数;

4、扫描显示译码器:完成对7字段数码管显示的控制;

5、报时器:完成到时的提醒;

1.4设计内容及步骤:

1、根据电路持点,用层次设计概念。将此设计任务分成若干模块,规定每一模块的功

能和各模块之间的接口,同时加深层次化设计概念;

2、软件的元件管理深层含义,以及模块元件之间的连接概念,对于不同目录下的同一设计,如何熔合;

3、适配划分前后的仿真内容有何不同概念,仿真信号对象有何不同,有更深一步了解。熟悉了CPLD/FPGA 设计的调试过程中手段的多样化;

4、按适配划分后的管脚定位,同相关功能块硬件电路接口连线;

5、所有模块尽量采用VHDL 语言设计。

1.5要求:

1、精确显示时、分、秒。

2、数字时钟要求:具有对时、分、秒置数功能(利用秒脉冲置数、键盘直接置数);

3、能够完成整点报时功能。

二、数字时钟设计方案

2.1设计方案方框图

2.2功能设计

1、

时钟计数:完成时、分、秒的正确计时并且显示所计的数字;对秒、分60进制计数,即从0到59

循环计数,对时24进制计数,即从0到23

循环计数。

西安电子科技大学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实验报告

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

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交通灯实验报告

实验:交通灯设计 一、设计任务及要求: 设计任务:模拟十字路口交通信号灯的工作过程,利用实验板上的两组红、黄、绿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实验报告

电子科技大学成都学院 实验报告册 课程名称: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技术及应用》 实验报告 系部:电子通信工程系 指导教师:张松炜 学号: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实验报告

湖北民族学院信息工程学院实验报告 (电气、电子类专业用) 班级: 09 姓名:周鹏学号:030940908 实验成绩: 实验地点: EDA实验室 课程名称:数字系统分析与设计实验类型:设计型 实验题目:实验一简单的QUARTUSII实例设计,基于VHDL格雷码编码器的设计 实验仪器:HH-SOC-EP3C40EDA/SOPC实验开发平台,PC机。 一、实验目的 1、通过一个简单的3—8译码器的设计,掌握组合逻辑电路的设计方法。 2、初步了解QUARTUSII原理图输入设计的全过程。 3、掌握组合逻辑电路的静态测试方法。 4、了解格雷码变换的原理。 5、进一步熟悉QUARTUSII软件的使用方法和VHDL输入的全过程。 6、进一步掌握实验系统的使用。 二、实验原理、原理图及电路图 3-8译码器三输入,八输出。当输入信号按二进制方式的表示值为N时,输出端标号为N的输出端输出高电平表示有信号产生,而其它则为低电平表示无信号产生。因为三个输入端能产生的组合状态有八种,所以输出端在每种组合中仅有一位为高电平的情况下,能表示所有的输入组合。其真值表如表1-1所示 输入输出 A B C D7 D6 D5 D4 D3 D2 D1 D0 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 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 表1-1 三-八译码器真值表 译码器不需要像编码器那样用一个输出端指示输出是否有效。但可以在输入中加入一个输出使能端,用来指示是否将当前的输入进行有效的译码,当使能端指示输入信号无效或不用对当前信号进行译码时,输出端全为高电平,表示无任何信号。本例设计中没有考虑使能输入端,自己设计时可以考虑加入使能输入端时,程序如何设计。 三、实验步骤及内容 实验内容一: 在本实验中,用三个拨动开关来表示三八译码器的三个输入(A、B、C);用八个LED来表示三八译码器的八个输出(D0-D7)。通过输入不同的值来观察输入的结果与三八译码器的真值表(表1-1)是否一致。实验箱中的拨动开关与FPGA的接口电路如下图1-1所示,当开关闭合(拨动开关的档位在下方)时其输出为低电平,反之输出高电平。实验内容二: 本实验要求完成的任务是变换12位二进制码到12位的格雷码。实验中用12位拨动开关模块的K1~K12表示8位二进制输入,用LED模块的LED1~LED12来表示转换的实验结果十二位格雷码。实验LED亮表示对应的位为‘1’,LED灭表示对应的位为‘0’。通过输入不同的值来观察输入的结果与实验原理中的转换规则是否一致。实验箱中的拨动开关、与FPGA的接口电路,LED灯与FPGA的接口电路以及拨动开关、LED与FPGA的管脚连接在实验一中都做了详细说明,这里不在赘述。 实验步骤一: 1、建立工程文件 1)选择开始>程序>Altera>QuartusII8.1> QuartusII8.1(32BIT),运行QUARTUSII 软件。或者双击桌面上的QUARTUSII的图标运行QUARTUSII软件,出现如图1-3所示,如果是第一次打开QUARTUSII软件可能会有其它的提示信息,使用者可以根据自己的实际情况进行设定后进入图1-3所示界面。

EDA仿真实验报告

EDA仿真实验报告 姓名: 学号: 班级:

一.实验目的 1.了解EDA技术的发展、应用。 2.学习Multisim的使用。 二.实验内容 1.与非门实现四舍五入 2.用74LS138和必要的门电路设计一个表决电路 3.用74LS85设计四位数值比较器 三.实验软件与环境 1.EDA技术 EDA技术是在电子CAD技术基础上发展起来的计算机软件系统,是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。利用EDA 工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程在计算机上自动处理完成。 2.EDA的应用 EDA在教学、科研、产品设计与制造等各方面都发挥着巨大的作用。 主要是了解EDA的基本概念和基本原理、使用EDA的某种工具进行电子课程的实验并从事简单系统的设计,为今后工作打下基础。

3.Multisim Multisim是Interactive Image Technologies公司推出的以Windows 为基础的板级仿真工具,适用于模拟/数字线路板的设计。 本实验使用了NI Multisim 14.0 软件。 四.实验内容与步骤 1.与非门实现四舍五入电路(只能用与非门) 真值表: 逻辑表达式:F=m(5,6,7,8,9)

2.用74LS138和必要的门电路设计一个表决电路 真值表: F=M'ABC+MA'BC+MAB'C+MABC'+MABC=MAB+MAC+MBC+ABC 电路方面要注意输出为低电平,所以要用与非门。

eda实验报告

一位全加器 library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; -- Uncomment the following lines to use the declarations that are -- provided for instantiating Xilinx primitive components. --library UNISIM; --use UNISIM.VComponents.all; entity adder is port(a,b,cin:in std_logic; co,so:out std_logic); end adder; architecture Behavioral of adder is signal temp1,temp2:std_logic; begin temp1<= a xor b; temp2<= temp1 and cin; so<= temp1 xor cin; co<= temp2 OR (a AND b); end Behavioral; 四位全加器 library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; -- Uncomment the following lines to use the declarations that are -- provided for instantiating Xilinx primitive components. --library UNISIM; --use UNISIM.VComponents.all; entity counter10 is

EDA技术基础实验报告

EDA技术基础实验报告 学院:信息科学与技术学院 班级: 姓名: 学号:

实验一 MAX—plusII及开发系统使用 一、实验目的 1、熟悉利用MAX-plusⅡ的原理图输入方法设计简单的组合电路 2、掌握层次化设计的方法 3、熟悉DXT-BⅢ型EDA试验开发系统的使用 二、主要实验设备 PC 机一台(中档以上配置),DXT-B3 EDA实验系统一台。 三、实验原理 数字系统设计系列实验是建立在数字电路基础上的一个更高层次的设计性实验。它是借助可编程逻辑器件(PLD),采用在系统可编程技术(ISP),利用电子设计自动化软件(EDA),在计算机(PC)平台上进行的。 因为本实验是在计算机平台上进行,因此实验方式,实验手段和实验仪器与传统的实验有很大的区别,主要体现在以下几个方面: 1、实验器材集中化,所有实验基本上在一套实验设备上进行。 传统的实验每作完一个实验,实验器材基本上都要变动(个别除外)。而做本实验时,只要在计算机上把不同的程序输进去,其它步骤所有实验都一致; 2、实验耗材极小(基本上没有耗材); 3、在计算机上进行,自动化程度高,人机交互性好,修改、验证实验简单; 4、下载后,实验结果清晰; 5、实验仪器损耗少,维护简单; 下面,就本套实验设备做一个简单的介绍。 1、Max+PlusII软件的安装步骤: 第一步:系统要求 奔3CPU以上,128M内存以上,4G 以上硬盘,98 操作系统(98或Me操作系统才可以下载,其他操作系统下载必须安装驱动,否则只能仿真,如果只是进行仿真的话,对系统没要求) 第二步:安装 点击安装可执行文件进行安装,安装完毕后会弹出一对话框,点击是或否都可以。 第三步:将安装文件夹中的License 文件夹打开,里面有一个License.bat 注册文件,

EDA实验报告-实验3计数器电路设计

暨南大学本科实验报告专用纸 课程名称 EDA实验成绩评定 实验项目名称计数器电路设计指导教师郭江陵 实验项目编号 03 实验项目类型验证实验地点 B305 学院电气信息学院系专业物联网工程 组号: A6 一、实验前准备 本实验例子使用独立扩展下载板EP1K10_30_50_100QC208(芯片为EP1K100QC208)。EDAPRO/240H实验仪主板的VCCINT跳线器右跳设定为; EDAPRO/240H实验仪主板的VCCIO 跳线器组中“”应短接,其余VCCIO均断开;独立扩展下载板“EP1K10_30_50_100QC208”的VCCINT跳线器组设定为;独立扩展下载板“EP1K10_30_50_100QC208”的VCCIO跳线器组设定为。请参考前面第二章中关于“电源模块”的说明。 二、实验目的 1、了解各种进制计数器设计方法 2、了解同步计数器、异步计数器的设计方法 3、通过任意编码计数器体会语言编程设计电路的便利 三、实验原理 时序电路应用中计数器的使用十分普遍,如分频电路、状态机都能看到它的踪迹。计数器有加法计数器、可逆计数器、减法计数器、同步计数器等。利用MAXPLUSII已建的库74161、74390分别实现8位二进制同步计数器和8位二——十进制异步计数器。输出显示模块用VHDL实现。 四、实验内容 1、用74161构成8位二进制同步计数器(程序为T3-1); 2、用74390构成8位二——十进制异步计数器(程序为T3-2); 3、用VHDL语言及原理图输入方式实现如下编码7进制计数器(程序为T3-3): 0,2,5,3,4,6,1 五、实验要求 学习使用Altera内建库所封装的器件与自设计功能相结合的方式设计电路,学习计数器电路的设计。 六、设计框图 首先要熟悉传统数字电路中同步、异步计数器的工作与设计。在MAX+PLUS II中使用内建的74XX库选择逻辑器件构成计数器电路,并且结合使用VHDL语言设计转换模块与接口模块,最后将74XX模块与自设计模块结合起来形成完整的计数器电路。并借用前面设计的数码管显示模块显示计数结果。 ◆74161构成8位二进制同步计数器(程序为T3-1)

EDA实验报告

一MAX –plusII及开发系统使用 一、实验目的 1、熟悉利用MAX-plusⅡ的原理图输入方法设计简单的组合电路 2、掌握层次化设计的方法 3、熟悉DXT-BⅢ型EDA试验开发系统的使用 二、主要实验设备 PC 机一台(中档以上配置),DXT-B3 EDA实验系统一台。 三、实验原理 数字系统设计系列实验是建立在数字电路基础上的一个更高层次的设计性实验。它是借助可编程逻辑器件(PLD),采用在系统可编程技术(ISP),利用电子设计自动化软件(EDA),在计算机(PC)平台上进行的。 因为本实验是在计算机平台上进行,因此实验方式,实验手段和实验仪器与传统的实验有很大的区别,主要体现在以下几个方面: 1、实验器材集中化,所有实验基本上在一套实验设备上进行。 传统的实验每作完一个实验,实验器材基本上都要变动(个别除外)。而做本实验时,只要在计算机上把不同的程序输进去,其它步骤所有实验都一致; 2、实验耗材极小(基本上没有耗材); 3、在计算机上进行,自动化程度高,人机交互性好,修改、验证实验简单;

4、下载后,实验结果清晰; 5、实验仪器损耗少,维护简单; 下面,我们就本套实验设备做一个简单的介绍。 (一)Max+plusⅡ10.0的使用。 1、Max+PlusII软件的安装步骤: 第一步:系统要求 奔3CPU以上,128M内存以上,4G 以上硬盘,98 操作系统(98或Me操作系统才可以下载,其他操作系统下载必须安装驱动,否则只能仿真,如果大家只进行仿真的话,对系统没要求) 第二步:安装 点击安装可执行文件进行安装,安装完毕后会弹出一对话框,点击是或否都可以。 第三步:将安装文件夹中的License 文件夹打开,里面有一个License.bat 注册文件,将此文件复制到你的安装目录下(你的安装目录可放在任一个驱动器下,然后建立一个Max10的文件夹,将系统安装在此文件夹中,安装后此文件夹中会有三个文件夹)的任一个文件夹中,要清楚位置。 第四步:注册 启动Max+PlusII 软件,可以从开始-->程序-->Altera-->Max+PlusII 打开,也可以建立一个快捷方式在桌面上。启动软件后, 会有弹出一个对话框,点击是或否都可以,然 后进入系统。点击菜单中的Options,然后选 中License菜单项,打开弹出一个注册对话框, 在注册文件路径中打开你第三步中复制位置的 License 文件,然后点击OK,注册完毕。 2、 max+plusⅡ软件基本设计流程

EDA技术实验报告完整版

福建农林大学金山学院 信息工程类 实验报告 课程名称:EDA技术 姓名:邱彬彬 系:信息与机电工程系 专业:电子信息工程专业 年级:2010级 学号:100201079 指导教师:蔡剑卿 职称:讲师 2013年05月03日

实验项目列表

福建农林大学金山学院信息工程类实验报告 系:信息与机电工程系专业:电子信息工程年级: 2010级 姓名:邱彬彬学号: 100201079 实验课程: EDA技术 实验室号:__田实405 实验设备号: 2B 实验时间: 2013年4月13日指导教师签字:成绩: 实验一Quartus II 9.0软件的使用 1.实验目的和要求 本实验为验证性实验,其目的是熟悉Quartus II 9.0软件的使用,学会利用Quartus II 9.0软件来完成整个EDA开发的流程。 2.实验原理 利用VHDL完成电路设计后,必须借助EDA工具中的综合器、适配器、时序仿真器和编程器等工具进行相应的处理后,才能使此项设计在FPGA上完成硬件实现,并得到硬件测试,从而使VHDL设计得到最终的验证。 Quartus II是Altera提供的FPGA/CPLD开发集成环境,包括模块化的编译器,能满足各种特定设计的需要,同时也支持第三方的仿真工具。 3.主要仪器设备(实验用的软硬件环境) 实验的硬件环境是: 微机一台 GW48 EDA实验开发系统一套 电源线一根 十芯JTAG口线一根 USB下载线一根 USB下载器一个 实验的软件环境是: Quartus II 9.0软件 4.操作方法与实验步骤 利用Quartus II 9.0软件实现EDA的基本设计流程:创建工程、编辑文本输入设计文件、编译前设置、全程编译、功能仿真。 利用Quartus II 9.0软件实现引脚锁定和编译文件下载。

EDA实验报告模板

《EDA技术》实验报告 系别: 专业: 班级:学号: 姓名: 指导教师: 实验课程: 实验地点:EDA实验室 年月日

实验教师填阅

实习报告要求 1 封面——指定样稿 2 纸张——A4纸 3.格式要求如下

实验课程名称:EDA技术 (居中,三号宋体,加粗,占4行) 一、实验目的(左顶格,四号宋体,加粗,占2行,不接排) 1、了解EDA技术及常用EDA软件的用途(小4号宋体,)(正文)×××××(小4号宋体,接排) 2、了解电路设计中常用器件并能正确选择(同上)。 3、掌握Protel99 Se的基本使用(同上)。 二、实验课时:16学时(左顶格,四号宋体,加粗,占2行,不接排) 三、实验地点:EDA实验室(左顶格,四号宋体,加粗,占2行,不接排) 四、实验内容: 在电路板设计软件Protel99 Se环境下,完成稳压电源的原理图、PCB板的设计(或8051按键实验板原理图、PCB板的设计) 五、实验步骤:(要求详细描述各步骤的操作过程) 1.电路原理图的设计(小4号宋体,加粗)(要求截入设计的原理图,并 列出设计步骤,可用流程图表示) 图1. 稳压电源原理图(五号字体)

2.报表的生成(包括网络报表、元器件列表。电气规则测试报告, 并列出报表生成步骤) 。。。正文(小四,行距20磅) 3.印制电路板的设计(截入设计的原理图,并列出设计步骤)。。。 六实验总结: 1、总结设计电路板的过程或流程,及设计过程中应注意的问题。 a、电路原理图的设计流程。 b、生成报表,包括(网络报表,原件列表,电气规则测试报告)。 c、印制电路板的设计流程。 2、什么是元器件的封装,列出你所知道的电子元器件的基本封装类型,并说明其含义(至少列出六种)。 3、网络报表在电路板设计过程中起什么作用,并说明网络报表的内容都包括那些?。。 4、在电路板的设计过程中你都遇到的那些问题?是如何解决的? 。。 5、总结本课程的实验心得,提出你的意见和建议。

EDA实验报告四(状态机实现序列检测器的设计)

实验四:状态机实现序列检测器的设计 一、实验目的 1、了解和学习Quartus II 7.2软件设计平台。 2、了解EDA的设计过程。 3、通过实例,学习和掌握Quartus II 7.2平台下的文本输入法。 4、学习和掌握状态机的工作和设计原理。 5、掌握用VHDL 实现状态机的方法 6、利用状态机设计一个序列检测器 二、实验仪器 PC机,操作系统为Windows7/XP,本课程所用系统均为WindowsXP(下同),Quartus II 7.2设计平台。 三、实验步骤 1、创建工程,在File菜单中选择New Project Wizard,弹出对话框如下图所示 在这个窗口中第一行为工程保存路径,第二行为工程名,第三行为顶层文件实体名,和工程名一样。 2、新建设计文本文件,在file中选择new,出现如下对话框:

选择VHDL File 点击OK。 3、文本输入,在文本中输入如下程序代码: LIBRARY IEEE; USE IEEE. STD_LOGIC_1164. ALL; ENTITY fsm IS port(clk,x:IN STD_LOGIC; z:OUT STD_LOGIC); END fsm; ARCHITECTURE bhv OF fsm IS TYPE STATE IS(S0,S1,S2,S3); SIGNAL present_state:state; BEGIN PROCESS(clk) BEGIN IF(clk'EVENT AND clk='1')THEN CASE present_state IS WHEN S0=> IF x='1'THEN present_state<=S1; ELSE present_state<=S0; END IF; WHEN S1=> IF x='0'THEN present_state<=S2;

EDA实验报告——计数器

模323计数器设计实验报告 一、实验内容 在QuartusII平台上,利用VHDL代码实现学号323计数器的设计,并在三位数码管显示出来。 二、实验步骤与过程分析 1、建立工程。 打开Quartus II软件平台,点击File---〉new project wizard建立一个工程xuehao_323,工程所在文件夹名字为xuehao_323,设置顶层实体名称为xuehao_323,点击next设置device,按照实验箱上FPGA的芯片名更改编程芯片的设置。 分析: 选择的硬件平台是Altera EPF10K20TI144_4的FPGA试验箱。 2、添加VHDL文件。 在所在工程添加文件cnt10.vhd(十进制计数器),cnt_xuehao.vhd(323进制计数器),scan_led3_vhd.vhd(三位数码管显示),exp_cnt_xuehao323_7seg.vhd(数码管显示323三位学号计数器)四个文件。 这里通过老师给出的代码进行修改且理解: cnt10.vhd如下:

分析: 这是十进制计数器的VHDL代码设计,因为十进制有十个状态,所以输入数据和输出状态需要四位宽,其中输入端口有aclr 清零端,clock时钟信号,cnt_en使能端,data[3..0]数据输入,sload装载使能,当aclr为高电平有效时,输出清零,从0开始,计数为时钟信号clock的上升沿到来时且使能端cnt_en 为高电平有效时自动加1(sload为低电平时),如果装载使能sload为高电平有效时,则装载数据data[3..0],输出端口有两个,分别为cout(当q[3..0]为9时输出为高电平),q[3..0]变化为0—9循环变化。

EDA实验报告三(3-8译码器的设计)

实验三:3-8译码器的设计 一、实验目的 1、学习Quartus II 7.2软件设计平台。 2、了解EDA的设计过程。 3、通过实例,学习和掌握Quartus II 7.2平台下的文本输入法。 4、学习和掌握3-8译码器的工作和设计原理。 5、初步掌握该实验的软件仿真过程。 二、实验仪器 PC机,操作系统为Windows7/XP,本课程所用系统均为WindowsXP(下同),Quartus II 7.2设计平台。 三、实验步骤 1、创建工程,在File菜单中选择New Project Wizard,弹出对话框如下图所示 在这个窗口中第一行为工程保存路径,第二行为工程名,第三行为顶层文件实体名,和工程名一样。 2、新建设计文本文件,在file中选择new,出现如下对话框:

选择VHDL File 点击OK。 3、文本输入,在文本中输入如下程序代码:library ieee; use ieee.std_logic_1164.all; entity variable_decoder is port(A:in STD_LOGIC; B:in STD_LOGIC; C:in STD_LOGIC; Y:out STD_LOGIC_VECTOR(7 downto 0)); end variable_decoder; architecture rtl of variable_decoder is begin process(A,B,C) variable COMB:std_logic_vector(2 downto 0); begin COMB:=C&B&A; case COMB is when "000"=>Y<="11111110"; when "001"=>Y<="11111101"; when "010"=>Y<="11111011"; when "011"=>Y<="11110111"; when "100"=>Y<="11101111"; when "101"=>Y<="11011111";

EDA实验报告

实验报告 课程名称_verilog数字系统设计 __ 学生学院信息工程学院 专业班级13级应用电子专业4班 学号3113002512 姓名陈文威 指导教师罗思杰 2015年11月9 日

实验一简单组合逻辑电路的设计 一、实验要求 1、用verilog HDL语言描写出简单的一位数据比较器及其测试程序 2、用测试程序对比较器进行波形仿真测试;画出仿真波形 3、总结实验步骤和实验结果 二、实验原理与内容 这是一个可综合的数据比较器,很容易看出它的功能是比较数据a与数据b,如果两个数据相同,则给出结果1,否则给出结果0,。在verilog HDL中,描述组合逻辑时常用assign结构。注意equal=(a==b)?1:0,这是一种在组合逻辑实现分支判断时常使用的格式。 模块源代码: //--------------------compare--------- module compare(equal,a,b); input a,b; output equal; assign equal=(a==b)?1:0; endmodule 测试模块用于检测模块设计的正确与否,它给出模块的输入信号,观察模块的内部信号和输出信号,如果发现结果与预期的有所偏差,则要对设计模块进行修改。 测试模块源代码: `timescale 1ns/1ns module comparetest; reg a,b; wire equal; initial begin a=0; b=0; #100 a=0;b=1; #100 a=1;b=1; #100 a=1;b=0; #100 $stop; end

相关主题
相关文档
最新文档