搜档网
当前位置:搜档网 › EDA实验报告

EDA实验报告

EDA实验报告
EDA实验报告

EDA与VHDL程序设计

实验报告

课程名称:EDA与VHDL程序设计

实验名称:1.序列检测器设计

2.用QuartusII设计正弦信号发生器

实验七序列检测器设计

一、实验目的:用状态机实现序列检测器的设计,了解一般状态机的设计与应用。

二、实验原理:序列检测器可用于检测一组或多组由二进制码组成的脉冲序列信号,当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的码相同,则输出 1,否则输出 0。由于这种检测的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位码都与预置数的对应码相同。在检测过程中,任何一位不相等都将回到初始状态重新开始检测。书上P168例5-11 描述的电路完成对序列数”11100101”的检测,当这一串序列数高位在前(左移)串行进入检测器后,若此数与预置的密码数相同,则输出”A”,否则仍然输出”B”。

三、实验内容 1:用VHDL状态机设计一个8位序列信号检测器。

1、程序设计

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY SCHK IS

PORT(DIN,CLK,CLR : IN STD_LOGIC;

AB : OUT STD_LOGIC_VECTOR(3 DOWNTO 0));

END SCHK;

ARCHITECTURE behav OF SCHK IS

SIGNAL Q : INTEGER RANGE 0 TO 8;

SIGNAL D : STD_LOGIC_VECTOR(7 DOWNTO 0);

BEGIN

D <= "11100101";

PROCESS( CLK,CLR )

BEGIN

IF CLR = '1' THEN Q <= 0;

ELSIF CLK'EVENT AND CLK='1' THEN

CASE Q IS

WHEN 0=> IF DIN = D(7) THEN Q <= 1 ;ELSE Q <= 0;END IF;

WHEN 1=> IF DIN = D(6) THEN Q <= 2 ;ELSE Q <= 0;END IF;

WHEN 2=> IF DIN = D(5) THEN Q <= 3 ;ELSE Q <= 0;END IF;

WHEN 3=> IF DIN = D(4) THEN Q <= 4 ;ELSE Q <= 0;END IF;

WHEN 4=> IF DIN = D(3) THEN Q <= 5 ;ELSE Q <= 0;END IF;

WHEN 5=> IF DIN = D(2) THEN Q <= 6 ;ELSE Q <= 0;END IF;

WHEN 6=> IF DIN = D(1) THEN Q <= 7 ;ELSE Q <= 0;END IF;

WHEN 7=> IF DIN = D(0) THEN Q <= 8 ;ELSE Q <= 0;END IF;

WHEN OTHERS => Q <= 0;

END CASE;

END IF;

END PROCESS;

PROCESS (Q)

BEGIN

IF Q = 8 THEN AB <= "1010";

ELSE AB <= "1011";

END IF;

END PROCESS;

END behav;

2、仿真波形

3、引脚锁定与硬件下载

选择目标器件EP1C3,电路模式 No.8 ,见图7.1。用键7(PIO11)控制复位信号 CLR;键6(PIO9) 控制状态机工作时钟 CLK;待检测串行序列数输入 DIN 接 PIO10(最高位在前);指示输出 AB 接 PIO39~PIO36(显示于数码管 6)。

4、实验结果描述

下载后按以下四个步骤:①按实验板“系统复位”键;②用键 2 和键 1 输入 2 位十六进制待测序列数“11100101”;③按键7复位(平时数码6指示显“B”);

④按键 6(CLK) 8 次,这时若串行输入的 8 位二进制序列码(分别显示于数码管2和数码管1 以及发光管 D8~D0)与预置码“11100101”相同,则数码管 6 应从原来的 B 变成 A,表示序列检测正确,否则仍为 B。

四、实验内容 2:将8位待测预置数作为外部输入信号,即可以随时改变序列检测器中的比较数据。写出此程序的符号化单进程有限状态机。

1、程序设计

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY SRJC IS

PORT(DIN,CLK,CLR : IN STD_LOGIC;

D0 : IN STD_LOGIC_VECTOR(7 DOWNTO 0);

AB : OUT STD_LOGIC_VECTOR(3 DOWNTO 0));

END SRJC;

ARCHITECTURE behav OF SRJC IS

SIGNAL Q : INTEGER RANGE 0 TO 8;

SIGNAL D : STD_LOGIC_VECTOR(7 DOWNTO 0);

BEGIN

PROCESS(D0)

BEGIN

FOR n IN 0 TO 7 LOOP

D(n) <= D0(n);

END LOOP;

END PROCESS;

PROCESS( CLK,CLR )

BEGIN

IF CLR = '1' THEN Q <= 0;

ELSIF CLK'EVENT AND CLK='1' THEN

CASE Q IS

WHEN 0=> IF DIN = D(7) THEN Q <= 1 ;ELSE Q <= 0;END IF; WHEN 1=> IF DIN = D(6) THEN Q <= 2 ;ELSE Q <= 0;END IF; WHEN 2=> IF DIN = D(5) THEN Q <= 3 ;ELSE Q <= 0;END IF; WHEN 3=> IF DIN = D(4) THEN Q <= 4 ;ELSE Q <= 0;END IF; WHEN 4=> IF DIN = D(3) THEN Q <= 5 ;ELSE Q <= 0;END IF; WHEN 5=> IF DIN = D(2) THEN Q <= 6 ;ELSE Q <= 0;END IF; WHEN 6=> IF DIN = D(1) THEN Q <= 7 ;ELSE Q <= 0;END IF; WHEN 7=> IF DIN = D(0) THEN Q <= 8 ;ELSE Q <= 0;END IF; WHEN OTHERS => Q <= 0;

END CASE;

END IF;

END PROCESS;

PROCESS (Q)

BEGIN

IF Q = 8 THEN AB <= "1010";

ELSE AB <= "1011";

END IF;

END PROCESS;

END behav;

2、仿真波形

3、引脚锁定及硬件下载

选择目标器件EP1C3,选择电路模式 No.8 ,见图7.1。用键7(PIO11)控制复位信号 CLR;键6(PIO9) 控制状态机工作时钟 CLK;待检测串行序列数输入DIN 接 PIO10(左移,最高位在前);将8位待检测预置数D0由键4/ 键3 从外部输入,从而可随时改变检测密码,指示输出 AB 接 PIO39~PIO36(显示于数码管 6)。

4、实验结果描述

下载后按以下五个步骤:①按实验板“系统复位”键;②用键4和键3输入2位预置数序列;③用键 2 和键 1 输入 2 位十六进制与预置数相同的序列数;

④按键7复位(平时数码6指示显“B”);⑤按键 6(CLK) 8 次,这时若串行输入的 8 位二进制序列码(分别显示于数码管 2和1 以及发光管 D8~D0)与预置码相同,则数码 6 应从原来的 B 变成 A,表示序列检测正确,否则仍为 B。

7.1 实验电路结构图NO.8

实验八用QuartusII设计正弦信号发生器

一、实验目的:进一步熟悉 QuartusII及其 LPM_ROM 与 FPGA 硬件资源的使用方法。

二、实验原理:在许多实际情况下,必须使用宏功能模块才可以使用一些Altera 特定器件的硬件功能,可用图形或硬件描述语言模块形式方便调用的宏功能块,来提高使得基于EDA技术的电子设计的效率和可靠性。根据实际电路的设计需要,可以选择LPM库中的适当模块,并为其设计适当的参数;LPM功能模块内容丰富,每一模块的功能、参数含义、使用方法、硬件描述语言模块参数设置及调用方法都可以在QuartusII中的Help中查阅到,方法是选择Help→Megafunctions/LPM命令。

三、实验内容 1:定制初始化波形数据文件。

1、实验步骤

(1)建立.mif格式文件

选择File→New→Other files→Memory Initialization File,然后单击OK 按钮后产生ROM数据文件大小选择窗口;根据64点8位正弦数据的情况,选择ROM的数据数Number为64,数据宽Word size取8位;再将波形数据填入空的.mif 数据表格中,完成后保存此数据文件。

(2)建立.hex格式文件

选择File→New→Other files→Hexadecimal File, 然后单击OK按钮后产生ROM数据文件大小选择窗口;根据64点8位正弦数据的情况,选择ROM的数据数Number为64,数据宽Word size取8位;再将波形数据填入空的.hex数据表格中,完成后保存此数据文件。

四、实验内容 2:定制LPM_ROM元件。

1、设计步骤

(1)打开MegeWizard Plug-In Manager初始对话框。在Memory compiler下选择ROM:1-PORT,再在左栏选择storage项下选择Cyclone器件和VHDL语言方式;最后输入ROM文件存放的路径和文件名,单击Next按钮。

(2)选择ROM控制线、地址线和数据线。选择地址线位宽和ROM中数据分别为8和64;选择地址锁存控制信号inclock。

(3)选中指定路径上的文件,选中Allow In-System Memory…复选框,并在The Instance…文本框中输入ROM1,单击Next按钮,最后单击Finish按钮完成ROM 的定制。

2、程序设计

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY SINGT IS

PORT (CLK:IN STD_LOGIC;

DOUT:OUT STD_LOGIC_VECTOR (7 DOWNTO 0));

END;

ARCHITECTURE DACC OF SINGT IS

COMPONENT data_rom

PORT (address:IN STD_LOGIC_VECTOR (5 DOWNTO 0);

inclock:IN STD_LOGIC;

q:OUT STD_LOGIC_VECTOR (7 DOWNTO 0));

END COMPONENT;

SIGNAL Q1:STD_LOGIC_VECTOR (5 DOWNTO 0);

BEGIN

PROCESS (CLK)

BEGIN

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

END IF;

END PROCESS;

u1:data_rom PORT MAP (address=>Q1,q=>DOUT,inclock=>CLK);

END;

3、仿真波形

全程编译一次后进入时序仿真测试得出仿真波形如下:

4、实验结果描述

由仿真波形可以看到,随着时钟的上升沿的到来,输出端口将正弦波数据依次输出。这些数据与填入到.mif格式文件中数据表格中的一致,由此可以看出,正弦信号的设计是正确的。

实验心得体会及注意事项

本学期EDA总共做了四次实验,每一次都有不同的收获和体会。本次实验是四次中比较简单的一次,虽然上课时老师并没有详细讲解状态机和正弦信号发生器的相关知识,但是通过实验前的预习和实验过程的练习,对于这些知识也有了一定的了解。

在用状态机实现序列检测器的设计实验中,其程序设计的思路比较简单,就是要检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位码都与预置数的对应码相同,那么在实验硬件下载及检测时,只要输入正确的序列,在连续按控制CLOCK的键8次后,原来显示是“B”数码管变为“A”。就完成了实验。但是在实验过程中,我发现如果硬件下载成功后,却没有看到相应的数码管显示“B”时,就需要检查是否是排线没插好,如果检查发现连线没

有问题,那么可能是数码管的问题,那么只要在引脚锁定时,换个数码管的引脚就可以了;还有一个问题就是当在序列检测时,如果给了8次时钟脉冲,却没有看到有“A”出现,可能是按键的问题,如果换为其他按键,仍然得不到解决,那么可能是引脚没有锁定成功,还有可能是排线没有插好,这些都有可能造成得不出正确的实验结果。

在四次EDA实验中我最有体会的就是通过使用QuartusⅡ对一般计数器进行设计、仿真和硬件测试的实验,那次实验使我对VHDL设计技术以及一些语句有了更进一步的了解,同时对课本所学知识也有了深刻的理解;在实验过程中,我的动手能力也得到了进一步的提高,而且我也发现了一些值得注意的地方:在编程下载完成后,观察结果时如果发现数码管跳变过快或过慢时,那么可以通过改变时钟信号频率来改善,也可以将CLK改为手控;在时序仿真时,如果点击List 不显示工程的端口引脚名,则需要重新编译一次;在波形仿真时,如果观察不到明显的变化,则可以改变时钟CLK的周期设置;硬件测试时,如果配置文件不成功,要检查编程器是否选择正确。这些发现为后来的两次实验奠定了一定的基础。

这个学期的EDA实验我收获最大的就是学会利用VHDL对相关电路进行设计编程,同时也掌握了VHDL语言中基本语法与一些常用的语句,如if语句和case 语句;对于VHDL中的顺序语句和并行语句的归类也有了清晰的概念,而且也掌握了利用QuartusⅡ对一些电路的设计,仿真和硬件测试的使用方法。通过这几次的学习我对VHDL设计技术有了更加深刻的理解,在提高我分析问题和解决问题的能力的同时,也进一步培养了我的动手能力,这些都为我以后的工作学习打下了良好的基础。

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

相关主题