Verilog实验报告Word文档下载推荐.docx
《Verilog实验报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Verilog实验报告Word文档下载推荐.docx(9页珍藏版)》请在冰豆网上搜索。
实 验 报 告
一、实验准备
实验项目名称
一位二进制全加电路
实验日期
2016/5/20
实验类型
演示性 验证性 ☑ 综合性 设计研究 其它
实验目的及要求:
1、实验目的
(1)学习QuartusII的文本和原理图输入方法设计简单组合电路以熟悉QuartusII的使用;
(2)熟悉设备和软件,掌握实验操作,理解可编程逻辑器件的设计原理及工作流程;
(3)了解VerilogHDL语言逻辑编程设计基本过程;
2、实验要求
(1)在利用VHDL编辑程序实现半加器和或门,再利用原理图连接半加器和或门完成全加器的设计,熟悉层次设计概念;
(2)给出此项设计的仿真波形;
(3)参照实验板的引脚号,选定和锁定引脚,编程下载,进行硬件测试;
实验设备环境:
实验室:
1525
操作系统:
windowsxp
应用软件:
QuartusII7.0(32-Bit)
二、实验过程
实验步骤:
1、设计思路
一个1位全加器可以用两个1位半加器及一个或门连接而成。
而一个1位半加器可由基本门电路组成。
半加器的真值表为
其中a为被加数,b为加数,so为本位和,co为本位向高位进位,因而可得表达式为:
so=NOT(aXOR(NOTb));
而co=aANDb;
其原理图形如下:
而全加器的真值表如下:
其中ain为被加数,bin为加数,cin为低位向本位的进位,sum为本位向高位的进位,cout为本位和其原理图如图所示:
2、设计全加器
(1)、在File菜单中选择New项,将出现新建文件对话框。
选择“DeviceDesignFile->
BlockDiagram->
SchematicFile”项。
点击“OK”,在主界面中将打开“BlockEditor”窗口。
(2)元件的添加:
在绘图区点击鼠标右键->
Insert->
Symbol„或双击鼠标左键,弹出相应的Symbol对话框,在name栏输入需添加的元件,input(输入引脚),两个h_suber,or2(两输入或门),output(输出引脚)等,回车或点击ok,此时在鼠标光标处将出现该元件图标,并随鼠标的移动而移动,在合适的位置点击鼠标左键,放置一个元件。
设计好的全加器如原理图所示。
保存文件:
从“File”菜单下选择“Save”,出现文件保存对话框,选择文件夹d:
suber(与刚才的半加器选在同一个文件夹下必须)。
单击“OK”.
(3)实验程序来自书上(由于报告书有限,略)
实验结果分析与讨论:
通过本次实验我基本熟悉了QUARTUSII的使用,分别学会了原理图输入法和VHDL文本输入法,同时也学会了波形仿真,波形仿真要观察到程序所要的结果,应该正确设置仿真时间,否则无法全面显示程序要实现的功能
学生签名:
袁诚 日 期:
指导教师评语及成绩:
指导教师签名:
批阅日期:
BCD解码器
1、掌握组合逻辑电路设计原理及特点;
2、学习使用组合逻辑电路设计方法;
从1位BCD加法器扩展为2位BCD加法器,可以采用图形编辑器和VHDL文本输入两种方法实现。
输入两个2位BCD码A1A0和B1B0以及1位进位输入cin,输出2位BCD码和S1S0和1位进位输出cout。
验证电路时可用SW[8..1]表示A1A0,SW[16..9]表示B1B0,SW[0]表示cin;
HEX1和HEX0表示S1S0,LEDG[0]表示cout。
方法1:
采用图形编辑器的方法,最终效果图如下所示。
方法2:
采用1位BCD加法器的设计思路重新设计一个2位BCD加法器,以下是实现2位BCD加法器的伪代码,可作为编程的思路。
1T0=A0+B0
2if(T0>
9)then
3Z0=10;
4c1=1;
5else
6Z0=0;
7c1=0;
8endif
9S0=T0−Z0
10T1=A1+B1+c1
11if(T1>
12Z1=10;
13c2=1;
14else15Z1=0;
16c2=0;
17endif
18S1=T1−Z1
19S2=c2
袁诚 日 期:
2016/5/27
2016/6/3
1、学习三种逻辑功能电路描述方法;
2、学习典型电路设计;
三、实验过程
(1)采用VerilogHDL硬件描述语言设计一个三人表决器。
根据二进制原理得到真值表:
可知有如下逻辑关系:
(2)新建工程目录、工程文件及源文件(voter)。
结构性描述设计设计三人表决器程序描述如下
modulevoter2(a,b,c,f);
inputa,b,c;
outputf;
wiref1,f2,f3;
and(f1,a,b),(f2,a,c),(f3,b,c);
or(f,f1,f2,f3);
endmodule
(3)进行文件编译,无错误后建立波形文件,设置相应端口及波形,保存后进行时序仿真。
l(4)点击tools→Netlistviewers→RTLviewer,有如下生成的电路:
数据流描述模式:
设计三人表决器程序描述如下,直接修改上面程序,编译、仿真结果也是相同的。
modulevoter(a,b,c,f);
assignf=(a&
b)|(a&
c)|(b&
c);
行为描述模式:
设计三人表决器程序描述如下,直接修改上面程序,编译、仿真结果也是相同的。
modulevoter3(a,b,c,f);
outputregf;
always@(aorborc)
case({a,b,c})
3'
b000:
f=0;
b001:
b010:
b011:
f=1;
b100:
b101:
b110:
b111:
default:
f=1`bx;
endcase
endmodule
调用软件平台内部的门元件,通过电路逻辑结构功能进行设计的方法。
主要使用持续赋值语句,多用于描述组合逻辑电路。
对设计实体的数学模型的描述,无需知道具体电路的结构,只需要描述清楚输入与输出信号的行为,而不需要花费更多的精力关注设计功能的门级实现
袁诚 日 期: