标题: FPGA可编程数字逻辑电路入门实验分享给大家 [打印本页]

作者: seu-yan    时间: 2019-9-15 20:53
标题: FPGA可编程数字逻辑电路入门实验分享给大家

课程名称:数字逻辑电路实验A

第二次试验

实验名称:可编程数字逻辑设计基础

院系:电子科学与工程学院

专业:电子科学与技术(类)

目的和要求:

    实验原理:

       由于硬木课堂上的FPGA型号为”Cyclone Ⅳ”,而实验所采用的版本Quartus9.1不支持此型号,所以在新建project时,在Assignment中选择Device,选择其中的Family下拉框,点击“CycloneⅢ”,Available devices列表中选择EP3C5E144C8,点击“OK”即可。

         设计方案:①AND2为一个二输入与门,XOR为二输入异或门,因为一位半加器无进位输入量,所以设输入变量为A与B,输出变量为S和C,S为结果,C为进位输出量。

②根据一位半加器的要求列出真值表如下表所示:

输入变量

输出变量

A

B

S

C

0

0

0

0

0

1

1

0

1

0

1

0

1

1

0

1

③因为输入量个数较少,直接根据真值表可得S=A’B+AB’,即为A与B的异或;

C=AB,所以据此得到此二输出的逻辑函数:S=A’B+AB’,C=AB;

④点击File中的New项,将出现新建文件对话框,选择“Design File/Block Diagram/Schematic File”项,点击“OK”即可打开”Block Editor”,双击原理图空白部分,在name栏中分别搜索imput,output,XOR和AND2得到所需元件,然后利用左侧绘图工具建立原理图,保存在Project的相同文件夹中。如下图所示:

⑤功能验证:

首先点击Project Navigator/files/Device Design Files,选中要编译的“yiweibanjiaqi.bdf”文件,右键将其“Set as Top-level Entity”,先不分配管脚,下面建立输入激励波形文件,按照New/Verification/Debugging Files/Vector Waveform File建立文件后双击Name空白处,按照Insert Node or Bus/Node Finder/list/”>>”的顺序,利用左图的工具将激励波形完成后将其“Save”到Project的文件夹中,注意在完善激励波形的时候用Edit/End time.Grid size设置好截止时间以方便设置周期及后面的时延分析。然后按照“Processing/Simulator Tool/Functional”,然后在Simulator input中指定之前所保存的波形激励文件,按照“Generate Functional Simulator Netlist”生成功能仿真网表文件,点击“Start”进行仿真计算,完成后点击“Report”打开仿真结果波形。仿真结果波形如下:

由上面的输入输出波形与真值表相比对输出结果完全正确,功能验证完成。

接着上面的功能仿真结束后,直接在当前工程下按照“File/Create/Update/Create Symbol File for Current File”的顺序将一位半加器封装成元件命名为“shiyan2yiweibanjiaqi”,封装即完成.

设计方案:设计一个一位全加器需要三个输入量,此处定义为A,B,C,其中A,B为加数与被加数,C为输入进位量,输出量为S与C0,S为和,C0为输出进位,先根据一位全加器的定义列出真值表如下表所示:

输入量

输出量

A

B

C

S

C0

0

0

0

0

0

0

0

1

1

0

0

1

0

1

0

0

1

1

0

1

1

0

0

1

0

1

0

1

0

1

1

1

0

0

1

1

1

1

1

1

根据以上真值表列出卡诺图如下图所示:

①对S:

BC

00

01

11

10

A

0

0

1

0

1

1

1

0

1

0


根据卡诺图化简后所得的关于输出量S的逻辑函数表达式为:S=A⊕B⊕C;

①对C0:

BC

00

01

11

10

A

0

0

0

1

0

1

0

1

1

1

根据卡诺图化简后所得的关于输出量C0的逻辑函数表达式为:C0=AB+AC;

由上面的逻辑函数表达式确定原理图的绘制过程如下:然后按照之前建立原理图的顺序,即点击File中的New项,将出现新建文件对话框,选择“Design File/Block Diagram/Schematic File”项,点击“OK”即可打开”Block Editor”,双击原理图空白部分,在name栏中搜索”yiweibanjiaqi”即可调出刚刚封装的一位半加器元件,继续搜索相应的“output/input/7432(或门)”,按照上述逻辑函数进行原理图的绘制,绘制后的原理图如下所示:

首先点击Project Navigator/files/Device Design Files,选中要编译的“yiweibanjiaqi.bdf”文件,右键将其“Set as Top-level Entity”,先不分配管脚,下面建立输入激励波形文件,按照New/Verification/Debugging Files/Vector Waveform File建立文件后双击Name空白处,按照Insert Node or Bus/Node Finder/list/”>>”的顺序,利用左图的工具将激励波形完成后将其“Save”到Project的文件夹中,注意在完善激励波形的时候用Edit/End time.Grid size设置好截止时间以方便设置周期及后面的时延分析。然后按照“Processing/Simulator Tool/Functional”,然后在Simulator input中指定之前所保存的波形激励文件,按照“Generate Functional Simulator Netlist”生成功能仿真网表文件,点击“Start”进行仿真计算,完成后点击“Report”打开仿真结果波形。仿真结果波形如下:

将仿真的结果波形与真值表相比较,结果一致,功能验证成功完成。

接着上面的功能仿真结束后,直接在当前工程下按照“File/Create/Update/Create Symbol File for Current File”的顺序将一位全加器封装成元件命名为“yiweiquanjiaqi”,封装即完成.

设计方案:设计一个四位行波加法器需要九个输入量,用C-1,A3,A2,A1,A0,B3,B2,B1,B0来表示,其中C-1为低位位进位,此处置零。设计行波加法器采用并行相加串行进位的方式,低位全加器的进位进到高一位的加法器,由于四位行波加法器的情况较多,我们只从原理的角度进行分析,此处不再列出真值表,根据四位行波加法器的工作原理可画出下面的原理图:

然后按照之前建立原理图的顺序,即点击File中的New项,将出现新建文件对话框,选择“Design File/Block Diagram/Schematic File”项,点击“OK”即可打开”Block Editor”,双击原理图空白部分,在name栏中搜索”yiweiquanjiaqi”即可调出刚刚封装的一位全加器元件,继续搜索相应的“output/input”,按照上述工作原理进行原理图的绘制,绘制后的原理图如下所示:

建立保存原理图之后,首先点击Project Navigator/files/Device Design Files,选中要编译的“yiweiquanjiaqi.bdf”文件,右键将其“Set as Top-level Entity”,先不分配管脚,下面建立输入激励波形文件,按照New/Verification/Debugging Files/Vector Waveform File建立文件后双击Name空白处,按照Insert Node or Bus/Node Finder/list/”>>”的顺序,利用左图的工具将激励波形完成后将其“Save”到Project的文件夹中,注意在完善激励波形的时候用Edit/End time.Grid size设置好截止时间以方便设置周期及后面的时延分析。然后按照“Processing/Simulator Tool/Functional”,然后在Simulator input中指定之前所保存的波形激励文件,按照“Generate Functional Simulator Netlist”生成功能仿真网表文件,点击“Start”进行仿真计算,完成后点击“Report”打开仿真结果波形。仿真结果波形如下:

功能验证结果与逻辑值一致,功能验证完成。

接着按照题干要求提示查看电路综合效果,结果如下:

         按照题干查看电路Map结果,效果如下:

        按照题干查看器件适配结果,效果如下:

6.将 4 位全加器下载到实验箱,连接逻辑电平开关进行功能验证(课内验收);

   硬木课堂上的FPGA为Cyclone Ⅳ,但是Quartus9.1版本的Device中最新版本FPGA只包含Cyclone Ⅲ,故将FPGA先与电脑连接然后打开电脑设备管理器选择“通用串行总线控制器”,选择其中的“Altera USB-Blaster”,右键选择“更新驱动程序”,根据向导点击“浏览我的计算机以查找驱动程序软件”,找到Quartus安装包中的”drivers”,勾选“包括子文件夹”进行驱动设备的更新即可。

新建project时,在Assignment中选择Device,选择其中的Family下拉框,点击“Cyclone Ⅳ E”,Available devices列表中选择EP4CE6F17C7,点击“OK”即可。按照FPGA上面的管脚参数给四位行波加法器分配引脚,将C-1引脚分配至KEY0处,其余用逻辑电平SW0~SW7控制输入量,输出利用LED0~LED4的亮与不亮来显示输出量,管脚分配完成后,点击“Programmer”,添加硬件为USB-Blaster,点击start,开始逻辑电平的功能验证,已通过课内验收。

     首先点击Project Navigator/files/Device Design Files,选中要编译的“yiweibanjiaqi.bdf”文件,右键将其“Set as Top-level Entity”,然后按照“Processing/Simulator Tool”进入仿真页面,Simulator mode下拉框中选择“Timing”,激励波形文件选择之前建立的“shiyan2yiweibanjiaqi.vmf”文件,start之后选择Report可以查看仿真结果波形。

在查看仿真结果波形之前,我们先查看电路的时延信息,时延信息如下表所示:

其中RR,RF,FR,FF分别表示输入信息变化与输出做出反应之间的时间差,即时延,下面我们查看仿真结果波形,如下图所示:

然后通过两个TimeBar来确定时延信息,如图中所示:当B从0变成1时,C也从0变成1,此时时间差为4.766ns,即为B对C的RR,与上表中比较误差为4.766-4.759=0.007ns,误差较小。同理可知,B对S的RF为4.67ns,与表中时延数据相差为0.014ns,误差较小,B对S的RR=4.746ns,与表格中基本一致,说明时间延迟与表中数据基本一致。可直接按照表中时延数据进行电路的分析。

时延信息如下表所示:

a

第一个:时延9.569ns;

第二个:时延9.57ns;

第三个:时延9.569ns;

第四个:时延 9.57ns;

b                                                                                                  

此处的输出毛刺为1.531ns,此处ABC对应的电平为110,S对应的输出应当为零,但是出现了短暂的毛刺,说明此处存在由于电路延时而出现的竞争冒险情况。

  C0的输出如图所示,并未出现明显的毛刺现象。

时延为10.785ns;

时延为10.354ns;

时延为9.491ns;

时延为8.8ns;

时延为10.526ns;

时延为10.526ns;

时延为10.008ns;

时延为9.146ns;

时延为8.628ns;

时延为10.354ns;


完整的Word格式文档51黑下载地址:

大学时期的数电入门实验.docx (365.78 KB, 下载次数: 29)


作者: zhi2xin1    时间: 2019-10-29 13:21
好东西,正好需要




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1