EDA设计实验报告

摘要通过实验学习和训练,掌握基于计算机和信息技术的电路系统设计和仿真方法。

要求:1. 熟悉multisim软件的使用,包括电路图编辑、虚拟仪器仪表的使用和掌握常见电路分析方法。

2. 能够运用multisim软件对模拟电路进行设计和性能分析,掌握eda设计的基本方法和步骤。

multisim常用分析方法:直流工作点分析、直流扫描分析、交流分析。

掌握设计电路参数的方法。

复习巩固单级放大电路的工作原理,掌握静态工作点的选择对电路的影响。

了解负反馈对两级放大电路的影响,掌握阶梯波的产生原理及产生过程。

关键字:电路仿真 multisim 负反馈阶梯波目次实验一 (1)实验二............................................................................................. 11 实验三 (17)实验一单级放大电路的设计与仿真一、实验目的1. 设计一个分压偏置的单管电压放大电路,要求信号源频率5khz(峰值10mv) ,负载电阻5.1kω,电压增益大于50。

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

3. 调节电路静态工作点(调节电位计),使电路输出信号不失真,并且幅度尽可能大。

在此状态下测试:①电路静态工作点值;②三极管的输入、输出特性曲线和? 、 rbe 、rce值;③电路的输入电阻、输出电阻和电压增益;④电路的频率响应曲线和fl、fh值。

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

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

3. 给出测试三极管输入、输出特性曲线和? 、 rbe 、rce值的实验图,并给出测试结果。

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

5. 给出电路的幅频和相频特性曲线,并给出电路的fl、fh值。

6. 分析实验结果。

三、实验步骤实验原理图:饱和失真时波形:此时静态工作点为:所以,i(bq)=4.76685ua i(cq)=958.06700ua u(beq)=0.62676vu(ceq)=0.31402v 截止失真时波形:此时静态工作点为:所以,i(bq)=2.07543ua i(cq)=440.85400ua u(beq)=0.60519vu(ceq)=5.54322v 最大不失真时波形:篇二:eda课程设计实验报告电子电工实习华北电力大学实验报告实验名称课程名称电子电工实习专业班级:学生姓名:号:成绩:指导教师:实验日期:2013-12 | | | |学第页共页第页共页第页共页第页共页篇三:eda课程设计实验报告课程设计报告课程名称数字系统与逻辑设计课题名称专业班级 1181 学号 201113120107 姓名肖浪指导教师2013年 7月 2日湖南工程学院课程设计任务书课程名称数字系统与逻辑设计课题专业班级通信工程1181 学生姓名学号 201113120107 指导老师乔汇东吴德建任务书下达日期 2013 年 6月 23日任务完成日期 2013 年 7月 2日《数字系统与逻辑设计》课程设计任务书一、设计目的全面熟悉、掌握vhdl语言基本知识,掌握利用vhdl语言对常用的的组合逻辑电路和时序逻辑电路编程,把编程和实际结合起来,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用设计综合电路的能力,养成提供文档资料的习惯和规范编程的思想。

二、设计要求1、设计正确,方案合理。

2、程序精炼,结构清晰。

3、设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。

4、上机演示。

5、有详细的文档。

文档中包括设计思路、设计仿真程序、仿真结果及相应的分析与结论。

三、进度安排第十八周星期一:课题讲解,查阅资料星期二:总体设计,详细设计星期三:编程,上机调试、修改程序星期四:上机调试、完善程序星期五:答辩星期六-星期天:撰写课程设计报告附:课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(a4大小的图纸及程序清单)。

正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。

正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现;四、系统调试与仿真;五、总结与体会;六、附件(所有程序的原代码,要求对程序写出必要的注释);七、评分表。

目录一、课题的主要功能 (3)1.1问题描述 (3)1.2 功能描述 (4)二、课题的功能模块的划分 (4)2.1 系统的总体框图 (4)三、主要功能的实现 (5)3.1 1 8进制加法器设计 (5)3.2 2 16进制计数器设计 (5)3.3 列驱动设计 (5)3.4 字体显示控制器 (5)3.5 顶层文件设计 (5)四、系统调试与仿真 (6)4.1 程序仿真图 (6)4.2 16*16 led点阵显示引脚分配 (8)4.3 程序运行结果 (9)五、总结与体会 (9)六、附件 (10)七、课程设计评分表.............................................................................. . (20)一、课题的主要功能1.1问题描述本实验主要完成汉字字符在led 上的显示,16*16 扫描led 点阵的工作原理与8 位扫描数码管类似,只是显示的方式与结果不一样而已。

下面就本实验系统的16*16 点阵的工件原理做一些简单的说明。

16*16 点阵由此256 个led 通过排列组合而形成16 行*16 列的一个矩阵式的led 阵列,俗称16*16 点阵。

单个的led 的电路如下图11-1 所示:图11-1 单个led 电路图由上图可知,对于单个led 的电路图当rn 输入一个高电平,同时cn 输入一个低电平时,电路形成一个回路,led 发光。

也就是led 点阵对应的这个点被点亮。

16*16 点阵也就是由16 行和16 列的led 组成,其中每一行的所有16 个led的rn 端并联在一起,每一列的所有16 个led 的cn 端并联在一起。

通过给rn 输入一个高电平,也就相当于给这一列所有led 输入了一个高电平,这时只要某个led 的cn 端输入一个低电平时,对应的led 就会被点亮。

具体的电路如下图11-2所示:图11-2 16*16 点阵电路原理图在点阵上显示一字符是根据其字符在点阵上的显示的点的亮灭来表示的,如下图11-3所示:图11-3 字符在点阵上的显示在上图中,显示的是一个“汉”字,只要将被“汉”字所覆盖的区域的点点篇四:eda技术实验报告实验一利用原理图输入法设计4位全加器一、实验目的:掌握利用原理图输入法设计简单组合电路的方法,掌握max+plusii的层次化设计方法。

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

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

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

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

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

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

2.设计1位全加器原理图(1)生成一个新的图形文件(file->new->graphic editor)(2)按照给定的原理图输入逻辑门(symbol->enter symbol) (3)根据原理图连接所有逻辑门的端口,并添加输入/输出端口1s2s3s4co (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位全加器:原理图:仿真波形:4位全加器:原理图:仿真波形:4位全加器仿真结果正确:例:0011(a)+0111(b)+0(ci)结果为1010(s),进位co为0。

5.思考如何在原理图中输入一个总线,并与其他总线连接?先选中细线,然后右击,选”bus line”,总线是以粗线条表示。

与其他总线连接:例如一根8位的总线 bus1[7..0]欲与另三根分别为1、3、4个位宽的连线相接,则它们的标号可分别表示为bus1[0],bus1[3..1],bus1[7..4]。

实验二简单组合电路的设计一、实验目的:熟悉quartusii vhdl文本设计流程全过程。

学习简单组合电路的设计、多层次电路设计、仿真和硬件测试。

二、实验原理vhdl硬件描述语言是一种可以从多个层次上对数字逻辑电路进行建模的国际标准(ieee),本次实验是用vhdl设计一个简单的数字组合逻辑电路,并结合quartusii环境和实验电路进行硬件测试。

三、实验内容:1)根据实验一中一位全加器的电路原理图,改用vhdl语言文本输入方法,设计一位全加器,要求采用结构化的描述方法。

设计完成后,利用quartusii集成环境进行时序分析、仿真,记录仿真波形和时序分析数据。

2)用vhdl语言设计一个四选一数据选择器电路。

要求先设计一个二选一数据选择器mux21,然后利用元件例化语句设计四选一数据选择器mux41,同样请给出时序分析数据和仿真结果。

3)硬件测试(选用器件 epf10k10 pin84)管脚锁定:1)一位全加器 a pio23(i/o19) 30 sw1 b pio24(i/o20) 35sw2 ci pio25(i/o21) 36 sw3 s pio21(i/o16)27 led10 co pio19(i/o8) 29 led12 2)四选一数据选择器 a1pio23 30 sw1a0 pio24 35 sw2 d3 pio27 38 sw5 d2 pio28 39 sw6 d1 pio29 47 sw7d0 pio30 42 sw8 yout 29 led12四、思考题比较原理图输入法和文本输入法的优缺点。

合集下载

eda设计实验报告 南理工

eda设计实验报告 南理工

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

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

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

3.加入信号源频率5kHz(幅度1mV) ,调节电路使输出不失真,测定此时的静态工作点值。

测电路的输入电阻、输出电阻和电压增益。

4.测电路的频率响应曲线和f L ,f H值。

三.实验步骤1.单级放大电路原理图:图一单级放大电路原理图满足实验要求,电压增益大于50。

2.电路失真情况分析:由于1mV下失真情况不明显,在观察时将电压源调整为20mV输入。

(1)电路饱和失真输出电压的波形图图二电路饱和失真输出电压的波形图图三电路饱和失真直流工作点分析此时静态工作点Vce=91.26844mV ,Vbe=658.01776mV,Ic=3.00218mA,Ib=129.26906uA此时发射极正偏,集电极正偏,则电路产生饱和失真。

(2)电路截止失真输出电压的波形图图四电路截止失真输出电压的波形图图五电路截止失真直流工作点分析此时静态工作点Vce=11.99643V ,Vbe=443.03357mV,Ic=902.24957nA,Ib=5.14668nA 因为Vbe<0.7V,所以发射极反偏,又集电极反偏,所以电路产生截止失真。

3.在电路输出信号最大不失真下测量输入、输出电阻和电压增益:(1)电路最大不失真波形图图六电路最大不失真波形图图七电路最大不失真直流工作点分析电路静态工作点值Vce=4.26569V ,Vbe=644.58273mV,Ic=1.99222mA,Ib=9.33965uA (2)测量输入、输出电阻和增益:三极管:β=Ic/Ib=1992.22/9.33965=213r be=r bb’+r b’e=r bb’+(1+β)26mV/I E =200+(1+213)26mV/1.99222mA=2992.86Ω①求输入电阻图八求输入电阻的电路图测量值Ri=U/I=1000/0.481=2079Ω.理论值Ri=(Rp+R4)//R3//Rbe=2282.73Ω.误差E=0.089%②求输出电阻图九求输出电阻的电路图测量值Ro=U/I=1000/0.434=2304Ω.理论值Ro=R1//Rce=24000Ω.误差E=0.04%③求电压增益图十求电压增益的电路图测量值Av=Uo/Ui=115理论值Av=— (R1//R5//Rce)/Rbe=121误差E=0.05%4.频率响应图十一幅频特性曲线和相频特性曲线图十二求f L,f H的数据中频幅度为119.2121dB,所以99*0.707=84.2956dB所以f L =1.2055kHz f H =23.9924MHz。

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

实验一:不同设计输入方式比较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、在SmartSOPC实验箱上完成数码管动态显示自己学号的后八个数字。

2、放慢扫描速度演示动态显示的原理过程。

三、系统设计1、整体设计方案数码管的八个段a,b,c,d,e,f,g,h(h是小数点)都分别连接到SEG0~SEG7,8个数码管分别由八个选通信号DIG0~DIG7来选择,被选通的数码管显示数据,其余关闭。

如果希望8个数码管显示希望的数据,就必须使得8个选通信号DIG0~DIG7分别被单独选通,并在此同时,在段信号输入口SEG0~SEG7加上该对应数码管上显示的数据,于是随着选通信号的扫描就能实现动态扫描显示的目的。

虽然每次只有1个数码管显示,但只要扫描显示速率足够快,利用人眼的视觉余辉效应,我们仍会感觉所有的数码管都在同时显示。

2、功能模块电路设(1)输入输出模块框图(见图1)图1(2)模块逻辑表达(见表1)表1(数码管显示真值表)clk_1k dig seg↑01111111 C0↑10111111 F9注:数码管显示为01180121(3)算法流程图(见图2)(4)Verilog源代码module scan_led(clk_1k,d,dig,seg); //模块名scan_ledinput clk_1k; //输入时钟input[31:0] d; //输入要显示的数据output[7:0] dig; //数码管选择输出引脚output[7:0] seg; //数码管段输出引脚reg[7:0] seg_r; //定义数码管输出寄存器reg[7:0] dig_r; //定义数码管选择输出寄存器reg[3:0] disp_dat; //定义显示数据寄存器reg[2:0]count; //定义计数寄存器assign dig = dig_r; //输出数码管选择assign seg = seg_r; //输出数码管译码结果always @(posedge clk_1k) //定义上升沿触发进程begincount <= count + 1'b1;endalways @(posedge clk_1k)begincase(count) //选择扫描显示数据3'd0:disp_dat = d[31:28]; //第一个数码管3'd1:disp_dat = d[27:24]; //第二个数码管3'd2:disp_dat = d[23:20]; //第三个数码管3'd3:disp_dat = d[19:16]; //第四个数码管3'd4:disp_dat = d[15:12]; //第五个数码管3'd5:disp_dat = d[11:8]; //第六个数码管3'd6:disp_dat = d[7:4]; //第七个数码管3'd7:disp_dat = d[3:0]; //第八个数码管endcasecase(count) //选择数码管显示位3'd0:dig_r = 8'b01111111; //选择第一个数码管显示3'd1:dig_r = 8'b10111111; //选择第二个数码管显示3'd2:dig_r = 8'b11011111; //选择第三个数码管显示3'd3:dig_r = 8'b11101111; //选择第四个数码管显示3'd4:dig_r = 8'b11110111; //选择第五个数码管显示3'd5:dig_r = 8'b11111011; //选择第六个数码管显示3'd6:dig_r = 8'b11111101; //选择第七个数码管显示3'd7:dig_r = 8'b11111110; //选择第八个数码管显示endcaseendalways @(disp_dat)begincase(disp_dat) //七段译码4'h0:seg_r = 8'hc0; //显示04'h1:seg_r = 8'hf9; //显示14'h2:seg_r = 8'ha4; //显示24'h3:seg_r = 8'hb0; //显示34'h4:seg_r = 8'h99; //显示44'h5:seg_r = 8'h92; //显示54'h6:seg_r = 8'h82; //显示64'h7:seg_r = 8'hf8; //显示74'h8:seg_r = 8'h80; //显示84'h9:seg_r = 8'h90; //显示94'ha:seg_r = 8'h88; //显示a4'hb:seg_r = 8'h83; //显示b4'hc:seg_r = 8'hc6; //显示c4'hd:seg_r = 8'ha1; //显示d4'he:seg_r = 8'h86; //显示e4'hf:seg_r = 8'h8e; //显示fendcaseendendmodule四、系统调试(1)仿真代码`timescale 1ns/1nsmodule scan_ledfz;reg clk_1k;reg[31:0] d;wire[7:0] dig;wire[7:0] seg;parameter dely=100;scan_led u1(clk_1k,d,dig,seg);always #(dely/2)clk_1k=~clk_1k;initial beginclk_1k=0;d=32'h01180134;#dely ;#dely ;#dely ;#dely ;#dely ;#(dely*20);#dely $finish;endinitial $monitor($time,,,"%b,%d,%h,%h",clk_1k,d,dig,seg); endmodulemodule scan_led(clk_1k,d,dig,seg); //模块名scan_ledinput clk_1k; //输入时钟input[31:0] d; //输入要显示的数据output[7:0] dig; //数码管选择输出引脚output[7:0] seg; //数码管段输出引脚reg[7:0] seg_r; //定义数码管输出寄存器reg[7:0] dig_r; //定义数码管选择输出寄存器reg[3:0] disp_dat; //定义显示数据寄存器reg[2:0] count=3'b000; //定义计数寄存器assign dig = dig_r; //输出数码管选择assign seg = seg_r; //输出数码管译码结果always @(posedge clk_1k) //定义上升沿触发进程begincount <= count + 1'b1;endalways @(posedge clk_1k)begincase(count) //选择扫描显示数据3'd0:disp_dat = d[31:28]; //第一个数码管3'd1:disp_dat = d[27:24]; //第二个数码管3'd2:disp_dat = d[23:20]; //第三个数码管3'd3:disp_dat = d[19:16]; //第四个数码管3'd4:disp_dat = d[15:12]; //第五个数码管3'd5:disp_dat = d[11:8]; //第六个数码管3'd6:disp_dat = d[7:4]; //第七个数码管3'd7:disp_dat = d[3:0]; //第八个数码管endcasecase(count) //选择数码管显示位3'd0:dig_r = 8'b01111111; //选择第一个数码管显示3'd1:dig_r = 8'b10111111; //选择第二个数码管显示3'd2:dig_r = 8'b11011111; //选择第三个数码管显示3'd3:dig_r = 8'b11101111; //选择第四个数码管显示3'd4:dig_r = 8'b11110111; //选择第五个数码管显示3'd5:dig_r = 8'b11111011; //选择第六个数码管显示3'd6:dig_r = 8'b11111101; //选择第七个数码管显示3'd7:dig_r = 8'b11111110; //选择第八个数码管显示endcaseendalways @(disp_dat)begincase(disp_dat) //七段译码4'h0:seg_r = 8'hc0; //显示04'h1:seg_r = 8'hf9; //显示14'h2:seg_r = 8'ha4; //显示24'h3:seg_r = 8'hb0; //显示34'h4:seg_r = 8'h99; //显示44'h5:seg_r = 8'h92; //显示54'h6:seg_r = 8'h82; //显示64'h7:seg_r = 8'hf8; //显示74'h8:seg_r = 8'h80; //显示84'h9:seg_r = 8'h90; //显示94'ha:seg_r = 8'h88; //显示a4'hb:seg_r = 8'h83; //显示b4'hc:seg_r = 8'hc6; //显示c4'hd:seg_r = 8'ha1; //显示d4'he:seg_r = 8'h86; //显示e4'hf:seg_r = 8'h8e; //显示fendcaseendendmodule位码代码仿真代码`timescale 1ns/1nsmodule smg_tp; //测试模块的名字reg [2:0] c; //测试输入信号定义为reg型wire[7:0] dig; //测试输出信号定义为wire型parameter DEL Y=100; //延时100秒wei u1(c,dig); //调用测试对象initial begin //激励波形设定c=3'b0;#DEL Y c=3'b001 ;#DEL Y c=3'b010 ;#DEL Y c=3'b100 ;#DEL Y c=3'b101 ;#DEL Y c=3'b110 ;#DEL Y c=3'b111 ;#DEL Y $finish;endinitial $monitor($time,,,"dig=%d,c=%b ",dig,c); //输出格式i定义endmodulemodule wei(c,dig); //命名模块名字input[2:0] c;output[7:0] dig; //定义输入与输出reg[7:0] dig_r;reg[2:0] c_r; // 定义dig_r与c_r2个reg型数据assign dig=dig_r; //将reg型数据转化为wire型数据always @(*) //检测c_r的数据是否变化begin c_r=c;case (c_r)3'b000:dig_r=8'b11111110; //c_r的数据变化而dig_r对于的数据变化3'b001:dig_r=8'b11111101;3'b010:dig_r=8'b11111011;3'b011:dig_r=8'b11110111;3'b100:dig_r=8'b11101111;3'b101:dig_r=8'b11011111;3'b110:dig_r=8'b10111111;3'b111:dig_r=8'b01111111;default: dig_r=8'b11111111;endcase //结束case语句end //结束always语句endmodule //结束程序译码器代码仿真代码`timescale 1ns/1nsmodule duan_tp; //测试模块的名字reg[3:0] a; //测试输入信号定义为reg型wire[7:0] seg; //测试输出信号定义为wire型parameter DEL Y=100; //延时100秒duan u1(a,seg); //调用测试对象initial begin //激励波形设定a=4'b0;#DELY a=4'b0001;#DELY a=4'b0010;#DELY a=4'b0011;#DELY a=4'b0100;#DELY a=4'b0101;#DELY a=4'b0110;#DELY a=4'b0111;#DELY a=4'b1000;#DELY a=4'b1001;#DELY a=4'b1010;#DELY a=4'b1011;#DELY a=4'b1100;#DELY a=4'b1101;#DELY a=4'b1110;#DELY a=4'b1111;#DELY $finish;endinitial $monitor($time,,,"seg=%d,a=%b",seg,a); //输出格式i定义endmodulemodule duan(a,seg); //命名模块名字input[3:0] a;output[7:0] seg; //定义输入与输出reg[7:0] seg_r;reg[3:0] a_r; // 定义seg_r与a_r2个reg型数据assign seg=seg_r; //将reg型数据转化为wire型数据always @(*) //检测c_r的数据是否变化begin a_r=a;case(a_r) //七段译码4'b0000:seg_r = 8'hc0; //显示04'b0001:seg_r = 8'hf9; //显示14'b0010:seg_r = 8'ha4; //显示24'b0011:seg_r = 8'hb0; //显示34'b0100:seg_r = 8'h99; //显示44'b0101:seg_r = 8'h92; //显示54'b0110:seg_r = 8'h82; //显示64'b0111:seg_r = 8'hf8; //显示74'b1000:seg_r = 8'h80; ///显示84'b1001:seg_r = 8'h90; //显示94'b1010:seg_r = 8'h88; //显示a4'b1011:seg_r = 8'h83; //显示b4'b1100:seg_r = 8'hc6; //显示c4'b1101:seg_r = 8'ha1; //显示d4'b1110:seg_r = 8'h86; //显示e4'b1111:seg_r = 8'h8e; ///显示f endcase //结束case语句end //结束always语句endmodule //结束程序(2)仿真波形图(3)引脚图五、实验感想通过这次实验,让我学习动态扫描显示的原理;利用数码管动态扫描显示的原理编写程序,实现自己的学号的显示。

EDA实验报告 (2)

实验一QUARTUS II软件安装、基本界面及设计入门一、实验目的:QUARTUSII是Altera公司提供的EDA工具,是当今业界最优秀的EDA设计工具之一。

提供了一种与结构无关的设计环境,使得电子设计人员能够方便地进行设计输入、快速处理和器件编程。

通过本次实验使学生熟悉QUARTUSII软件的安装,基本界面及基本操作,并练习使用QUARTUS的图形编辑器绘制电路图。

二、实验内容:1、安装QUARTUSII软件;2、熟悉QUARTUSII基本界面及操作;3通过一个4位加法器的设计实例来熟悉采用图形输入方式进行简单逻辑设计的步骤。

三、实验仪器:1、PC机一台;2、QUARTUSII软件;3、EDA实验箱。

四、实验原理:4位加法器是一种可实现两个4位二进制数的加法操作的器件。

输入两个4位二进制的被加数A和B,以及输入进位Ci,输出为一个4位二进制和数D和输出进位数Co。

半加操作就是求两个加数A、B的和,输出本位和数S及进位数C。

全加器有3位输入,分别是加数A、B和一个进位Ci。

将这3个数相加,得出本位和数(全加和数)D和进位数Co。

全加器由两个半加器和一个或门组成。

五、实验步骤:安装QUARTUSII软件;因为实验时我的机器了已经有QUARTUSII软件,所以我并没有进行安装软件的操作。

设计半加器:在进行半加器模块逻辑设计时,采用由上至下的设计方法,在进行设计输入时,需要由下至上分级输入,使用QuartusIIGraphic Editor进行设计输入的步骤如下。

(1)、打开QUARTUSII软件,选择File-new project wizard…新建一个设计实体名为has的项目文件;(2)、新建文件,在block.bdf窗口下添加元件符号,并连接。

如下图:半加器原理图(3)、将此文件另存为has.gdf的文件。

(4)、在主菜单中选择Processing→Start Compilation命令,系统对设计进行编译,同时打开Compilation Report Flow Summary窗体,Status视图显示编译进程。

EDA技术实验报告(1)

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

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

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

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

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

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

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

2.设计1位全加器原理图(1)生成一个新的图形文件(file->new->graphic editor)(2)按照给定的原理图输入逻辑门(symbol->enter symbol)(3)根据原理图连接所有逻辑门的端口,并添加输入/输出端口(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实验报告实验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实验报告单极放大电路的设计和仿真

摘 要本文包括了三个设计实验:单级放大电路、负反馈放大电路和阶梯波发生电路。

通过对这些模拟电路的设计与仿真,给出了实验原理图,并将实验结果与理论值进行了比较,得出相对误差。

实验一设计了一个分压偏置的单管电压放大电路,通过调节电路静态工作点,观察电路出现饱和失真和截止失真的输出信号波形,并测试了对应的静态工作点值。

在最大不失真条件下测试了电路的静态工作点,三极管的输入输出特性曲线和β,be r ,ce r 的值,电路的输入输出电阻和电压增益,电路的频率响应曲线。

实验二设计了一个阻容耦合两级电压放大电路,第一级为差分放大电路,第二级是射级输出放大器。

并给电路引入了电压串联负反馈,测试了负反馈接入前后电路放大倍数、输入、输出电阻和频率特性。

通过改变输入信号幅度,观察并记录了负反馈对电路非线性失真的影响。

实验三设计了一个周期性下降阶梯波电路,对电路进行了分段测试和调节,直至输出合适的阶梯波。

通过改变电路元器件参数,观察输出波形的变化,确定了影响阶梯波电压范围和周期的元件。

最后针对该实验作进一步探索,设计出了上升阶梯波。

关键词 单级放大电路 负反馈电路阶梯波 仿真目次摘要…………………………………………………………………………错误!未定义书签。

实验一单极放大电路的设计和仿真……………………………………错误!未定义书签。

一实验目的……………………………………………………………………………错误!未定义书签。

二实验要求……………………………………………………………………………错误!未定义书签。

三实验步骤 (5)四实验小结 (16)实验二负反馈放大电路的设计与仿真…………………………………错误!未定义书签。

一实验目的 (17)二实验要求 (17)三实验步骤 (18)四实验小结 (26)实验三阶梯波发生器电路的设计………………………………………错误!未定义书签。

一实验目的 (28)二实验要求 (28)三实验步骤 (28)四实验小结 (48)实验心得 (49)参考文献 (50)实验一 单级放大电路的设计与仿真一、实验目的1. 设计一个分压偏置的单管电压放大电路,要求信号源频率10kHz(峰值1mV) ,负载电阻10k Ω,电压增益大于100。

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