EDA实验14.docx
《EDA实验14.docx》由会员分享,可在线阅读,更多相关《EDA实验14.docx(21页珍藏版)》请在冰豆网上搜索。
EDA实验14
本科实验报告
课程名称:
CPLD/FPGA应用设计
实验项目:
1位全加器2位10进制计数器
显示译码器4位加法计数器
实验地点:
矿院楼二层EDA实验室
专业班级:
电子信息工程1101班
学号:
学生姓名:
年月日
本科实验报告
课程名称:
CPLD/FPGA应用设计
实验项目:
1位全加器
实验地点:
矿院楼二层EDA实验室
专业班级:
电子信息工程1101班
学号:
学生姓名:
年月日
实验一1位全加器
一、实验目的
1、熟悉ispDesignEXPERTSystem、Quartus原理图设计流程的全过程。
2、学习简单组合电路的设计方法、输入步骤。
3、学习层次化设计步骤。
4、学习EDA设计的仿真和硬件测试方法。
二、实验原理
1位全加器可以由图1那样用两个半加器及一个或门连接而成,因此需要首先完成图2所示的半加器设计。
要求使用原理图输入的方法先进行底层半加器设计,再建立上层全加器设计文件,调用半加器和或门符号,连接完成原理图设计。
图1-全加器原理图
图2-半加器原理图
三、实验任务
1、用原理图输入方法设计半加器电路。
2、对半加器电路进行仿真分析、引脚锁定、硬件测试。
3、建立顶层原理图电路。
4、对全加器电路进行仿真分析、引脚锁定、硬件测试
四、实验步骤
1、建立设计工程
打开QuartusⅡ6.0软件,新建项目,选择file—newprojectwizard命令,指定工程的工作目录,工程名及顶层实体名,并选择FPGA器件EP1C12Q240C8。
2、原理图源文件输入:
a、新建原理图输入源文件
选择file—new命令,在【New】对话框中选择DesignFiles—BlockDiagram/SchematicFile原理图文件输入。
b、添加元器件符号
在绘图区双击鼠标左键,即弹出添加符号元件的窗口
c、添加输入、输出符号
d、连线及连线命名、标记输入、输出,并保存已完成的设计
3、功能和时序仿真
a、建立矢量波形文件。
选择file—new命令,在“New”对话框中选OtherFiles—VectorWaveformFile.
b、在矢量波形文件中加入输入输出节点,并编辑波形文件
c、进行功能仿真和时序仿真设置,之后点击菜单项Processing->GenerateFunctionalSimulationNetlist,产生功能仿真所需的网表,完成后启动仿真器,processing—startsimulation进行功能、时序仿真
4、硬件测试
首先进行引脚分配,选择菜单中的"assignments"—>"pins",进入引脚分配。
检测引脚分配是否合法,processing—start—startI/OAssignmentAnalylist命令,之后进行全局编译,下载。
下载完成后在硬件上连接电路测试。
五、实验结果
1、半加器设计
1.1-半加器原理图输入
1.2–半加器功能仿真
1.3–半加器引脚锁定
1.4–半加器编程下载
2、全加器设计
2.1-全加器原理图输入
2.2–全加器功能仿真
2.3–全加器引脚锁定
六、思考题
用设计好的全加器,实现四位串行加法器的设计,并给出波形仿真图及加法器的延时情况。
1、原理图文件
2、波形仿真
七、实验感想
本科实验报告
课程名称:
CPLD/FPGA应用设计
实验项目:
2位10进制计数器
实验地点:
矿院楼二层EDA实验室
专业班级:
电子信息工程1101班
学号:
学生姓名:
年月日
实验二2位十进制计数器
一、实验目的
1、熟悉QuartusII的原理图设计流程全过程。
2、学习简单时序电路的设计方法。
3、学习EDA设计的时序仿真和硬件测试方法。
二、实验原理
2位十进制计数器参考原理图如图1所示,也可以采用其他元器件实现。
三、实验任务
1、设计2位十进制计数器电路。
2、在EDA环境中输入原理图。
3、对计数器进行仿真分析、引脚锁定、硬件测试。
四、实验步骤
1、设计电路原理图
设计含有时钟使能及进位扩展输出的十进制计数器。
可以选用双十进制计数器74LS390或者十进制计数器74LS160和其他一些辅助元件来完成。
2、计数器电路的实现
按照电路图进行连线,完成完整的实验原理图。
绘制过程中应特别注意图形设计规则中信号标号和总线的表达方式。
若将一根细线变成一粗线显示的总线,可以先单机使其变红,再选Option选项中的LineStyle;若在某线上加信号标号,也应该点击该线某处使其变成红色,然后键入标号名称,标有相同标号的线段可视为连接线段,不必直接连接。
总线可以以标号方式进行连接。
3、波形仿真
4、编程下载、硬件测试
五、实验结果
1、原理图文件
2、RTL仿真
3、波形仿真图
4、引脚分配图
5、硬件测试
六、实验感想
本科实验报告
课程名称:
CPLD/FPGA应用设计
实验项目:
显示译码器
实验地点:
矿院楼二层EDA实验室
专业班级:
电子信息工程1101班
学号:
学生姓名:
年月日
实验二显示译码器
一、实验目的
1、学习七段显示译码器设计。
2、学习进程PROCESS和CASE语句的设计方法。
3、熟悉VHDL文本输入设计的流程。
二、实验原理
设计共阴极数码管的七段显示译码电路,VHDL参考程序如下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYYIMA7IS
PORT(A:
INSTD_LOGIC_VECTOR(3DOWNTO0);
LED7S:
OUTSTD_LOGIC_VECTOR(6DOWNTO0));
END;
ARCHITECTUREARTOFYIMA7IS
BEGIN
PROCESS(A)
BEGIN
CASEAIS
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";
WHENOTHERS=>NULL;
ENDCASE;
ENDPROCESS;
END;
三、实验内容
1、完成显示译码器的VHDL描述
2、在QuartusⅡ上对显示译码器的VHDL描述进行编辑、编译、综合、适配、仿真,给出其所有信号的时序仿真波形。
3、进行引脚锁定以及硬件下载测试。
四、实验步骤
1、打开软件,新建一个VHDLFile文件,输入需要设计的程序。
2、对该VHDL语言进行编辑,无误后进行编译。
3、编译完成后分配管脚,之后进行编译。
4、波形仿真
5、由程序进行RTL仿真生成电路图。
6、硬件测试。
把实验箱连接好电源和计算及接口,通过JTAG接口把程序下载下来,即可在实验箱上通过按键和发光二极管来检验实验的正确性。
五、思考题
讨论语句whenothers=>null作用,对于不同的VHDL综合器,此句是否具有相同的含义和功能?
答:
这个语句在本实验中有无没有影响,因为case中包含了所有16种可能,如果在其他的程序,case下的可能不是所有,就可能提示出错。
对于不同的综合器,得到的结果是相同的,跟综合器无关,都是保持原样值不变的意思。
六、实验感想
。
本科实验报告
课程名称:
CPLD/FPGA应用设计
实验项目:
4位加法计数器
实验地点:
矿院楼二层EDA实验室
专业班级:
电子信息工程1101班
学号:
学生姓名:
年月日
实验八4位加法计数器
一、实验目的
1.学习时序电路的VHDL描述方法。
2.掌握时序进程中同步、异步控制信号的设计。
3.熟悉EDA的仿真分析和硬件测试技术。
二、实验内容
1、编写4位二进制加法计数器的VHDL程序。
2、在QuartusⅡ上对加法计数器进行仿真。
3、将输入引脚连接到拨码开关,时钟输入锁定到相应频率的时钟信号,输出连接到发光二极管,下载后在实验板上验证其功能,记录实验结果。
三、实验仪器
软件:
windowsxpQuartusⅡ6.0硬件:
实验板
四、实验原理
设计一个含计数使能、异步复位和并行预置功能的4位加法计数器,RST是异步复位信号,高电平有效;CLK是时钟信号;当使能信号ENA为“1”'时,加法计数,COUT为计数进位输出,OUTY为计数输出。
VHDL程序如下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYCNT4BIS
PORT(CLK:
INSTD_LOGIC;
RST:
INSTD_LOGIC;
ENA:
INSTD_LOGIC;
OUTY:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
COUT:
OUTSTD_LOGIC);
ENDCNT4B;
ARCHITECTUREBEHAVOFCNT4BIS
SIGNALCQI:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
P_REG:
PROCESS(CLK,RST,ENA,CQI)
BEGIN
IFRST='1'THENCQI<="0000";
ELSIFCLK'EVENTANDCLK='1'THEN
IFENA='1'THENCQI<=CQI+1;
ENDIF;
ENDIF;
OUTY<=CQI;
ENDPROCESSP_REG;
COUT<=CQI(0)ANDCQI
(1)ANDCQI
(2)ANDCQI(3);
ENDBEHAV;
五、实验步骤
1、VHDL文本编辑
在QuartusⅡ6.0集成环境下,执行“file”中的“new”命令,弹出编辑文本类型的对话框,选择“DeviceDesignfile”-“VHDLFile”后单击“OK”。
先采用VHDL文本输入设计法实现4位二进制加法计数器的数字逻辑电路,并将文件CNT4B.vhd保存在创建的目录下。
2、编译设计图形文件
对CNT4B.vhd设计文件进行编译,进而实现四位同步二进制加法计数器的数字逻辑电路
3、功能仿真、时序仿真
4、引脚锁定,下载及硬件测试
六、实验结果
1、源程序输入
2、RTL仿真
3、波形仿真
4、引脚分配
七、实验总结
1、在上述程序中是否可以不定义信号CQI,而直接用输出端口信号完成加法运算,即:
OUTY<=OUTY+1?
答:
不可以,因为信号OUTY定义的端口模式是OUT,是单向输出模式,所以只能作为输出信号,不能在结构体内再用来作为输入信号;而且VHDL里面规定输出端口不能做为赋值来用,而OUTY<=OUTY+1,就把OUTY当成赋值来用了
2、修改程序,用进程语句和IF语句实现进位信号count的输出。
答:
process(CQI)
Begin
IfCQI(0)='1'then
ifCQI
(1)='1';then
ifCQI
(2)='1';then
3、实验感想
ifCQI(3)='1';then
Cout<='1';
Endif
Endprocess
。