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 加深对电路理论概念的理解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实验 报告范文

实验一:五人表决器一、程序清单library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity vote5 isport(v_in:in std_logic_vector(4 downto 0);lock,clr:in std_logic;v_over:out std_logic_vector(2 downto 0);num_agr,num_opp:out std_logic_vector(3 downto 0);v_out:out std_logic_vector(4 downto 0);led_agr,led_opp:out std_logic);end entity vote5;architecture one of vote5 isbeginprocess(clr,v_in,lock)variable agr,opp: std_logic_vector(3 downto 0);beginif(clr='1')thenled_agr<='0';led_opp<='0';agr:="0000";opp:="0000";if agr="0000" thennum_agr<="0000";end if;if opp="0000"thennum_opp<="0000";end if;v_out<="00000";v_over<="000";elsif(lock'event and lock='1')thenv_out<=v_in;v_over<="111";agr:="0000";opp:="0000";for i in 0 to 4 loopif (v_in(i)<='0') then opp:=opp+1;end if;agr:=5-opp;end loop;num_agr<=agr;num_opp<=opp;if(agr>opp)thenled_agr<='1';led_opp<='0';elseled_agr<='0';led_opp<='1';end if;end if;end process;end architecture one;三.仿真1. 功能仿真波形2.时序仿真波形实验二:九九乘法表系统的设计一、程序清单library ieee;use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;entity multiply is --构造体描述4位乘法器port( clk:in std_logic;a,b:in std_logic_vector(3 downto 0);led_data:out std_logic_vector(7 downto 0);seg_sel:out std_logic_vector(2 downto 0) );end multiply;architecture rtl of multiply issignal led_data2,led_data1,led_data0: std_logic_vector(7 downto 0);--LED显示代码,寄存十位个位的数signal displayclk: std_logic;beginprocess(a,b)variable s: std_logic_vector(7 downto 0);--乘积variable bai,shiwei,gewei: std_logic_vector(3 downto 0);--乘积的十位个位begins(7 downto 0):=a(3 downto 0)*b(3 downto 0);if s>="11001000" then bai:="0010";s:=s-"11001000";elsif s>="01100100" then bai:="0001";s:=s-"01100100";else bai:="0000";end if;if s>="01011010" then shiwei:="1001";s:=s-"01011010";gewei:=s(3 downto 0);--90以上 elsif s>="01010000" then shiwei:="1000";s:=s-"01010000";gewei:=s(3 downto 0);--80以上 elsif s>="01000110" then shiwei:="0111";s:=s-"01000110";gewei:=s(3 downto 0); --70以上 elsif s>="00111100" then shiwei:="0110";s:=s-"00111100";gewei:=s(3 downto 0);--60以上 elsif s>="00110010" then shiwei:="0101";s:=s-"00110010";gewei:=s(3 downto 0);--50以上 elsif s>="00101000" then shiwei:="0100";s:=s-"00101000";gewei:=s(3 downto 0);--40以上 elsif s>="00011110" then shiwei:="0011";s:=s-"00011110";gewei:=s(3 downto 0);--30以上 elsif s>="00010100" then shiwei:="0010";s:=s-"00010100";gewei:=s(3 downto 0);--20以上 elsif s>="00001010" then shiwei:="0001";s:=s-"00001010";gewei:=s(3 downto 0);--10以上 else gewei:=s(3 downto 0);shiwei:="0000";end if;case bai iswhen "0001" => led_data2<="11111001";when "0010" => led_data2<="10100100";when others => led_data2<="11111111";end case;case shiwei iswhen "0000" => led_data1<="11000000";when "0001" => led_data1<="11111001";when "0010" => led_data1<="10100100";when "0011" => led_data1<="10110000";when "0100" => led_data1<="10011001";when "0101" => led_data1<="10010010";when "0110" => led_data1<="10000010";when "0111" => led_data1<="11111000";when "1000" => led_data1<="10000000";when "1001" => led_data1<="10010000";when others => led_data1<="11111111";end case;case gewei iswhen "0000" => led_data0<="11000000";when "0001" => led_data0<="11111001";when "0010" => led_data0<="10100100";when "0011" => led_data0<="10110000";when "0100" => led_data0<="10011001";when "0101" => led_data0<="10010010";when "0110" => led_data0<="10000010";when "0111" => led_data0<="11111000";when "1000" => led_data0<="10000000";when "1001" => led_data0<="10010000";when others => led_data0<="11111111";end case;end process;process(clk)variable cnt:integer range 0 to 20000; --1KHZ扫描显示时钟 beginif clk'event and clk='1' then cnt:=cnt+1;if cnt<10000 then displayclk<='1';elsif cnt<20000 then displayclk<='0';else cnt:=0;displayclk<='0';end if;end if;end process;process (displayclk) --显示两位variable cnt2: std_logic_vector(1 downto 0);beginif displayclk'event and displayclk='1' then cnt2:=cnt2+1;if cnt2="01" then seg_sel<="001";led_data<=led_data0;elsif cnt2="010" then seg_sel<="010";led_data<=led_data1;elsif cnt2="11" then cnt2:="00"; seg_sel<="100";led_data<=led_data2;end if;end if;end process;end rtl;二、仿真设计输入文件经maxplus软件开发系统编译、处理,由功能仿真器进行模拟,获得仿真波形如图6所示。

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实验报告(全)

目录实验一全加器的设计 (1)一实验目的 (1)二实验要求 (1)三实验步骤: (1)四实验结果: (2)五实验注意: (2)六实验心得: (2)实验二模可变计数器的设计 (3)一实验要求 (3)二实验步骤 (3)三、实验心得: (6)实验三序列信号发生器与检测器设计 (7)一、实验目的 (7)二、设计要求 (7)三、主要仪器设备 (7)四、实验原理 (7)五、实验步骤 (8)六、实验心得 (13)实验四交通灯控制器设计 (14)一、实验目的 (14)二、设计要求 (14)三、主要仪器设备 (14)四、实验思路 (14)五、实验步骤 (15)六、实验现象及验证 (22)七、实验心得 (23)实验五多功能数字钟设计 (24)一、实验目的 (24)二、设计要求 (24)三、主要仪器设备 (24)四、实验思路 (24)五、实验步骤 (25)六、实验现象及验证 (31)七、实验心得 (31)实验六出租车计价器设计 (32)一、实验目的 (32)二、实验任务及要求 (32)三、主要仪器设备 (32)四、实验思路 (32)五、实验步骤 (33)六、实验现象及验证 (39)七、实验心得 (39)南昌大学实验报告学生姓名:xx 学号:61004100xx 专业班级:通信101实验类型:□验证□综合□设计□创新实验日期:2012-9-17 实验成绩:实验一全加器的设计一实验目的以一位二进制全加器为例熟悉利用QuartusII的原理图输入方法和文本输入法设计简单组合电路;学习多层次工程的设计方法。

二实验要求⑴用文本方法实现半加器,再采用层次设计法用原理图输入完成全加器的设计;⑵给出此项设计的仿真波形;⑶用发光LED指示显示结果。

三实验步骤:1.(1)建立工作库文件夹,建立半加器工程h_adder,输入半加器VHDL代码并存盘。

library ieee;use ieee.std_logic_1164.all;entity h_adder isport ( a, b :in std_logic;co,so :out std_logic);end entity h_adder;architecture fh1 of h_adder isbeginso<=not(a xor (not b));co<=a and b;end architecture fh1;编译后转换得到半加器的元件符号h_adder(2)在同一工作库文件夹下,建立全加器工程fa,采用层次设计法调用元件半加器h_adder和或门or2完成全加器的原理图文件。

EDA实验报告(12份).pdf

EDA实验报告(12份).pdf

实验一组合电路的设计1. 实验目的:熟悉MAX + plus II 的VHDL 文本设计流程全过程,学习简单组合电路的设计、多层次电路设计、仿真和硬件测试。

2. 实验内容:设计一个2选1多路选择器,并进行仿真测试,给出仿真波形。

3. 实验程序如下:library ieee;use ieee.std_logic_1164.all; entity mux21a isport(a,b,s:in std_logic;y:out std_logic); end entity mux21a; architecture one of mux21a is beginy<=a when s='0' else b ; end architecture one ;4. 仿真波形(如图1-1所示)图1-1 2选1多路选择器仿真波形5. 试验总结:从仿真波形可以看出此2选1多路选择器是当s为低电平时,y输出为b, 当s为高电平时,y输出为a(y<=a when s='0' else b ;),完成2路选择输出。

实验二时序电路的设计1. 实验目的:熟悉MAX + plus II VHDL文本设计过程,学习简单的时序电路设计、仿真和测试。

2. 实验验内容:设计一个锁存器,并进行仿真测试,给出仿真波形。

3. 实验程序如下:library ieee;use ieee.std_logic_1164.all;entity suocun7 isport(clk: in std_logic;en: in std_logic;D: in std_logic_vector(7 downto 0);B:out std_logic_vector(7 downto 0)); end suocun7;architecture one of suocun7 issignal K: std_logic_vector(7 downto 0); beginprocess(clk,en,D)beginif clk'event and clk='1' thenif en ='0'thenK<=D;end if;end if;end process;B<=K;end one;4.仿真波形(如图2-1所示)图2-1 8位锁存器仿真波形此程序完成的是一个8位锁存器,当时钟上升沿到来(clk'event and clk='1')、使能端为低电平(en ='0')时,输出为时钟上升沿时的前一个数,从仿真波形看,实现了此功能。

EDA实验报告(四选一、四位比较器、加法器、计数器、巴克码发生器)

EDA实验报告(四选一、四位比较器、加法器、计数器、巴克码发生器)

EDA实验报告(四选一、四位比较器、加法器、计数器、巴克码发生器)EDA实验报告实验14选1数据选择器的设计一、实验目的1.学习EDA软件的基本操作。

2.学习使用原理图进行设计输入。

3.初步掌握器件设计输入、编译、仿真和编程的过程。

4.学习实验开发系统的使用方法。

二、实验仪器与器材1.EDA开发软件一套2.微机一台3.实验开发系统一台4.打印机一台三、实验说明本实验通过使用基本门电路完成4选1数据选择器的设计,初步掌握EDA设计方法中的设计输入、编译、综合、仿真和编程的过程。

实验结果可通过实验开发系统验证,在实验开发系统上选择高、低电平开关作为输入,选择发光二极管显示输出电平值。

本实验使用Quartus II 软件作为设计工具,要求熟悉Quartus II 软件的使用环境和基本操作,如设计输入、编译和适配的过程等。

实验中的设计文件要求用原理图方法输入,实验时,注意原理图编辑器的使用方法。

例如,元件、连线、网络名的放置方法和放大、缩小、存盘、退出等命令的使用。

学会管脚锁定以及编程下载的方法等。

四、实验要求1.完成4选1数据选择器的原理图输入并进行编译;2.对设计的电路进行仿真验证;3.编程下载并在实验开发系统上验证设计结果。

五、实验结果4选1数据选择器的原理图:仿真波形图:管脚分配:实验2 四位比较器一、实验目的1.设计四位二进制码比较器,并在实验开发系统上验证。

2.学习层次化设计方法。

二、实验仪器与器材1.EDA 开发软件 一套 2.微机 一台 3.实验开发系统 一台 4.打印机 一台 5.其它器件与材料 若干 三、实验说明本实验实现两个4位二进制码的比较器,输入为两个4位二进制码0123A A A A 和0123B B B B ,输出为M(A=B ),G (A>B )和L (A<B )(如图所示)。

用高低电平开关作为输入,发光二极管作为输出,具体管脚安排可根据试验系统的实际情况自行定义。

EDA实习报告1

EDA实习报告1

贵州师范大学学生实习报告科目:EDA实习专业: 电气工程及其自动化班级: 10电气**: ***学号: ************实验项目名称:数字电子钟的设计实验项目性质:普通试验所属课程名称:VHDL程序设计一、实验目的1 学习VHDL语言的一些基本特点。

2 掌握VHDL程序的基本结构。

3掌握VHDL程序设计方法。

4 要能够用vhdl语言读懂并编写eda程序,对eda设计的总体框架能有较好的把握,掌握各模块的调用方式。

二、实验内容和要求设计一个数字时钟,显示时(2位),分(2位),秒(2位),具体要求是:具有时分秒计数显示功能,以24小时循环计时;数码管动态显示时,分,秒;具有清零功能。

在软件工具平台上,进行VHDL语言的各模块编程输入、编译实现和仿真验证。

三、实验主要仪器设备和材料计算机,开发环境MAX-PLUSII,ZY11EDA实验系统,VHDL语言。

四、实验方法、步骤及结果测试1、设计思路:数字钟的主体是计数器,它记录并显示接收到的秒脉冲个数,其中秒和分位60进制计数器,小时为24进制计数器,分别产生3位BCD码。

BCD码经译码,驱动后接数码显示电路。

根据实验要求,将设计分为5个主要部分,时功能模块、分功能模块、秒功能模块、扫描仪功能模块和7段LED功能模块。

在时、分、秒模块中,包括复位和预置数,其主要思路如下:秒钟的模块:设计一个60进制的计数器,以clk为其时钟信号,每60个clk后产生一个进位信号CF给分钟模块,作为分钟进程的响应信号。

秒钟模块VHDL程序见附录1:仿真波形如下:封装如下图:分钟的模块:同理于秒钟的模块,设计一个60进制的计数器,以CFM为其时钟信号,每60个CFM后产生一个进位信号CFM给小时模块,作为小时模块进程的响应信号。

分钟模块VHDL程序见附录二:仿真波形如下:封装如下图:小时的模块:为24进制计数器,在分的进位信号CFM的激发下计数,从0到23的时候产生一个信号CFH,全部清0,重新开始计时。

EDA实验报告含结果图

EDA实验报告含结果图

EDA电子课程实验报告专业:班级:姓名:学号:实验一四人表决器一实验目的1、熟悉Quartus II软件的使用。

2、熟悉EDA-IV实验箱。

3、熟悉EDA开发的基本流程。

二硬件需求1、RC-EDA-IV型实验箱一台;2、RC-EDA-IV型实验箱配套USB-Blaster下载器一个;3、PC机一台。

三实验原理所谓表决器就是对于一个行为,由多个人投票,如果同意的票数过半,就认为此行为可行;否则如果否决的票数过半,则认为此行为无效。

四人表决器顾名思义就是由四个人来投票,当同意的票数大于或者等于3人时,则认为同意;反之,当否决的票数大于或者等于2人时,则认为不同意。

实验中用4个拨挡开关来表示4个人,当对应的拨挡开关输入为‘1’时,表示此人同意;否则若拨挡开关输入为‘0’时,则表示此人反对。

表决的结果用一个LED表示,若表决的结果为同意,则LED被点亮;否则,如果表决的结果为反对,则LED不会被点亮。

四实验内容VHDL程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;--------------------------------------------------------------------entity EXP3 isport(k1,K2,K3,K4 : in std_logic;ledag : out std_logic_vector(3 downto 0);m_Result : out std_logic);end EXP3;--------------------------------------------------------------------architecture behave of EXP3 issignal K_Num : std_logic_vector(2 downto 0); signal K1_Num,K2_Num: std_logic_vector(2 downto 0); signal K3_Num,K4_Num: std_logic_vector(2 downto 0);beginprocess(K1,K2,K3,K4)beginK1_Num<='0'&'0'&K1;K2_Num<='0'&'0'&K2;K3_Num<='0'&'0'&K3;K4_Num<='0'&'0'&K4;end process;process(K1_Num,K2_Num,K3_Num,K4_Num,)beginK_Num<=K1_Num+K2_Num+K3_Num+K4_Num;end process;process(K_Num) beginif(K_Num>2) thenm_Result<='1';elsem_Result<='0';end if;end process;end behave;实验电路实验二格雷码转换一实验目的1、了解格雷码变换的原理。

EDA实验报告

EDA实验报告

海南师范大学物理与电子工程学院实验报告( ---- 学年第一学期)课程名称:专业班级:学号:姓名:实验一:原理图输入法设计与仿真实验时间:六、实验心得实验二七人表决器的设计3、引脚匹配实验三 显示电路设计一、实验目的1、学习7段数码显示译码器设计;2、学习VHDL 的多层设计方法。

二、实验仪器设备1、PC 机一台2、GW48-PK2系列SOPC/EDA 实验开发系统 三、实验原理1、七段数码显示工作原理(共阴极接法)7 段数码是纯组合电路,通常的小规模专用IC ,如74 或4000系列的器件只能作十进制BCD 码译码,然而数字系统中的数据处理和运算都是2 进制的,所以输出表达都是16 进制的,为了满足16 进制数的译码显示,最方便的方法就是利用译码程序在FPGA/CPLD 中来实现。

作为7 段译码器,输出信号LED7S 的7 位分别接数码管的7 个段,高位在左,低位在右。

例如当LED7S 输出为“1101101”时,数码管的7 个段:g 、f 、e 、d 、c 、b 、a 分别接1、1、0、1、1、0、1;接有高电平的段发亮,于是数码管显示“5”。

注意,这里没有考虑表示小数点的发光管,如果要考虑,需要增加段h 。

2、显示代码概念 显示代码a b cdefg四、实验内容1、编写7段译码器VHDL 源程序。

2、在Quartus Ⅱ软件上编译和仿真。

3、锁定管脚,建议选择实验电路模式6,显示译码输出用数码8 显示译码输出(PIO46-PIO40),键8、键7、键6 和键5 四位控制输入。

4编程下载与硬件验证。

5、记录系统仿真和硬件验证结果。

五、实验结果:2、波形仿真图:4、 引脚锁定:六、实验心得: 其实本实验的显示我们在模电里面就学习过了,也用集成块进行过实验,本实验用程序加硬件完成。

真所谓条条道路通罗马!实验四 四位全加器一、实验目的通过实验让学生熟悉Quartus Ⅱ的VHDL 文本设计流程全过程,掌握组合逻辑电路的文本输入设计法,通过对设计电路的仿真和硬件验证,让学生进一步了解加法器的功能。

EDA实验七八实验报告(1)

EDA实验七八实验报告(1)

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

(2)实验原理:序列检测器可用于检测一组或多组由二进制码组成的脉冲序列信号,当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的码相同,则输出 1,否则输出 0。

由于这种检测的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位码都与预置数的对应码相同。

在检测过程中,任何一位不相等都将回到初始状态重新开始检测。

书上P168例5-11 描述的电路完成对序列数”11100101”的检测,当这一串序列数高位在前(左移)串行进入检测器后,若此数与预置的密码数相同,则输出”A”,否则仍然输出”B”。

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

实验程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SCHK ISPORT (DIN,CLK,CLR: IN STD_LOGIC;AB : OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END ENTITY SCHK;ARCHITECTURE ONE OF SCHK ISSIGNAL Q : INTEGER RANGE 0 TO 8;SIGNAL D : STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIND<="11100101";PROCESS(CLK,CLR)BEGINIF CLR='1' THEN Q<=0;ELSIF CLK'EVENT AND CLK='1' THENCASE Q ISWHEN 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)BEGINIF Q=8 THEN AB<="1010";ELSE AB<="1011";END IF;END PROCESS;END ARCHITECTURE ONE;实验步骤如下:1 将源程序以SCHK.vhd的形式存入D盘名为liulin的文件夹中2 全程编译3 时序仿真4 引脚锁定和下载引脚锁定如下:CLR-PIN34;CLK-PIN32;DIN- PIN33;AB[0]- PIN77、 AB[1]- PIN78、AB[2]- PIN83、 AB[3]- PIN84;5 实际测试时序仿真波形如下图:实验分析:选择电路模式 No.8 。

eda实验报告

eda实验报告

EDA技术与 VHDL 实验报告电气工程系电子信息工程实验一: 1 位全加器设计实验目的:I1131.学习 QuartusII9.1 集成开发环境的使用方法以及如何建立工程和文件;2.用原理图输入设计法和VHDL 文本输入设计法设计1 位全加器;3.通过电路仿真和硬件验证,进一步了解1 位全加器的功能I113实验内容:用原理图输入设计法和VHDL 文本输入设计法分别设计1 位全加器,并下载到 CH4 实验箱上运行。

实验原理: 1 位全加器可以由两个半加器和一个或门连接而成, 因而可根据半加器的电路 (如图 3-1 所示)或真值表写出或门和半加器的 VHDL 描述。

然后根据图 3-2 写出全加器的顶层描述。

co a b so co0 0 0 0 aand20 1 1 0bnot xnor2so1 0 1 0111图 3-1半加器 h_adder 电路图及其真值表u1dh_adder a or2aainh_adder ccoutf_addercoutain A coAco f bbinsumbin BsoeBsou3sumcincinu2图 3-2全加器 f_adder 电路图及其实体模块实验步骤:1.打开实验箱电源; 2.输入移位寄存器 VHDL 程序;3.点击图标,进行分析和综合;4. 建立波形文件,进行功能仿真; 5.按接线图配置 FPGA 引脚; 6.点击图标 ,进行编译;7.下载 ****.sof 配置文件到 EP3C16Q240C8中;1 半加器的 vhdl 描述有两种,我用的是下面这种,布尔函数描述法 :( 1)布尔函数描述方法的VHDL 源程序如下:LIBRARY IEEE; --半加器描述 (1):布尔方程描述方法USE IEEE.STD_LOGIC_1164.ALL;ENTITY h_adder ISPORT (a, b : IN STD_LOGIC;co, so : OUT STD_LOGIC);END ENTITY h_adder;ARCHITECTURE fh1 OF h_adder isBEGINso <= NOT(a XOR (NOT b)) ; co <= a AND b ;END ARCHITECTURE fh1;( 2)或门逻辑描述:LIBRARY IEEE ; --或门逻辑描述USE IEEE.STD_LOGIC_1164.ALL;ENTITY or2a ISPORT (a, b :IN STD_LOGIC;c : OUT STD_LOGIC );END ENTITY or2a;ARCHITECTURE one OF or2a ISBEGINc <= a OR b ;END ARCHITECTURE one ;( 3) 1 位二进制全加器顶层设计描述:LIBRARY IEEE; --1 位二进制全加器顶层设计描述USE IEEE.STD_LOGIC_1164.ALL;ENTITY f_adder ISPORT (ain, bin, cin : IN STD_LOGIC;cout , sum: OUT STD_LOGIC );END ENTITY f_adder;ARCHITECTURE fd1 OF f_adder ISCOMPONENT h_adder--调用半加器声明语句PORT ( a, b :IN STD_LOGIC;co, so :OUT STD_LOGIC);END COMPONENT ;COMPONENT or2aPORT (a, b : IN STD_LOGIC;c : OUT STD_LOGIC);END COMPONENT;SIGNAL d, e,f : STD_LOGIC; --定义 3 个信号作为内部的连接线。

EDA的实验报告

EDA的实验报告

杭州电子科技大学实验报告实验课程名称实实班姓学指导教验验序内号容级名号师eda技术 1 分频器与频率计设计 123 吕文 123 黄某二○一四年 4月 18 日一、实验的目的与要求实验名称:分频器与频率计设计实验目的:1、初识verilog hdl语言熟练verilog 的语法2、学习quartus调用modelsim进行仿真3、掌握用fpga实现简易的分频器与频率计的原理与方法实验要求:1、设计一个可控分频器,输入20mhz或 12mhz 时钟(可选择其中一种),输出100hz~10khz,输出100hz ~ 10khz,输出频率数控可调(按键或者使用in-system sources and probes),输出波形占空比为50%,接蜂鸣器;2、设计一个简易频率计,输入为方波,测量频率的范围100hz ~ 9999hz ,测量精度&lt;1%,频率计输出可以接数码管或者使用in-system sources and probes观察3、分频器输出接频率计的输入二、实验原理分频器的原理:把输入的信号作为计数脉冲,由于计数器的输出端口是按一定规律输出脉冲的,所以对不同的端口输出的信号脉冲,就可以看作是对输入信号的”分频“。

频率计是对信号的频率进行测量并显示测量结果。

原理就是在1秒钟内对时钟计数,得到的数字就是频率大小。

频率计的设计是用一个标准的时钟20mhz来做参照,以1s钟为周期,为20000000个周期,同时定义一个计数的变量q ,当输入的端口出现上升沿的时候,变量加1,那么在一秒钟内cout的数值即为,该波形的频率。

最后将分频器的输出端口接入频率计的输入端口,用频率计来测量波形的频率大小,通过比较实际的频率fre1与测出来的频率大小fre2,就知道了该频率计的误差。

三、实验内容实验步骤 1、大概的把框架建起来,把思路想好2、先设计一个符合要求的分频器3、进行仿真,看效果3、再设计一个符合要求的频率计4、用modelsim进行仿真5、把这两部分连接起来,最后进行仿真得到结果6、得到频率计的测频误差本实验分频器的时钟是20mhz,分频出来的是100hz~10khz的波形,那么就定义一个变量当做分频比[17:0] div ,可以用按键来控制div的大小,继而实现分频出来的大小。

EDA实验报告

EDA实验报告

中国地质大学(武汉)EDA试验报告姓名:班号:__ ____ __学号:院系:机械与电子信息学院老师:专业:_ 通信工程___ ___目录1 软件及VHDL语言的简单介绍 (1)1.1 可编程器件与Quartus II使用 (1)1.2 VHDL语言简介 (3)2 实验一3/8 译码器和半加器的实现 (4)2.1 3/8 译码器 (4)2.2 半加器 (5)3 实验二 BCD七段显示译码实验 (6)4 实验三分频器的设计实现 (8)5 实验四动态扫描数码显示器 (10)6 实验五多功能数字钟的实现 (12)7实验感想 (20)软件及VHDL 语言的简单介绍一)可编程器件与Quartus II 使用1、总体思想2、具体操作步骤一 新建一个项目建立工编写设计文指定设计约文本输入图形输入器件选择管脚分编译仿 真编程 配分析 综建立波形文件输入仿真节PS 模式 JTAG 模式步骤二采用VHDL语言编写程序二)VHDL语言的简单介绍1、VHDL的由来VHDL语言的英文全名是Very High Speed Integrated Circuit Hardware Description Language 即超高速集成电路硬件描述语言。

它是70年代和80年代初,由美国国防部为他们的超高速集成电路VHSIC计划提出的硬件描述语言,它支持硬件的设计、综合、验证和测试。

1986年3月,IEEE开始致力于VHDL的标准化工作,讨论VHDL语言标准。

IEEE于1987年12月公布了VHDL的标准版本(IEEE STD 1076/1987);1993年VHDL重新修订,形成新的标准即IEEE STD 1076-1993,后来有相继颁布了IEEE STD 1076-2002和IEEE STD 1076-2008标准。

2、VHDL的优点1)用于设计复杂的、多层次的设计。

支持设计库和设计的重复使用。

2)与硬件独立,一个设计可用于不同硬件结构,而且设计时不必了解过多的硬件细节。

EDA技术实验报告

EDA技术实验报告

EDA技术实验报告实验一利用原理图输入法设计4位全加器一、实验目的:掌握利用原理图输入法设计简单组合电路的方法,掌握MAX+plusII 的层次化设计方法。

通过一个4位全加器的设计,熟悉用EDA 软件进行电路设计的详细流程。

二、实验原理:一个4位全加器可以由4个一位全加器构成,全加器的进位以串行方式实现,即将低位加法器的进位输出cout 与相邻的高位加法器的低位进位输入信号cin 相接。

1位全加器f-adder 由2个半加器h-adder 和一个或门按照下列电路来实现。

半加器h-adder 由与门、同或门和非门构成。

四位加法器由4个全加器构成三、实验内容:1. 熟悉QuartusII 软件界面,掌握利用原理图进行电路模块设计的方法。

QuartusII 设计流程见教材第五章:QuartusII 应用向导。

2.设计1位全加器原理图(1)生成一个新的图形文件(file->new->graphic editor )(2)按照给定的原理图输入逻辑门(symbol ->enter symbol) COCO 1S 2S 3S 4(4)为管脚和节点命名:在管脚上的PIN_NAME处双击鼠标左键,然后输入名字;选中需命名的线,然后输入名字。

(5)创建缺省(Default)符号:在File菜单中选择Create Symbol Files for Current File项,即可创建一个设计的符号,该符号可被高层设计调用。

3.利用层次化原理图方法设计4位全加器(1)生成新的空白原理图,作为4位全加器设计输入(2)利用已经生成的1位全加器的缺省符号作为电路单元,设计4位全加器的原理图.4.新建波形文件(file->new->Other Files->Vector Waveform File),保存后进行仿真(Processing ->Start Simulation),对4位全加器进行时序仿真。

数电实验eda工具软件的使用实验报告

数电实验eda工具软件的使用实验报告

数电实验eda工具软‎件的使用实验报告数‎电实验eda工具软件‎的使用实验报告‎篇‎一:‎E DA工具软件的使用‎实验报告实验报告‎一、实验‎名称:ED‎A工具软件的使用‎二、实验目的:‎初步掌握软件‎的使用方法;初步掌‎握设计电路的图形输入‎法。

三、实验‎任务:利用‎图形输入法,输入、仿‎真、简单的逻辑电路,‎以掌握软件的使用方法‎。

四、实验设‎备与元器件:‎1.计算机‎2.Quart‎u sⅡ软件五‎、实验要求:‎1. 采用与‎、或、非门,设计异或‎门,仿真其功能并与理‎论值比较;‎2. 采用与、‎或、非门,设计组合电‎路F,仿真其功能并与‎理论值比较。

‎六、实验设计说明:‎1.异‎或门逻辑表达式为:‎ F=A?B=‎A+B2.组‎合电路的逻辑表达式为‎:F=AC‎?BC?B(AC?A‎C) 七、实验内容和‎步骤:‎1.异或门:‎真值表:‎*QuartusⅡ‎软件设计电路:‎在Quartus‎Ⅱ软件里建立工程—‎B lck Diagr‎a m/Schemat‎i c File 文件后‎按异或门逻辑表达式设‎计好电路实验电路图‎:按上图设‎计好电路后,通过编译‎无错后再进行仿真。

‎仿真图:由‎图知仿真结果延迟了约‎11ns,其结果与列‎出的真值表相同。

所以‎该实验电路是正确的。

‎2.组合电路‎:真值表:‎在Quar‎t usⅡ软件里建立‎工程—Blck Di‎a gram/Sche‎m atic File‎文件后按组合电路逻辑‎表达式设计好电路。

‎组合电路图:‎按上图设计好电路后‎,通过编译无错后再进‎行仿真。

仿真图:‎由图知仿真结‎果延迟了约10ns,‎其结果与列出的真值表‎相同。

所以该实验电路‎是正确的。

八‎、实验总结:‎通过本次实验已经初‎步掌握了Quartu‎sⅡ软件的使用方法,‎并掌握了如何利用Qu‎a rtusⅡ软件进行‎利用图形输入法输入和‎仿真简单的逻辑电路。

‎‎篇二:‎数字电路与E‎D A实践实验报告实‎验名称逻辑代数基础与‎逻辑门电路仿真实验‎课程名称数字电路与‎E DA实践实验时间‎201X年XX 月X‎X日(第2-5周)‎实验名称组合逻辑‎电路仿真实验课程名‎称数字电路与EDA‎实践实验时间 20‎1X年XX月XX日‎(第6-7周)实验‎名称触发器仿真实验‎课程名称数字电路‎与EDA实践实验时‎间201X年XX月‎X X日(第8-9周‎)实验名称时序逻辑‎电路仿真实验课程名‎称数字电路与EDA‎实践实验时间 20‎1X年XX月XX日‎(第10-11周)‎实验名称脉冲波形的产‎生与整形电路仿真实验‎课程名称数字电路‎与EDA实践实验时‎间 201X年XX月‎X X日(第12-1‎3周)‎篇‎三:‎E DA实验报告《数‎字电路与系统设计》‎E DA实验报告班级‎:02101‎4学号:0‎21012** 姓名‎:张** 西‎安电子科技大学电子工‎程学院双路并行交通‎灯实验设计‎一、实验功能介‎绍本系统是根据实际‎交通情况,利用ver‎i lg语言设计,并在‎B asys2 FPG‎A开发板上实现的双路‎并行交通灯。

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

EDA实验报告题目:数显电子钟系统设计班级:姓名:学号:一.实验说明1.能够对S(秒)、MIN(分)、Hr(小时)进行计时,按24小时计时制;2.MIN、Hr位能够调整;(选做)3.要求采用多层次设计的设计方法。

(顶层用原理图输入法)4.底层设计三个模块,说明:(底层包含ABC三个模块)电子钟功能:本质上是对S(秒)信号计数实验中提供1kHz时钟,分频产生S(秒)时钟电子钟主要有三个组成部分:时基分频器、计时器、显示电路a)时基分频器:对基本时钟进行分频得到S(秒)时钟等b)计时器:主要包括S计时器(60进制)、MIN计时器(60进制)、Hr计时器(24进制)c)显示电路::用6位扫描数码显示(七段共阴极数码管)二.实验内容:1.顶层原理图:由分频模块、计时器模块和扫描显示模块组成。

端口说明:输入:clk:1kHz时钟信号输入sethour:设置小时clr:系统复位setmin:设置分钟输出:WeiXuan:6位数码管选通DuanXuan:7段数码管显示2.分频模块:(1)VHDL描述:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity fenp isport (clk:in std_logic;fout:out std_logic);end fenp;architecture a of fenp issignal ftemp:std_logic;beginprocess(clk)variable num:integer range 0 to 1000;beginif clk'event and clk='1' thenif num<500 thennum:=num+1;elsenum:=0;ftemp<=not ftemp;end if ;end if;fout<=ftemp;end process;end a;(2)仿真波形图如下:分析说明:根据 clk=2*num*fout,将1kHz的时钟信号经过千分频为1Hz,作为计时模块的时钟信号,成为秒时钟信号。

3.计时器模块:(1)VHDL描述:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jishi isport(clk,clr:in std_logic;sec1,sec0,min1,min0,h1,h0:out std_logic_vector(3 downto 0);sethour,setmin:in std_logic);end jishi;architecture one of jishi issignal co1,co2,comin,cohour,enmin,enhour:std_logic;beginprocess(clk,clr,setmin) --秒计时及分调整variable sectemp0,sectemp1:std_logic_vector(3 downto 0);beginif clr='1'thensectemp1:="0000";sectemp0:="0000";elsif clk'event and clk='1' thenif sectemp1="0101" and sectemp0="1001" thenco1<='1';sectemp0:="0000";sectemp1:="0000";elsif sectemp0<"1001" thensectemp0:=sectemp0+1;co1<='0';elsesectemp0:="0000";if sectemp1<"0101" thensectemp1:=sectemp1+1;elsesectemp1:="0000";end if;end if;end if;comin<=(clk and setmin);enmin<=(co1 or comin);sec1<=sectemp1;sec0<=sectemp0;end process;process(clr,enmin,sethour) --分计时及时调整variable mintemp0,mintemp1:std_logic_vector(3 downto 0);beginif clr='1' thenmintemp1:="0000";mintemp0:="0000";elsif enmin'event and enmin='1' thenif mintemp1="0101" and mintemp0="1001" thenco2<='1';mintemp0:="0000";mintemp1:="0000";elsif mintemp0<"1001" thenmintemp0:=mintemp0+1;co2<='0';elsemintemp0:="0000";if mintemp1<"0101" thenmintemp1:=mintemp1+1;elsemintemp1:="0000";end if;end if;end if;cohour<=(clk and sethour);enhour<=(co2 or cohour);min1<=mintemp1;min0<=mintemp0;end process;process(clr,enhour) --时计时variable htemp0,htemp1:std_logic_vector(3 downto 0);beginif clr='1' thenhtemp1:="0000";htemp0:="0000";elsif enhour'event and enhour='1' thenif htemp1="0010" and htemp0="0011" thenhtemp1:="0000";htemp0:="0000";elsif htemp0<"1001" thenhtemp0:=htemp0+1;elsehtemp1:=htemp1+1;htemp0:="0000";end if;end if;h1<=htemp1;h0<=htemp0;end process;end one;(2)仿真波形图如下:分析说明:setmin,sethour 完成对时、分的调整,使电子钟的适用性更好。

由于是秒时钟信号clk,满足调整时、分的要求,所以无需其他脉冲信号。

分析说明:sec0、sec1分别为秒计时的个位和十位,min0、min1分别为分计时的个位和十位,h0、和h1分别为时计时的个位和十位,给秒信号,计时模块从00:00:00计时到23:59:59后又清零为00:00:00,完成了时钟的计时。

3.扫描显示模块:(6位7段共阴数码管)(1)VHDL描述:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity scanselect isport(clk:in std_logic;sec1,sec0,min1,min0,h1,h0:in std_logic_vector(3 downto 0);duan:out std_logic_vector(6 downto 0);wei:out std_logic_vector(5 downto 0));end scanselect;architecture fun of scanselect issignal count:std_logic_vector(2 downto 0);signal dout:std_logic_vector(3 downto 0);signal seltemp:std_logic_vector(5 downto 0);beginwei<=seltemp;process(clk)beginif(clk'event and clk='1') thenif(count>="110") thencount<="001";elsecount<=count+1;end if;end if;case count iswhen"001"=>dout<=sec0;seltemp<="111110"; --选中秒个位数码管when"010"=>dout<=sec1;seltemp<="111101"; --选中秒十位数码管when"011"=>dout<=min0;seltemp<="111011"; --选中分个位数码管when"100"=>dout<=min1;seltemp<="110111"; --选中分十位数码管when"101"=>dout<=h0;seltemp<="101111"; --选中时个位数码管when others=>dout<=h1;seltemp<="011111"; --选中时十位数码管end case;case dout iswhen "0000"=>duan<="0111111"; --显示数字0when "0001"=>duan<="0000110"; --显示数字1when "0010"=>duan<="1011011"; --显示数字2when "0011"=>duan<="1001111"; --显示数字3when "0100"=>duan<="1100110"; --显示数字4when "0101"=>duan<="1101101"; --显示数字5when "0110"=>duan<="1111101"; --显示数字6when "0111"=>duan<="0100111"; --显示数字7when "1000"=>duan<="1111111"; --显示数字8when others=>duan<="1101111"; --显示数字9end case;end process;end fun;(2)仿真波形图如下:分析说明:该扫描显示模块的位输出选通一个数码管,段输出按要求点亮数码管的相应段,显示需要的数字,时钟信号是1kHz的,满足数码管的驱动要求。

相关文档
最新文档