电子线路测试实验实验报告-FPG A 组合逻辑设计_第1页
电子线路测试实验实验报告-FPG A 组合逻辑设计_第2页
电子线路测试实验实验报告-FPG A 组合逻辑设计_第3页
电子线路测试实验实验报告-FPG A 组合逻辑设计_第4页
电子线路测试实验实验报告-FPG A 组合逻辑设计_第5页
已阅读5页,还剩4页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

电子线路测试实验实验报告

-FPGA组合逻辑设计

一、实验目的

1、掌握可编程逻辑器件的应用开发技术一一设计输入、编译、仿真和器件编程;

2、初步掌握VerilogHDL语言的编程方法;

3、掌握组合逻辑在FPGA数字系统中的设计实现方法;

4、熟悉一种EDA软件使用(Ise13.4软件使用);

二、预习要求

1.初步安装,自学ISE的最基本的使用方法;

2.复习数字电路理论课中所讲的verilog语言;

3.复习巩固设计电路的思路。(抽象出模型——真值表——卡诺图——逻辑表达式——

编程——FPGA实现)

三、实验内容与设计

I、内容:4-2优先编码器的设计、仿真与实现

2、设计:

(1)、优先编码器:允许同时输入两个以上的有效编码信号。当同时输入几个有效编码信

号时,优先编码器能按预先设定的优先级别,只对其中优先权最高的一个进行编码。

(2)、真值表

10111213L1L2

100000

X10001

XX1010

XXX111

(3)、卡诺图

LIL2

L11213

00011110

10110111

00

010111

110111

100111

LI1213

00011110

10110110

00

011110

111110

100110

(3)、逻辑表达式:

—=,2+,3

Lzi+l”

(4)、主程序代码:

moduleFirstWorkLi(

input10,

inputII,

input12,

input13,

outputLI,

outputL2

);

assignL1=I2|I3;

assignL2=I3|(I1&(-I2));

endmodule

(5)、测试代码:

moduletest;

//Inputs

reg10;

reg11;

reg12;

reg13;

//Outputs

wireLI;

wireL2;

//InstantiatetheUnitUnderTest(UUT)

FirstWorkLiuut(

.10(10),

.11(H),

.12(12),

.13(13),

.L1(L1),

.L2(L2)

);

initialbegin

//InitializeInputs

//InitializeInputs

10=0;

Il=0;

12=0;

13=0;

//Wait100nsforglobalresettofinish

#100;

//InitializeInputs

10-I;

Il=0;

12=0;

13=0;

//Wait100nsforglobalresettofinish

#100;

//InitializeInputs

10=0;

Il=1;

12=0;

13=0;

〃Wait100nsforglobalresettofinish

#100;

//InitializeInputs

10=1;

Il=1;

12=0;

13=0;

//Wait100nsforglobalresettofinish

#100;

//InitializeInputs

10=0;

Il=0;

12=1;

13=0;

//Wait100nsforglobalresettofinish

#100;

//InitializeInputs

10=1;

Il=0;

12=1;

13=0;

//Wait100nsforglobalresettofinish

#100;

//InitializeInputs

10=0;

Il=1;

12=1;

13-0,

//Wait1(X)nsforglobalresettofinish

#100;

//InitializeInputs

10=1;

Il=1;

12=I;

13=0;

//Wait100nsforglobalresettofinish

#100;

//InitializeInputs

10=0;

II=0;

12=0;

13=1;

//Wait100nsforglobalresettofinish

#100;

//InitializeInputs

10=1;

Il=0;

12=0;

13=1;

//Wait100nsforglobalresettofinish

#100;

//InitializeInputs

10=0;

Il=I;

12=0;

13=1;

//Wait100nsforglobalresettofinish

#100;

//InitializeInputs

10=I;

II=1;

12=0;

13=1;

//Wait100nsforglobalresettofinish

#100;

//InitializeInputs

10=0;

Il=0;

12=1;

13=1;

//Wait100nsforglobalresettofinish

#100;

//InitializeInputs

10=I;

Il=0;

12=1;

13=I;

//Wait100nsforglobalresettofinish

#100;

//InitializeInputs

10=0;

Il=1;

12=1;

13=1;

//Wait100nsforglobalresettofinish

#100;

//InitializeInputs

10=1;

Il=1;

12=1;

13=1;

end

endmodule

(6)、管脚代码:

NET"10"LOC=P11;〃将10的变量赋值给P11管教,PH是一个FPGA的一个开关

NET"II"LOC=L3;

NET"12"LOC=K3;

NET"13"LOC=B4;

NET"L1"LOC=M5;

NET"L2"LOC=MlI;

四、实验过程

1、在ISE13.4软件环境下,开启一个新的工程:FileNewProject.

[ProjectName]:Prior_Coding

[ProjectLocation]:f:\Prior_Coding(依使用者设定的目录-注意不要使用中文或控制字符!).

ITop-LcvclModuleType]:HDL(代表最上层的设计模块是以HDL方式实现的模块.

2、点击next,出现NewSourceWizard,设定此设计的输出输入信号.

10:input

II:input

12:input

13:input

LI:Output

L2:Output

3、输入源程序,双击Symhesize-xst进行综合,以确认设计的正确与否。综合只可能有三种

结果:成功、告警或错误§如果综合没有错误,可以通过双击ViewRTLSchematic,查看

内部电路模块-siar【withaschematicofthetop-levelblock

4、点击ledHDL文件,创建一个新的测试平台源文件:ProjectNewSource.在源文件向导

里,点击VerilogTestFixture作为源文件类型,输入文件名称为test.一直点击next,直到点击

finish,自动生成test、的测试模板,在此基础上编辑输入激励:依次仿真各种故隙及正常现象,

测试电路能否正常响应。

5、简单Testbench的搭建三个步骤:

(1)对被测试设计的顶层接口进行例化(由ISE自动完成),

(2)给被测试设计的输入接口添加激励(手动添加代码赋值,主要是输入信号及时钝的配

置,想好测试步骤与要求);

(3)判断被测试设计的输出响应是否满足设计要求(功能仿真、时序仿真)

6^保存test.Vo选择sourcesforSimulation双击SimulateBehavioralModel,ISE仿真器打开

并开始仿真,,将图形界面缩小到合适的界面,其仿真结吴如图所示:

仿真图形

7、创建自己的管脚约束文件:

设定I/O脚的位置,可以利用Prior_Coding.ucf来设定I/O脚的位置,以得到正确的输出

文件.ProjectNewSource.设定输入的文件格式为ImplementationConstraintsFile,文件

名称为Prior_Coding(自动储存为Prior_Coding.ucf)

Process窗口选择UserConstraints中的I/OPinPlanning(PlanAhead)-Post-Synthesis>

双击打开PlanAhead界面(本过程需要一定时间,视计算机配置要1分钟左右)。(如果没

有.ucf文件,软件会提示是否需要自动创建ucf文件,点击Yes)

完成设计验证之后,就可以将PriojCoding.bil写入到FPGA内部,此时连接BASYS2实

验板的USB下载线至ljPC机,并打开BASYS2实验板上的电源开关,在PC机桌面点击“开

in->Digilent->Adept->adeptn,打开专门的下载工具。

五、实验结果分析与结论

由上述的测试代码以及仿真波形来看,得到如下表格。

10111213L1L2

100000

X10001

XX1010

XXX111

可以看出它是与理论分析的真值表完全吻合的。当13输入时,无论10,II,12是

否有输入信号,LI和L2分别为1,1。同样,当13无输入信号而12输入时,无论10,

II是否有输入信号,L1和L2分别为1,0。。。可以看出,我设计的4-2优先编蚂器不

仅可以实现编码的功能,在输入端同时有输入信号时,能够根据信号的优先顺序进行判

断,故实验成功。

六、思考题

问:实验当中,我们发现即使是4-2优先编码器在绘制卡诺图时已经要用到4*4的卡诺

图,所以绘制8-3或更复杂的译码器无法通过绘制卡诺图来找到逻辑表达式,那么还有什么

其他方法吗?

答:这种情况利用卡诺图显然不合适,但是我们还是可以通过真值表直接分析出来,比

如输出端的最高位Y2=I7-I6+I5+I4,跳过卡诺图这一环节。

七、心得体会

本次试验是我们第•次使用ise编程软件,让我对这个程序有了较深的体会,比如,

使用verilog进行主要代码的编写,个人比较喜欢数据流,只需assign再加输出变量名

即可,比较简单实用,注意:主代码是在implementation(执行)下的.v文件。同时,

利用Tool工具栏下的ViewRTLSchematic(图表)可以观察元器件的内部构造。并且,

我们可以利用VerilogTestFixture进行代码的测试,以及波形的仿真,注意点击仿真界

面当中的多图标以查看波形。检验无误以后,在NewSource,运用Implementation

ConstraintsFile功能进行管脚代码的编写。最后,再将鼠标点到主程序代码(.v)文件,

进行generateprogrammingfile以生成bit文件以供下载。最后利用adept程序进行下载,

注意编程的按钮是右侧的program而不是下方的initializechain<.最

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论