EDA数字系统综合实验

合集下载

EDA实习报告

EDA实习报告

EDA技术及其应用实训报告学院:电气与控制工程学院班级:自动化1202班姓名:李锦涛学号: 27指导老师:杨占社许琼时间:2015年1月15日电子电路EDA实训一、课程设计的目的及任务EDA课程设计是工科院校电类专业学生进行的一次较全面的设计能力训练实践课程。

通过本课程设计重点掌握一种EDA 软件--Multisim软件在模拟电路和数字电路的设计和仿真应用,训练学生综合运用学过的电子电路的基本知识,独立设计比较复杂的电路的能力。

软件平台是NI Multisim,便于开展综合性的设计和实验,有利于培养综合分析能力、开发和创新的能力。

通过课程设计,学生要掌握使用EDA工具设计电路的方法,包括图形设计输入、编译、软件仿真和分析等全过程。

1.培养理论联系实际的设计思想,训练综合运用电子设计自动化和有关先修课程的理论,结合生产实际分析和解决工程实际问题的能力,巩固、加深和扩展有关电子电路设计方面的知识。

2.通过系统学习NI Multisim,利用软件的方法虚拟电子与电工元器件,虚拟电子与电工仪器和仪表,制定设计方案实现原理电路设计、电路功能测试,仿真和分析,达到掌握电子电路分析和设计全过程和实验。

3.进行设计基本技能的训练。

结合所学电工电子理论进行软件电路设计,熟悉和运用设计资料以及使用经验数据、进行经验估算和处理数据的分析和设计能力。

二、课程设计的基本要求通过学习与实践,使学生接触、了解、进而初步掌握先进的电子系统设计技术,学习基于NI Multisim EDA软件的一般方法和设计思想,并培养学生的抽象思维能力和创新意识;提高学生学习应用电子技术课程知识解决实际问题的能力,锻炼学生应用EDA解决小型系统设计的能力。

1、通过课程设计使学生能熟练掌握EDA软件(NI Multisim)的使用方法,能熟练进行设计输入、管脚分配、仿真、分析等过程。

2、通过课程设计使学生能利用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实验报告

实验1 Max+plusⅡ软件的使用一、实验目的:1、学习Max+plusⅡ的设计流程全过程,分别采用VHDL和原理图输入方式设计一个简单的三人表决器,学习简单组合电路的设计、仿真。

2、了解VHDL程序的基本结构。

二、实验条件1、PC机一台。

2、开发软件:Max+plusⅡ。

三、实验内容1、三人表决器的功能描述三个人分别用手指拨动开关SW1、SW2、SW3来表示自己的意愿,如果对某决议同意,各人就把自己的指拨开关拨到高电平(上方),不同意就把自己的指拨开关拨到低电平(下方)。

表决结果用高电平显示,如果决议通过那么L2为高电平;如果不通过那么L1为高电平;如果对某个决议有任意二到三人同意,那么此决议通过,L2为高电平;如果对某个决议只有一个人或没人同意,那么此决议不通过,L1为高电平。

2、实验步骤(1)采用电路图方式,如下图(2)采用VHDL编程方式,程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY majority_voter ISPORT(SW : IN std_logic_vector(3 DOWNTO 1);L : OUT std_logic_vector(2 DOWNTO 1));END majority_voter;ARCHITECTURE concurrent OF majority_voter ISBEGINWITH SW SELECTL <= "10" WHEN "011","10" WHEN "101","10" WHEN "110","10" WHEN "111","01" WHEN OTHERS;END concurrent;。

四、仿真结果:五、结论通过仿真波形可以看出三人表决器的图形方式和VHDL编程两种方式的正确性。

EDA实验报告

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 D00 0 0 0 0 0 0 0 0 0 10 0 1 0 0 0 0 0 0 1 00 1 0 0 0 0 0 0 1 0 00 1 1 0 0 0 0 1 0 0 01 0 0 0 0 0 1 0 0 0 01 0 1 0 0 1 0 0 0 0 01 1 0 1 0 0 0 0 0 01 1 1 1 0 0 0 0 0 0 0表1-1 三-八译码器真值表译码器不需要像编码器那样用一个输出端指示输出是否有效。

但可以在输入中加入一个输出使能端,用来指示是否将当前的输入进行有效的译码,当使能端指示输入信号无效或不用对当前信号进行译码时,输出端全为高电平,表示无任何信号。

本例设计中没有考虑使能输入端,自己设计时可以考虑加入使能输入端时,程序如何设计。

数字系统设计及实验实验报告

数字系统设计及实验实验报告

数字系统设计及实验实验报告一、实验目的数字系统设计及实验课程旨在让我们深入理解数字逻辑的基本概念和原理,掌握数字系统的设计方法和实现技术。

通过实验,我们能够将理论知识应用于实际,提高解决问题的能力和实践动手能力。

本次实验的具体目的包括:1、熟悉数字电路的基本逻辑门、组合逻辑电路和时序逻辑电路的设计方法。

2、掌握使用硬件描述语言(如 Verilog 或 VHDL)进行数字系统建模和设计。

3、学会使用相关的电子设计自动化(EDA)工具进行电路的仿真、综合和实现。

4、培养团队合作精神和工程实践能力,提高解决实际问题的综合素质。

二、实验设备和工具1、计算机:用于编写代码、进行仿真和综合。

2、 EDA 软件:如 Quartus II、ModelSim 等。

3、实验开发板:提供硬件平台进行电路的下载和测试。

4、数字万用表、示波器等测量仪器:用于检测电路的性能和信号。

三、实验内容1、基本逻辑门电路的设计与实现设计并实现与门、或门、非门、与非门、或非门和异或门等基本逻辑门电路。

使用 EDA 工具进行仿真,验证逻辑功能的正确性。

在实验开发板上下载并测试实际电路。

2、组合逻辑电路的设计与实现设计一个 4 位加法器,实现两个 4 位二进制数的相加。

设计一个编码器和译码器,实现数字信号的编码和解码。

设计一个数据选择器,根据控制信号选择不同的输入数据。

3、时序逻辑电路的设计与实现设计一个同步计数器,实现模 10 计数功能。

设计一个移位寄存器,实现数据的移位存储功能。

设计一个有限状态机(FSM),实现简单的状态转换和控制逻辑。

四、实验步骤1、设计方案的确定根据实验要求,分析问题,确定电路的功能和性能指标。

选择合适的逻辑器件和设计方法,制定详细的设计方案。

2、代码编写使用硬件描述语言(如 Verilog 或 VHDL)编写电路的代码。

遵循代码规范,注重代码的可读性和可维护性。

3、仿真验证在 EDA 工具中对编写的代码进行仿真,输入不同的测试向量,观察输出结果是否符合预期。

第一章EDA技术实验基础实验

第一章EDA技术实验基础实验

第一章 技术实验基础实验实验一 用原理图输入法设计一位半加器一、实验目的.熟悉利用Ⅱ的原理图输入方法设计简单组合电路;.通过一个半加器的设计把握利用软件进行电子线路设计的详细流程;.学会对实验板上的进行编程下载,硬件验证自己的设计项目。

二、实验设备及器材配置机一台综合实验开发系统中:基本核心板模块、发光管显示模块、普通键盘模块、下载器、下载线、十针连接线根。

三、实验原理.根据真值表表写出电路的逻辑表达式表 一位半加器真值表其中, 为输入端口,与分别为半加器的和与进位。

其逻辑表达式为:o s a b =⊕ab Co =.根据逻辑表达式进行原理图设计。

注意:在进行原理图设计时,元件之间的连线应尽量避免与元件外的虚线框重合。

四、实验步骤:.为本项工程设计建立文件夹,注意文件夹名不能用中文,且不可带空格。

.根据半价器逻辑表达式进行原理图设计。

.对所设计的工程文件进行编译,排查错误。

.时序仿真,记录时序分析表。

.选择目标芯片。

.引脚锁定。

推荐锁定形式:输入接口选择核心板上接口,与普通键盘模块相连,连接后,可任意选择按键所对应的引脚(例如,选择和,它们所对应的引脚编号为和;输出接口选择核心板上接口,与发光管显示模块相连,连接后,课任意选择发光二级管所对应的引脚(例如选择和,它们所对应的引脚编号为和)。

注:输入输出接口可在核心板上十针接口中任意选择(白色接口除外),对应的引脚可在核心板上的引脚标注中查找。

.编程下载,观察硬件结果。

下载时请下载器形式请选择。

注:如下载后硬件调试没有通过,需重新检查连接,如果修改后重新进行下载,请将下载界面中原有的*文件删除,重新加载一次,然后再下载。

.撰写实验报告册,思考如何利用半加器设计一位全加器。

五、练习题. 请用本实验所作的一位半加器设计一位全加器。

要求利用原理图输入方式。

. 请利用一位全加器设计四位全加器。

要求利用原理图输入方式。

注:本练习主要使学生牢固掌握原理图输入设计方法,同时掌握设计中有关层次的基本概念。

EDA数字电路设计实验报告范文

EDA数字电路设计实验报告范文

一、实验目的通过本实验的学习,使学生掌握VHDL 中文件IO、配置、同步和异步设计等知识,训练VHDL 的编程能力,培养数字电路设计的基本技能,为今后继续学习大规模数字系统设计奠定基础。

二、实验内容1、分析示例代码,掌握VDHL 文件IO 的编写方法。

2、分析示例代码,掌握VDHL 配置的使用以及编写方法。

3、按照要求修改文件IO 和配置的示例代码。

4、根据同步和异步设计的不同,按照要求编写代码。

三、实验原理、方法和手段复杂设计,例如CPU,需要给它执行的指令。

以验证其正确性。

执行的结果也可以保存在文件中,供以后分析用。

VHDL 提供了文件读写功能,可以将测试激励预先保存在文件中,然后读入进行仿真。

文件读写的功能保存在IEEE 库的std.textio 和 std_logic_textio 包中,在文件头包含这些库,包,就可以调用文件读写函数。

文件I/O 关键语句:1、使用IEEE 文件读写包:USE ieee.std_logic_textio.all;USE std.textio.all;2、定义文件数据类型file results: text open write_mode is “results.txt";file mem_data: text;3、打开文件file_open(mem_data, "mem_data.txt", read_mode);4、定义行变量variable inline: line;5、读入一行数据到行变量readline(mem_data, inline);6、读行变量数据read(inline, ram_mem_temp);7、写数据到行变量write(OneLine,addr,right,10);8、写行变量到文件中writeline(results,OneLine);9、类型转换To_stdlogicvector(ram_mem_temp);--将ram_mem_temp 转换成std_logic_vector 型变量conv_integer(addr);--将addr 转换成interger 型变量1),常用的数据类型,函数,过程,模块,测试激励可以放在一个包中,以方便重用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
16
四、设计举例 ——波形发生器与频率计源文件
U1 test_wave.v:
module test_wave( input clk, input reset, input switch, output [11:0] data_out ); reg [15:0] data_temp; wire [11:0] sine_data; reg [11:0] data_out_temp; wire rdy; gen_dds U6 ( .clk(clk), // input clk .rdy(rdy), // ouput rdy .sine(sine_data)); // ouput [11 : 0] sine data
EDA数字系统综合实验
一、实验目的 二、实验原理 三、层次化、模块化设计举例 四、小型数字系统设计举例 五、实验任务与要求 六、实验步骤与要求 七、实验报告要求
1
一、实验目的
• 了解并掌握采用可编程逻辑器件实现数字电 路与系统的方法; • 学习并掌握采用Xilinx_ISE 软件开发可 编程器件的过程; • 学习使用verilog HDL描述数字逻辑电路与 系统的方法; • 掌握分层次、分模块的电路设计方法,熟悉 使用可编程器件实现数字系统的一般步骤; • 熟悉数字钟的功能要求及设计方法; • 掌握小型数字系统安装、调试方法。
4
二、实验原理---层次化、模块化设计方法
• 高层次设计是一种“自顶向下”的全新设计 方法,这种设计方法首先从系统设计入手, 在顶层进行功能方框图的划分和结构设计。 • 由于设计的主要仿真和调试过程是在高层次 上完成的,这既有利于早期发现结构设计上 的错误,避免设计工作的浪费,又减少了逻 辑功能仿真的工作量,提高了设计的一次成 功率。
11
四、设计举例 ——波形发生器与频率计模块划分
大值data_max_out和最小值data_min_out作为输出信号 供给data_process2模块使用。
data_process1模块的源码参见data_process1 .v。 data_process2 模块:将输入波形的数据做处理,转化为 脉冲波的形式以便计数。
2
二、实验原理---层次化、模块化设计方法
为什么要采用层次化、模块化设计方法?
对于复杂系统-----“分而治之”-----方便管理 方便设计---使设计课题进一步细化, 明确各层次、各模 块目标, 条理清晰; 方便调试---使设计中出现的问题在模块级就能发现, 及 时处理; 方便维护---模块化、层次化维护与修理; 方便后续开发与更新---拓展、继承、移植。
19
四、设计举例 ——波形发生器与频率计源文件
always @ (posedge clk or posedge reset) begin if (reset) begin en1 <= 1'b0; en2 <= 1'b0; end else begin en1 <= clk_test; en2 <= en1; end end assign en = en1 && (!en2);//generate en
9
四、设计举例 ——波形发生器与频率计模块划分
经分析,工程可由 4个模块组成:信号产生模块 test_wave、最大值和最小值计算模块data_process1、 波形转化模块 data_process2以及频率计计算并译码显 示模块 freq。
各模块连接关系参见下图:
10
四、设计举例 ——波形发生器与频率计模块划分
14
四、设计举例 ——波形发生器与频率计源文件
test_wave U1 ( .clk(clk), .reset(reset), .switch(switch), .data_out(data_temp) );
freq U2 ( .clk(clk), .reset(reset), .clk_test(test_clk), .en_out(enable), .sl(sl), .segdat(segdat) );
test_wave模块:利用DDS生成12bit正弦波同时利用时钟 计数生成三角波。 利用系统提供的IP核DDS生成gen_dds.xco,由输入时钟 信号clk激励,在复位信号reset与生成信号模式选择控制 信号switch的控制下生成正弦波与三角波;信号输出为12 位数据data_out。 test_wave模块的源码参见test_wave.v。 data_process1 模块:计算输入波形的最大值和最小值。 由输入时钟信号clk激励,在复位信号reset, 输入使能信 号enable(高有效?)的控制下,对输入信号12bit的 data_in进行计数,在当前闸门周期,产生输入波形的最
18
四、设计举例 ——波形发生器与频率计源文件
U2 freq.v:
module freq( input clk, input reset, input clk_test, output en_out, output [3:0] sl, output [6:0] segdat ); reg[25:0] count; reg[15:0] fosc; //freq reg reg[15:0] fosc_flash; //update freq reg[6:0] segdat_reg; reg[3:0] sl_reg; reg[3:0] disp_dat; //data to display reg flag_flash; //indicate update reg second; reg en1,en2; wire en;
由输入时钟信号clk激励,在复位信号reset, 输入使能 信号enable的控制下,根据12bit输入信号data_in 的最大 值data_max与最小值data_min,采用过均值检测法产生 出与data_in同频率的方波信号,以便计数;
在求均值时,采用了Xilinx ISE Core Generator所产生 的除法器。
十位BCD 码输出
Q1[0 ]
CP nCR EN
进 制 计 数 器
10 0
7
I
Q0[3 ]
个位BCD 码输出
Q0[0 ]
三、层次化、模块化设计举例
• 由10进制计数器构成100进制计数器
//**************** counter10.v ( BCD: 0~9 ) ************** module counter10(Q, nCR, EN, CP); input CP, nCR, EN; output [3:0] Q; reg [3:0] Q; always @(posedge CP or negedge nCR) begin if(~nCR) Q <= 4'b0000; // nCR=0,计数器被异步清零 else if(~EN) Q <= Q; //EN=0,暂停计数 else if(Q == 4'b1001) Q <= 4'b0000; else Q <= Q + 1'b1; //计数器增1计数 end endmodule
data_process2 U4 ( .clk(clk), .reset(reset), .enable(enable), .data_in(data_temp), .data_max(data_max_temp), .data_min(data_min_temp), .test_clk(test_clk) ); endmodule
12
四、设计举例 ss2模块的源码参见data_process2 .v。
freq 模块:生成闸门信号1s,对输入波形的频率做计数 计算,并译码显示。 由输入时钟信号clk激励,在复位信号reset的控制下, 对输入信号clk_test进行计数,生成计数信号en,生成闸 门信号1s---second,在闸门信号内对输入波形的频率计 数进行处理,产生计数结果,并生成输出信号en_out与 4bit数码管显示控制信号sl及数码管7段分段数据控制信 号segdat 。注意数码管显示控制选择信号及数码管7段 分段数据控制信号均为臵低有效! freq模块的源码参见freq .v。
8
三、层次化、模块化设计举例
• 由10进制计数器构成100进制计数器
//*************** counter100.v (BCD: 00~99)*************
//100进制计数器:调用10进制模块两次
module counter100(Cnt, nCR, EN, CP); input CP, nCR, EN; output [7:0] Cnt; //模100计数器的输出信号 wire [7:0] Cnt; //输出为8421 BCD码 wire ENP; //计数器十位的使能信号(中间变量) counter10 UC0 (Cnt[3:0], nCR, EN, CP); //计数器的个位 counter10 UC1 (Cnt[7:4], nCR, ENP, CP); //计数器的十位 assign ENP = (Cnt[3:0]==4'h9); //产生计数器十位的使能信号 endmodule
13
四、设计举例 ——波形发生器与频率计源文件
顶层模块:定义系统输入输出及各模块连接关系。 top.v:
module top( input clk, input reset, input switch, output [6:0] segdat, output [3:0] sl, output dp ); wire [11:0] data_temp,data_max_temp,data_min_temp; //initial data_temp = 12'h0; //initial data_max_temp = 12'h0; //initial data_min_temp = 12'h1; wire test_clk,enable; assign dp = 1'b1;
相关文档
最新文档