搜索
您的当前位置:首页正文

EDA实验1-4

来源:独旅网


课程名称:

实验项目:

实验地点:

专业班级:

学 号:

学生姓名:本科实验报告

CPLD/FPGA应用设计 1位全加器 2位10进制计数器 显示译码器 4位加法计数器 矿院楼二层EDA实验室 电子信息工程1101班 年 月 日

课程名称:

实验项目:

实验地点:

专业班级:

学 号:

学生姓名:

本科实验报告

CPLD/FPGA应用设计 1位全加器 矿院楼二层EDA实验室 电子信息工程1101班 年 月 日

实验一 1位全加器

一、实验目的

1、熟悉ispDesignEXPERT System、Quartus原理图设计流程的全过程。 2、学习简单组合电路的设计方法、输入步骤。 3、学习层次化设计步骤。

4、学习EDA设计的仿真和硬件测试方法。 二、实验原理

1位全加器可以由图1那样用两个半加器及一个或门连接而成,因此需要首先完成图2所示的半加器设计。

要求使用原理图输入的方法先进行底层半加器设计,再建立上层全加器设计文件,调用半加器和或门符号,连接完成原理图设计。

ainINPUTVCCOR2PIN_2banjiaqiABinstcinINPUTVCCbanjiaqiCOSOABinst3inst4binINPUTVCCCOSOOUTPUTcoutPIN_3OUTPUTPIN_5sumPIN_6PIN_4 图1 - 全加器原理图

AND2AINPUTVCCOUTPUTCOPIN_15instPIN_20XNORBINPUTVCCNOTOUTPUTSOPIN_16inst2inst3PIN_21 图2 - 半加器原理图

三、实验任务

1、用原理图输入方法设计半加器电路。

2、对半加器电路进行仿真分析、引脚锁定、硬件测试。 3、建立顶层原理图电路。

4、对全加器电路进行仿真分析、引脚锁定、硬件测试 四、实验步骤

1、建立设计工程

打开QuartusⅡ6.0软件,新建项目,选择file—new project wizard命令,指定工程的工作目录,工程名及顶层实体名,并选择FPGA器件EP1C12Q240C8。

2、原理图源文件输入: a、新建原理图输入源文件

选择file—new命令,在【New】对话框中选择Design Files—Block Diagram/Schematic File原理图文件输入。

b、添加元器件符号

在绘图区双击鼠标左键,即弹出添加符号元件的窗口 c、添加输入、输出符号

d、连线及连线命名、标记输入、输出,并保存已完成的设计

3、功能和时序仿真 a、建立矢量波形文件。选择file—new命令,在“New”对话框中选Other Files—Vector Waveform File.

b、在矢量波形文件中加入输入输出节点,并编辑波形文件

c、进行功能仿真和时序仿真设置,之后点击菜单项 Processing->Generate Functional Simulation Netlist,产生功能仿真所需的网表,完成后启动仿真器,processing—start simulation进行功能、时序仿真

4、硬件测试

首先进行引脚分配,选择菜单中的\"assignments\"—>\"pins\进入引脚分配。 检测引脚分配是否合法,processing—start—start I/O Assignment Analylist命令,之后进行全局编译,下载。下载完成后在硬件上连接电路测试。 五、实验结果

1、半加器设计

AND2AINPUTVCCOUTPUTCOPIN_15instPIN_20XNORBINPUTVCCNOTOUTPUTSOPIN_16inst2inst3PIN_21 1.1 - 半加器原理图输入

1.2 – 半加器功能仿真

1.3 – 半加器引脚锁定

1.4 – 半加器编程下载

2、全加器设计

ainINPUTVCCOR2PIN_2banjiaqiABinstcinINPUTVCCbanjiaqiCOSOABinst3inst4binINPUTVCCCOSOOUTPUTcoutPIN_3OUTPUTPIN_5sumPIN_6PIN_4 2.1 - 全加器原理图输入

2.2 – 全加器功能仿真

2.3 – 全加器引脚锁定

六、思考题

用设计好的全加器,实现四位串行加法器的设计,并给出波形仿真图及加法器的延时情况。

quanjiaqia0b0ciINPUTVCCINPUTVCCINPUTVCCainbincininstcoutsumquanjiaqia1b1INPUTVCCINPUTVCCOUTPUTs0s1s2coainbincininst1coutsumOUTPUTOUTPUTOUTPUTquanjiaqia2INPUTVCCb2INPUTVCCainbincininst2coutsumOUTPUTs3quanjiaqia3b3INPUTVCCINPUTVCCainbincininst3coutsum 1、原理图文件

2、波形仿真

七、实验感想

课程名称:

实验项目:

实验地点:

专业班级:

学 号:

学生姓名:

本科实验报告

CPLD/FPGA应用设计 2位10进制计数器 矿院楼二层EDA实验室 电子信息工程1101班 年 月 日

实验二 2位十进制计数器

一、实验目的

1、熟悉Quartus II的原理图设计流程全过程。 2、学习简单时序电路的设计方法。

3、学习EDA设计的时序仿真和硬件测试方法。 二、实验原理

2位十进制计数器参考原理图如图1所示,也可以采用其他元器件实现。 三、实验任务

1、设计2位十进制计数器电路。 2、在EDA环境中输入原理图。

3、对计数器进行仿真分析、引脚锁定、硬件测试。 四、实验步骤

1、设计电路原理图

设计含有时钟使能及进位扩展输出的十进制计数器。可以选用双十进制计数器74LS390或者十进制计数器74LS160和其他一些辅助元件来完成。

2、计数器电路的实现

按照电路图进行连线,完成完整的实验原理图。

绘制过程中应特别注意图形设计规则中信号标号和总线的表达方式。若将一根细线变成一粗线显示的总线,可以先单机使其变红,再选Option选项中的Line Style;若在某线上加信号标号,也应该点击该线某处使其变成红色,然后键入标号名称,标有相同标号的线段可视为连接线段,不必直接连接。总线可以以标号方式进行连接。

3、波形仿真

4、编程下载、硬件测试 五、实验结果

1、原理图文件

Q3Q2PIN_15PIN_14Q1Q0PIN_13PIN_1274390ENBPIN_5PIN_2CLKinst1CLR1CLKA1CLKB1QA1QB1QC1QD2QA2QB2QC2QDinst8inst9inst12CLRPIN_32CLR2CLKA2CLKBDUAL COUNTERinst1inst10coutPIN_4inst13inst11Q4PIN_16Q5Q6Q7PIN_17PIN_18PIN_19

2、RTL仿真

3、波形仿真图

4、引脚分配图

5、硬件测试

六、实验感想

课程名称:

实验项目:

实验地点:

专业班级:

学 号:

学生姓名:

本科实验报告

CPLD/FPGA应用设计 显示译码器 矿院楼二层EDA实验室 电子信息工程1101班 年 月 日

实验二 显示译码器

一、实验目的

1、学习七段显示译码器设计。

2、学习进程PROCESS和CASE语句的设计方法。 3、熟悉VHDL文本输入设计的流程。 二、实验原理

设计共阴极数码管的七段显示译码电路,VHDL参考程序如下:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY YIMA7 IS

PORT(A :IN STD_LOGIC_VECTOR(3 DOWNTO 0); LED7S:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)); END;

ARCHITECTURE ART OF YIMA7 IS BEGIN

PROCESS(A) BEGIN

CASE A IS

WHEN \"0000\" => LED7S <=\"0111111\"; WHEN \"0001\" => LED7S <=\"0000110\"; WHEN \"0010\" => LED7S <=\"1011011\"; WHEN \"0011\" => LED7S <=\"1001111\"; WHEN \"0100\" => LED7S <=\"1100110\"; WHEN \"0101\" => LED7S <=\"1101101\"; WHEN \"0110\" => LED7S <=\"1111101\"; WHEN \"0111\" => LED7S <=\"0000111\"; WHEN \"1000\" => LED7S <=\"1111111\"; WHEN \"1001\" => LED7S <=\"1101111\"; WHEN \"1010\" => LED7S <=\"1110111\"; WHEN \"1011\" => LED7S <=\"1111100\"; WHEN \"1100\" => LED7S <=\"0111001\"; WHEN \"1101\" => LED7S <=\"1011110\"; WHEN \"1110\" => LED7S <=\"1111001\"; WHEN \"1111\" => LED7S <=\"1110001\"; WHEN OTHERS => NULL; END CASE; END PROCESS; END;

三、实验内容

1、完成显示译码器的VHDL描述 2、在QuartusⅡ上对显示译码器的VHDL描述进行编辑、编译、综合、适配、仿真,给出其所有信号的时序仿真波形。

3、进行引脚锁定以及硬件下载测试。

四、实验步骤

1、打开软件,新建一个VHDL File文件,输入需要设计的程序。

2、对该VHDL语言进行编辑,无误后进行编译。

3、编译完成后分配管脚,之后进行编译。

4、波形仿真

5、由程序进行RTL仿真生成电路图。 Mux0A[3..0]16' hEF7C --SEL[3..0]DATA[15..0]OUTMUXMux1SEL[3..0]16' hDF71 --DATA[15..0]OUTMUXMux2SEL[3..0]16' hFD45 --DATA[15..0]OUTMUXMux3SEL[3..0]16' h7B6D --DATA[15..0]OUTLED7S[6..0]MUXMux4SEL[3..0]16' h2FFB --DATA[15..0]OUTMUXMux5SEL[3..0]16' h279F --DATA[15..0]OUTMUXMux6SEL[3..0]16' hD7ED --DATA[15..0]OUTMUX

6、硬件测试。把实验箱连接好电源和计算及接口,通过JTAG接口把程序下载下来,即可在实验箱上通过按键和发光二极管来检验实验的正确性。

五、思考题

讨论语句when others=>null作用,对于不同的VHDL综合器,此句是否具有相同的含义和功能?

答:这个语句在本实验中有无没有影响,因为case中包含了所有16种可能,如果在其他的程序,case下的可能不是所有,就可能提示出错。对于不同的综合器,得到的结果是相同的,跟综合器无关,都是保持原样值不变的意思。 六、实验感想

课程名称:

实验项目:

实验地点:

专业班级:

学 号:

学生姓名:

本科实验报告

CPLD/FPGA应用设计 4位加法计数器 矿院楼二层EDA实验室 电子信息工程1101班 年 月 日

实验八 4位加法计数器

一、实验目的

1.学习时序电路的VHDL描述方法。

2.掌握时序进程中同步、异步控制信号的设计。 3.熟悉EDA的仿真分析和硬件测试技术。 二、实验内容

1、编写4位二进制加法计数器的VHDL程序。 2、在QuartusⅡ上对加法计数器进行仿真。

3、将输入引脚连接到拨码开关,时钟输入锁定到相应频率的时钟信号,输出连接到发光二极管,下载后在实验板上验证其功能,记录实验结果。 三、实验仪器

软件:windows xp QuartusⅡ6.0 硬件:实验板 四、实验原理

设计一个含计数使能、异步复位和并行预置功能的4位加法计数器,RST是异步复位信号,高电平有效;CLK是时钟信号;当使能信号ENA为“1”'时,加法计数,COUT为计数进位输出,OUTY为计数输出。

VHDL程序如下:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT4B IS

PORT(CLK:IN STD_LOGIC; RST:IN STD_LOGIC; ENA:IN STD_LOGIC;

OUTY:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT:OUT STD_LOGIC); END CNT4B;

ARCHITECTURE BEHAV OF CNT4B IS

SIGNAL CQI:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN

P_REG:PROCESS(CLK,RST,ENA,CQI) BEGIN

IF RST='1'THEN CQI<=\"0000\";

ELSIF CLK'EVENT AND CLK='1'THEN IF ENA='1'THEN CQI<=CQI+1; END IF; END IF; OUTY <= CQI; END PROCESS P_REG;

COUT<=CQI(0)AND CQI(1) AND CQI(2) AND CQI(3); END BEHAV;

五、实验步骤

1、VHDL文本编辑

在QuartusⅡ6.0集成环境下,执行“file”中的“new”命令,弹出编辑文本类型的对话框,选择“Device Design file”- “VHDL File”后单击“OK”。

先采用VHDL文本输入设计法实现4位二进制加法计数器的数字逻辑电路,并将文件CNT4B.vhd保存在创建的目录下。

2、编译设计图形文件

对CNT4B.vhd设计文件进行编译,进而实现四位同步二进制加法计数器的数字逻辑电路

3、功能仿真、时序仿真

4、引脚锁定,下载及硬件测试 六、实验结果

1、源程序输入

2、RTL仿真

Add0CQI[3..0]A[3..0]4' h1 --B[3..0]PREOUT[3..0]DQCOUT~2COUTENAADDERCLRRSTCLKENAOUTY[3..0] 3、波形仿真

4、引脚分配

七、实验总结

1、在上述程序中是否可以不定义信号 CQI,而直接用输出端口信号完成加法运算,即 : OUTY <= OUTY + 1 ?

答:不可以,因为信号OUTY定义的端口模式是OUT,是单向输出模式,所以只能作为输出信号,不能在结构体内再用来作为输入信号;而且 VHDL里面规定输出端口不能做为赋值来用,而OUTY<=OUTY+1,就把OUTY当成赋值来用了

2、修改程序,用进程语句和IF语句实现进位信号count的输出。

if CQI (3)= ' 1'; then 答:process(CQI)

Begin Cout<=' 1'; If CQI(0)= ' 1' then End if if CQI(1)= ' 1'; then End process

if CQI(2)= ' 1';then 3、实验感想 。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top