EDA 实验报告

合集下载

EDA实验报告

EDA实验报告

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

EDA实验报告正文

EDA实验报告正文

实验一单级放大电路的设计与仿真一、实验目的1.掌握放大电路静态工作点的调整与测试方法;2.掌握放大电路动态参数的测试方法;3.观察动态工作点的选择对输出波形及放大倍数的影响。

二、实验要求1.设计一个分压偏置的单管电压放大电路,要求信号源频率5kHz(峰值10mV) ,负载电阻5.1kΩ,电压增益大于50。

2.调节电路静态工作点(调节偏置电阻),观察电路出现饱和失真和截止失真的输出信号波形,并测试对应的静态工作点值。

3.调节电路静态工作点(调节偏置电阻),使电路输出信号不失真,并且幅度最大。

在此状态下测试:①电路静态工作点值;r、ce r值;②三极管的输入、输出特性曲线和 、be③电路的输入电阻、输出电阻和电压增益;f、H f值。

④电路的频率响应曲线和L三、实验步骤1.单级放大电路的原理图:2.a.电路的饱和失真:静态工作点参数:图表3 饱和失真时静态工作点参数数据分析:Ib=12.90259uA Ic=2.07754mA Uce=0.20717V此时电位器为0%,基极静态电流过大而导致三极管达到饱和,使得电路出现失真。

b.电路的截止失真:图表4 截止失真时输出电压波形图静态工作点参数:图表5 截止失真时静态工作点参数数据分析:Ib=3.87579uA Ic=834.27745uA Uce=6.07513V此时电位器为100%,使得基极电位减小,三极管截止导致电路出现失真。

c.电路的最大不失真输出:图表6 最大不失真时输出电压波形图静态工作点参数:图表7 最大不失真时输出时静态工作点参数数据分析:Ube=0.64415V IC=1.87602mA IB=9.05731uA Uce=1.23723V β=207 此时电位器为20%3.a.三极管的输入特性:图表8 输入特性测试电路图表9 最大不失真时输入特性曲线从上图数据可以得出rbe=2.8353kΩb.三极管的输出特性:电路图及曲线:图表10 输出特性测试电路图表11 最大不失真时输出特性曲线从上图数据可以得出rce=10.793kΩ4.输入电阻的测量:图表12 输入电阻测量电路及数据从上图数据可以得出测试输入电流i=3.864uA 电阻Ri=2.588kΩ理论输入电阻Ri=2.483 kΩ误差4.1%5.输出电阻的测量:图表13 输出电阻测量电路及数据从上图数据可以得出测试输出电阻Ro=2.097kΩ理论输出电阻Ro=2.030 kΩ误差3.2%6.电压增益:图表14 电压增益测量电路及数据Au=110.557.电路的频率特性:图表15 波特图及数据最大输出增益41.25dB图表15 波特图及数据fL=229Hz fH=14.470MHz四、实验小结从以上测量的数据与理论计算值比较可以发现存在一定的误差,误差产生的原因可能包括:a.本次试验中的器件均选用实际器件,它们自身存在随机误差,例如:实验所用三极管的输出特性曲线放大区并非理想的水平平行线,而是发散的,只就导致正常放大的波形出现不对称行,仿佛截止失真。

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实验报告(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 实验的主要目的是通过实际操作和设计,深入理解和掌握电子设计自动化(EDA)技术的基本原理和应用。

具体而言,包括熟悉 EDA 工具的使用方法,学会运用硬件描述语言(HDL)进行逻辑电路的设计与描述,以及通过综合、仿真和实现等流程,将设计转化为实际的硬件电路,并对其性能进行评估和优化。

二、实验环境本次实验所使用的 EDA 工具为_____,该工具提供了丰富的功能模块和强大的设计支持,包括原理图编辑、HDL 代码编写、综合、仿真和下载等。

实验所使用的硬件平台为_____开发板,其具备多种接口和资源,便于对设计的电路进行实际验证和测试。

三、实验内容1、基本逻辑门电路的设计与实现使用 HDL 语言(如 Verilog 或 VHDL)设计常见的基本逻辑门电路,如与门、或门、非门等。

通过编写代码,对逻辑门的输入输出关系进行描述,并进行综合和仿真,验证设计的正确性。

2、组合逻辑电路的设计与实现设计并实现较为复杂的组合逻辑电路,如加法器、减法器、编码器、译码器等。

运用 HDL 语言描述电路的功能,进行综合和仿真,确保电路在各种输入情况下的输出结果符合预期。

3、时序逻辑电路的设计与实现设计常见的时序逻辑电路,如计数器、寄存器、移位寄存器等。

在设计过程中,考虑时钟信号、同步复位和异步复位等因素,通过仿真验证时序逻辑的正确性,并对电路的性能进行分析。

4、有限状态机(FSM)的设计与实现设计一个有限状态机,实现特定的功能,如交通信号灯控制器、数字密码锁等。

明确状态转移条件和输出逻辑,通过编写 HDL 代码实现状态机,并进行综合和仿真,验证其功能的准确性。

5、综合与优化对设计的电路进行综合,生成门级网表,并通过优化工具对电路进行面积、速度等方面的优化,以满足特定的设计要求。

6、硬件实现与测试将综合后的设计下载到硬件开发板上,通过实际的输入输出信号,对电路的功能进行测试和验证。

观察电路在实际运行中的表现,对出现的问题进行分析和解决。

EDA实验报告

EDA实验报告

实验一:不同设计输入方式比较1、实验目的(1) 学习MAX+plus II软件的基本使用方法。

(2) 学习EDA实验开发系统的基本使用方法。

(3) 掌握VHDL程序的原理图和文本输入方式。

2、实验内容(1) 原理图输入(mux21.vhd) 方式的2选1多路选择器的设计(2) 文本编辑输入(mux41.vhd) 方式的4选1多路选择器的设计3、实验要求(1) MAX+plus II软件画出系统的原理框图,说明系统中各主要组成部分的功能。

(2) 编写VHDL源程序。

(3) 在MAX+plus II工具下编译、综合、适配、仿真、实验板上的硬件测试。

(4) 根据EDA实验开发装置编好用于硬件验证的管脚锁定文件。

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

(6) 记录实验过程中出现的问题及解决办法。

4:实验步骤:程序编译过程:新建text文件→输入程序并保存其中保存名为实体名,并以vhd类型结尾→点击file下的project设定为current file点击maxplus 中的compiler按钮→显示无误后→点击新建按钮建立wave 文件→点击node 按钮添加管脚→保存并按text 的步骤检验wave 文件。

(1):用原理图法实现二选一多路选择器。

二选一选择器原理图其中B端为控制端,A,C为控制端(2):用文本输入法实现四选一多路选择器。

其文本程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MUX41 ISPORT(INPUT:IN STD_LOGIC_VECTOR(3 DOWNTO 0);A,B:IN STD_LOGIC;Y:OUT STD_LOGIC);END MUX41;ARCHITECTURE BE_MUX41 OF MUX41 ISSIGNAL SEL:STD_LOGIC_VECTOR(1 DOWNTO 0); BEGINSEL<=A&B;PROCESS(INPUT,SEL)BEGINIF(SEL="00")THENY<=INPUT(0);ELSIF(SEL="01")THENY<=INPUT(1);ELSIF(SEL="10")THENY<=INPUT(2);ELSEY<=INPUT(3);END IF;END PROCESS;END BE_MUX41;实验二:VHDL语言编程—组合逻辑电路设计1、实验目的(1) 学习VHDL三种描述风格;(2) 学习元件例化语句的使用方法;(3) 学习VHDL程序层次化设计方法2、实验内容用元件例化语句方法和原理图方法设计四位全加器。

EDA实验报告

EDA实验报告

EDA 实验实验一 用原理图输入法设计半加器一、实验目的:1.熟悉利用Quartus Ⅱ的原理图输入方法设计简单组合电路;2.通过一个半加器的设计把握利用EDA 软件进行电子线路设计的详细流程;3.学会对实验板上的FPGA/CPLD 进行编程下载,硬件验证自己的设计项目。

二、实验器材:1、计算机及操作系统2、QUARTUS II 软件三、实验要求:1. 利用原理图输入法对半加器电路进行描述;2. 进行波形仿真测试;3. 严格按照实验步骤进行实验;4. 管脚映射按照芯片的要求进行。

四、实验原理其中a, b 为输入端口,So 与Co 分别为半加器和与进位。

其逻辑表达式为:2. 根据逻辑表达式进行原理图输入。

五、实验步骤:1. 为本项工程设计建立文件夹。

注意文件夹名不能用中文,且不可带空格。

2. 输入设计项目并存盘。

3. 将设计项目设计为工程文件。

4. 选择目标器件并编译。

b a b a b a So ⊕=+=ab Co =5. 时序仿真。

6. 引脚锁定。

7. 编程下载。

实验二用原理图法设计一位、四位全加器一、实验目的:1. 熟悉利用QuartusⅡ的原理图输入方法设计简单组合电路;2. 通过一个半加器的设计把握利用EDA 软件进行电子线路设计的详细流程;3. 学会对实验板上的FPGA/CPLD 进行编程下载,硬件验证自己的设计项目。

二、实验器材:1、计算机及操作系统2、QUARTUS II软件三、实验要求:1.利用原理图输入法对一位全加器电路进行描述;2. 进行波形仿真测试;3. 严格按照实验步骤进行实验;四、实验原理:利用实验一所设计的半加器设计一位全加器;利用设计封装好的一位全加器进行四位全加器的设计。

五、实验步骤:与实验一相同。

六、实验报告:1. 要求画出一位、四位全加器的真值表;2. 分析用半加器实现一位全加器的优点;3. 对波形进行分析,并绘制波形图。

实验三用文本输入法设计D触发器和锁存器一、实验目的:1. 熟悉QuartusⅡ的VHDL 文本设计过程。

eda仿真实验报告

eda仿真实验报告

eda仿真实验报告EDA仿真实验报告一、引言EDA(Electronic Design Automation)是电子设计自动化的缩写,是指利用计算机技术对电子设计进行辅助、自动化的过程。

在现代电子设计中,EDA仿真是不可或缺的一环,它可以帮助工程师验证电路设计的正确性、性能和可靠性。

本篇报告将介绍我在EDA仿真实验中的经验和收获。

二、实验背景本次实验的目标是对一个数字电路进行仿真,该电路是一个4位加法器,用于将两个4位二进制数相加。

通过仿真,我们可以验证电路设计的正确性,并观察其在不同输入情况下的输出结果。

三、实验步骤1. 电路设计:首先,我们根据给定的要求和电路原理图进行电路设计。

在设计过程中,我们需要考虑电路的逻辑关系、时序要求以及输入输出端口的定义等。

2. 仿真环境搭建:接下来,我们需要选择合适的EDA仿真工具,并搭建仿真环境。

在本次实验中,我选择了Xilinx ISE Design Suite作为仿真工具,并创建了一个仿真项目。

3. 仿真测试向量生成:为了对电路进行全面的测试,我们需要生成一组合适的仿真测试向量。

这些测试向量应该覆盖了电路的所有可能输入情况,以验证电路的正确性。

4. 仿真运行:在仿真环境搭建完成后,我们可以开始进行仿真运行了。

通过加载测试向量,并观察仿真结果,我们可以判断电路在不同输入情况下的输出是否符合预期。

5. 仿真结果分析:仿真运行结束后,我们需要对仿真结果进行分析。

通过对比仿真输出和预期结果,可以判断电路设计的正确性。

如果有不符合预期的情况,我们还可以通过仿真波形分析,找出问题所在。

四、实验结果与讨论在本次实验中,我成功完成了4位加法器的仿真。

通过对比仿真输出和预期结果,我发现电路设计的正确性得到了验证。

无论是正常情况下的加法运算,还是特殊情况下的进位和溢出,电路都能够正确地输出结果。

在实验过程中,我还发现了一些有趣的现象。

例如,在输入两个相同的4位二进制数时,电路的输出结果与输入完全一致。

eda实验报告

eda实验报告

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

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

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

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

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

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

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

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

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

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

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

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

EDA实验报告含结果图

EDA实验报告含结果图

EDA电子课程实验报告专业:班级:姓名:学号:实验一四人表决器一实验目的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实验报告

实验一单级放大电路的设计与仿真一、实验内容1.设计一个分压偏置的电压放大电路,要求信号源频率5kHz(峰值1mV) ,负载电阻5.1kΩ,电压增益大于50。

2.调节电路静态工作点(调节电位计),观察电路出现饱和失真和截止失真的输出信号波形,并测试对应的静态工作点值。

3.调节电路静态工作点(调节电位计),使电路输出信号不失真。

在此状态下测试:(1)电路静态工作点值;(2)电路的输入电阻、输出电阻和电压增益;(3)电路的频率响应曲线和fL、fH值。

二、实验要求1.给出单级放大电路原理图。

2.给出电路饱和失真、截止失真和不失真时的输出信号波形图,并给出三种状态下电路静态工作点值。

3.给出正常放大时测量输入电阻、输出电阻和电压增益的实验图,给出测试结果并和理论计算值进行比较。

4.给出电路的幅频和相频特性曲线,并给出电路的fL、fH值。

5.分析实验结果。

三、实验步骤1.实验原理图:2.饱和失真时波形(运行大概0.25s后波形稳定):此时静态工作点为:所以,I BQ=78.83507u A,I CQ=1.07079mA,U CEQ=V2-V1=41.3mV。

3.截止失真时波形:此时静态工作点为:所以,I BQ=877.72n A,I CQ=143.84u A,U CEQ=V2-V1=10.44V。

4.不失真时波形:此时静态工作点为:所以,I BQ= 3.92081u A,I CQ= 820.43565u A, U CEQ=V2-V1=3.14V。

5.不失真时测输入电阻:电路:万用表显示值:所以,Ri(测)=4.77KΩ,Ri(理)=R1||R2||Rbe=30K||20K||(26mV/Ibq+200)=30K||20K||6.633K=4.35KΩ相对误差E=9.6%,可以认为在误差允许的范围内实验结果是正确的。

6.不失真时测电压增益:电路图:万用表显示值:所以,Av(测)= -80.46, Av(理)= -β(R4||R5)/ Rbe= -83.87相对误差E=4.2%7.不失真时的输出电阻:电路:万用表读数:Ro(测)=5.799KΩRo(理)=R4=5.8KΩ,相对误差E=0.17% 。

eda实验报告完整版

eda实验报告完整版

eda实验报告完整版EDA实验报告一、文献综述EDA,全称为Exploratory Data Analysis,是一种数据探索性分析方法。

EDA通过多种可视化工具和数据分析技术快速探索数据集的特征和结构,从而发现其中的规律和异常,确定数据的可靠性和种类。

EDA的主要目的在于对数据进行全面的分析和理解,为后续的数据处理和建模提供参考。

EDA作为数据预处理的重要步骤,在数据分析和建模中占据着重要的地位。

目前,随着数据收集、存储和分析技术的快速发展,EDA正在成为数据分析中不可缺少的部分。

在大数据时代,EDA的发展已经超越了其传统的数据探索性分析功能,成为了快速调试和优化模型的重要手段。

二、实验目的本次实验旨在掌握EDA技术方法和可视化工具,在实际数据集中进行数据预处理和探索性分析。

主要目标包括:1.掌握常用的EDA方法和可视化工具。

2.通过对实际数据集处理和分析,了解数据的特征和结构。

3.确定数据集的质量、可靠性和种类。

4.为后续的数据处理和建模提供参考。

三、实验流程1.数据集的加载和清洗本次实验选用的数据集为Iris数据集,包含了鸢尾花的三个品种(Setosa、Versicolour、Virginica)的四个特征(sepal length、sepal width、petal length、petal width)共150个样本。

由于Iris数据集已经经过处理,因此不需要进行特殊的预处理。

为了更好地探索Iris数据集,我们将其存储为dataframe格式,以方便进行数据的各类统计和可视化。

2.数据特征的可视化在数据特征的可视化中,我们使用了多种可视化工具包括:ggplot2和ggpubr。

下面是我们在R语言环境下所使用的代码。

# 加载ggplot2和ggpubrlibrary(ggplot2)library(ggpubr)#加载Iris数据集data("iris")df = iris# 1.绘制直方图hist <- ggplot(df, aes(x = Sepal.Length)) +geom_histogram(fill = "blue", alpha = .5, bins = 30) +ggtitle("Distribution of Sepal.Length")# 2.绘制密度图density <- ggplot(df, aes(x = Sepal.Width, fill = Species)) +geom_density(alpha = .5) +scale_fill_manual(values = c("#00AFBB", "#E7B800", "#FC4E07")) +ggtitle("Density plot of Sepal.Width")# 5.绘制箱线图boxplot <- ggplot(df, aes(x = Species, y = Sepal.Length, fill = Species)) + geom_boxplot() +ggtitle("Boxplot of Sepal.Length by Species")上述代码会生成6个图表,分别为直方图、密度图、散点图、热力图、箱线图和柱状图。

EDA原理及应用 实验报告

EDA原理及应用 实验报告

一.基础部分1.整体框架采用自顶向下的层次化设计思路,将实现功能的各模块放入单独的文件内完成,最后通过top文件例化各个模块实现整体功能,再根据引脚约束与硬件对应。

在本例的基础部分主要分为计数频率5hz的分频,七段数码管的驱动,七段数码管扫描的频率,计数模块,16进制到10进制转换模块。

下面逐项介绍:2.计数频率5HZ分频a.设计思路由上一个实验,我们知道1HZ的分频需要计数到49999999,因此本例的5HZ应该计数到上次计数值的五分之一:9999999,也就是十六进制下的98967f,将分频后的时钟div_clk_098作为输出。

为了最终的顶层设计具有清零功能,因此对每一个子模块也加入清零引脚。

b.源代码module divclk_2_098(input clk_098,input rst_098,output reg div_clk_098);reg[31:0]counter_098;always@(posedge clk_098 or posedge rst_098)beginif(rst_098)counter_098<=32'h00000000;elseif(counter_098==32'h0098967f)//5hz分频begincounter_098<=32'h00000000;div_clk_098<=~div_clk_098;endelsecounter_098<=counter_098+1;endendmodule3.数码管刷新频率分频a.设计思路根据人眼的视觉暂留效应,当数码管的刷新频率很快的时候,看上去会像多个数码管通识导通。

但原有100MHZ的主频太快,以此刷新并不能实现效果,查阅资料并实际测试,让其计数到60000左右可以完成任务,最终选取了61567,即16进制下的f07f,将输出scan_clk_098作为顶层文件中的七段数码管的时钟进行驱动刷新。

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实验报告一、实验目的本次 EDA 实验的主要目的是熟悉电子设计自动化(EDA)软件的使用,掌握数字电路的设计、仿真和实现流程,提高对数字逻辑电路的理解和设计能力。

二、实验设备与环境1、计算机一台2、 EDA 软件(如 Quartus II 等)三、实验原理1、数字逻辑基础数字电路中的基本逻辑门包括与门、或门、非门、与非门、或非门等。

通过这些基本逻辑门的组合,可以实现各种复杂的数字逻辑功能。

2、组合逻辑电路组合逻辑电路的输出仅取决于当前的输入,不存在存储单元。

常见的组合逻辑电路有加法器、编码器、译码器等。

3、时序逻辑电路时序逻辑电路的输出不仅取决于当前的输入,还与电路的过去状态有关。

常见的时序逻辑电路有计数器、寄存器等。

四、实验内容1、设计一个简单的加法器使用基本逻辑门设计一个两位加法器,输入为两个两位的二进制数A 和 B,输出为它们的和 S 以及进位 C。

2、设计一个 4 位计数器实现一个 4 位的计数器,能够在时钟信号的上升沿进行计数,计数范围为 0 到 15。

3、设计一个数码管显示译码器将输入的 4 位二进制数转换为数码管的 7 段显示编码,实现数字 0 到 9 的显示。

五、实验步骤1、加法器设计(1)打开 EDA 软件,创建一个新的项目。

(2)使用原理图输入方式,绘制出加法器的逻辑电路图,包括两个半加器和一个或门。

(3)对设计进行编译,检查是否存在语法错误。

(4)创建仿真文件,设置输入信号的激励,进行功能仿真,观察输出结果是否符合预期。

2、计数器设计(1)在项目中新建一个模块,使用 Verilog HDL 语言描述计数器的功能。

(2)编写测试代码,对计数器进行仿真验证。

(3)将计数器下载到硬件开发板上,通过观察实际的输出结果验证其功能。

3、数码管显示译码器设计(1)同样使用原理图输入方式,设计数码管显示译码器的逻辑电路。

(2)进行编译和仿真,确保译码器的功能正确。

(3)将译码器与计数器连接起来,实现数码管的动态显示。

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位全加器进行时序仿真。

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

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

实验任务1:利用软件完成二选一多路选择器的文本编辑和仿真测试等步骤,给出仿真波形,最后在实验系统上进行硬件测试,验证功能。

然后,利用元件例化语句描述图3-31,并将此文件放在同一目录下。

实验任务2:利用刚刚完成的实验内容,设计完成一位全加器,仿真该全加器,得到仿真结果,并利用一位二进制全加器为基本元件,用例化语句写出八位并行二进制全加器的顶层文件,讨论该加法器的电路特性。

实验代码及仿真结果:二选一多路选择器: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 isbeginprocess(a,b,s)beginif s='0' then y<=a; else y<=b;end if;end process;end architecture one;仿真结果:分析:1、s对电路的输出具有决定作用,s为0时输出为a的值,为1时输出为b的值。

从仿真结果可以看出0到10ns内,s为0,此时y的输出为0,是a的值。

2、10到20ns时间内,s为1,输出为b的值,y为1。

图3-31的仿真仿真程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity singt isport(a:in std_logic_vector(3 downto 1);s:in std_logic_vector(1 downto 0);outy: out std_logic);end singt;architecture bhv of singt iscomponent mux21aport(a,b,s: in std_logic;y:out std_logic );end component;signal tmp: std_logic;beginu1:mux21a port map(a=>a(2),b=>a(3),s=>s(0),y=>tmp);u2:mux21a port map(a=>a(1),b=>tmp,s=>s(1),y=>outy);end architecture bhv;该部分仿真结果:分析:1、3-31中电路的涵义是,s1s0为00时选择outy为a1,s1s0为01时outy为a1,s1s0为10时outy为a2,s1s0为11时outy为a3。

2、从仿真结果来看,s1s0为00时a1为0,所以outy为0,s1s0为01时a1为1,输出也为1,s1s0为10时,a2为1,所以输出也为1 。

一位全加器仿真代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity bit1adder isport(a,b,ci:in std_logic;s,co:out std_logic);end bit1adder;architecture func of bit1adder issignal x,y:std_logic;beginx<=a xor b;y<=x and ci;s<=x xor ci;co<=y or (a and b);end func;仿真结果:分析:1、全加器的作用是将两位加数a,b相加,得到和的低位和进位值,再将进位值与输入的进位ci相加得到结果的进位值co。

本仿真中刚开始,a,b,ci为1,相加应为11(十进制的3),从仿真结果上看,co为1,s为1,可看出结果是正确的。

2、10ns到20ns为0+1+0,结果应该为1,而s为1,co为1,结果仍然正确。

4-2 时序电路的设计实验目的:熟悉Quartus2的VHDL文本设计流程全过程,学习简单的组合电路的设计,多层次电路设计、仿真、和硬件测试。

实验任务1:设计一个D触发器。

实验代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;entity DFF1 isport(CLK : in std_logic;D : in std_logic;Q : out std_logic);end;architecture beh of DFF1 issignal Q1:std_logic;beginprocess(CLK,Q1)beginif CLK'event and CLK = '1' thenQ1 <=D ;end if;end process;Q <= Q1;end beh;实验仿真结果及分析:分析:1、D触发器就是在时钟有效的时候,输出输入端的值。

从仿真的结果看,输出的Q在第一个时钟有效的时候输出为0,第二个时钟有效的时候输出即变为D的值1.以后的时间以此类推。

实验任务2:设计一个锁存器。

实验代码:Library IEEE ;USE IEEE.std_logic_1164.all ;ENTITY latchinf ISPORT(clk, d : IN BIT;q : OUT BIT);END latchinf;ARCHITECTURE maxpld OF latchinf ISBEGINlatch : PROCESS (clk, d)BEGINIF (clk = '1') THENq <= d;END IF;END PROCESS latch;END maxpld;仿真结果及分析:分析:1、锁存器的基本原理是在时钟信号为1的时候将输入值锁存进锁存器。

从仿真结果来看,在第一个时钟信号中,时钟为0,所以不管输入信号是多少,输出没有作用,所以显示无效。

2、在后来的时钟clk为1的状态下,输出信号与输入信号是一模一样的。

锁存器与触发器的区别在于触发器是在clk激发的时候输出,而锁存器则是在clk为1的时候输出,在为0的时候保持原先的输出值。

从仿真结果来看,这些功能都实现了。

实验任务3:用一个以为二进制全加器为基本元件和一些辅助的时序电路设计一个八位串行二进制加法器。

并串转换电路实验代码:Library ieee;Use ieee.std_logic_1164.all;Entity bing isport( d1, cp : in std_logic;d0 : out std_logic_vector(7 downto 0));End bing;Architecture structure of bing iscomponent DFF1port(CLK : in std_logic;D : in std_logic;Q : out std_logic);end component;signal q_temp :std_logic_vector(8 downto 0);Beginq_temp(0)<=d1;lable1 : for I in 0 to 7 generatedffx :DFF1 port map (cp,q_temp(I),q_temp(I+1));end generate lable1;d0<=q_temp(8 downto 1);End structure;说明:采用例化语句将原先设计的d触发器利用到,完成八位串行输入并行输出电路代码。

仿真结果如下:分析:从仿真结果可以看出,在每个时钟信号有效之后,d0的输出都会变化一位,具体来讲,就是想做移动一位,同时最右边一位是d1的输入值,在经历的八个脉冲之后,d0的结果是11101111,这与d1的输入情况是相符的。

下面是并串转换移位寄存器的实验代码:LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;USE IEEE.std_logic_unsigned.ALL;ENTITY chuan ISPORT(clk : in std_logic;data_in : in STD_LOGIC_VECTOR(7 DOWNTO 0);dout : out STD_LOGIC);END chuan;ARCHITECTURE Beha_bin_chuan8_01 OF chuan ISSIGNAL i : integer range 0 to 7;beginprocess (clk)beginfor t in 100 downto 0 loopif clk'event and clk='1' thendout<=data_in(i);i<=i+1;end if;end loop;end process;end Beha_bin_chuan8_01;说明:该部分代码没有采用例化语句,并没有利用之前设计的d触发器。

只是在代码关键部分使用了循环语句,完成移位和串行输出。

仿真结果如下:分析:并串转换的目的是使得并行输入的信号变为串行输出。

所以这里为了验证代码的正确性,将输入值固定为10111011。

根据每次时钟的变化,我们可以看出在第一次时钟有效之后,dout的输出依次为110111011。

可见代码的功能是正确的。

然后,设计一位二进制全加器,带有时钟信号:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity bit1adder isport(clk:in std_logic;a,b,ci:in std_logic;s,co:out std_logic);end bit1adder;architecture func of bit1adder isbeginprocess(clk)beginif clk'event and clk = '1'thens<=a xor b xor ci;co<=(a and b)or(a and ci)or(b and ci);end if;end process;end func;说明:该全加器与4-1中的全加器功能一样,只是多了一个相应的时钟信号。

相关文档
最新文档