专用集成电路实验报告Word格式.docx
- 文档编号:22254677
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:43
- 大小:856.73KB
专用集成电路实验报告Word格式.docx
《专用集成电路实验报告Word格式.docx》由会员分享,可在线阅读,更多相关《专用集成电路实验报告Word格式.docx(43页珍藏版)》请在冰豆网上搜索。
定义器件封装形式
●【SpeedGrade】:
定义芯片工作速度等级
●【Top-LevelModuleType】:
定义顶层模块类型
●【SynthesisTool】:
定义综合工具
●【Simulator】:
定义仿真测试工具
●【GeneratedSimulationLanguage】:
定义硬件描述语言
针对本试验所用开发板我们选择“CoolRunnerXPLA3CPLDs”系列的“XCR3256XL-7PQ208”器件作为目标芯片进行仿真,如图2所示。
图2
完成具体选择后点击【Next】弹出对话框,在该对话框内创建文件资源。
打开【NewSource】标签,弹出如图3所示对话框,在左侧方框中包含了用户可以创建的文件类型,包括以下内容:
●【Schematic】:
原理图类型文件
●【StateDiagram】:
状态图类型文件
●【TestBenchWaveform】:
波形类型测试文件
●【UserDocument】:
用户类型文件
●【VerilogModule】:
Verilog类型文件
●【VerilogTestFixture】:
Verilog语言描述类型测试文件
●【VHDLLibrary】:
VHDL库文件
●【VHDLModule】:
VHDL类型模块文件
●【VHDLPackage】:
VHDL类型文件封装库
●【VHDLTestBench】:
VHDL语言描述类型测试文件
图3
在【File】
标签下对话框内写入用户自定义的文件名称,标签【Locatior】下显示了新定义文件的创建路径,选中标签【Addtoprojet】前的对号标记,将新创建的文ls74138添加到工程“Shiyan”中。
点击【Next】,弹出如图4所示对话框,在此对话框中输入三线八线译码器(74LS138)的的端口信息。
图4
点击【Next】弹出【NewSourceInformation】对话框,在该对话框内显示了新建文件的属性及信息,如图5所示。
图5
点击【Finish】返回资源创建对话框,其中显示了新建文件“LS74138.vhdl”,如图6。
图6
点击【Next】弹出工程信息对话框【NewProjectInformation】,该对话框给出了所设计的工程信息,如图7所示。
图7
点击【Finish】标签结束新建工程过程。
进入XilinxISE文本编辑方式,在文本框中编辑输入8位加法器的VHDL源程序,如下图8所示:
图8
libraryIEEE;
useIEEE.STD_LOGIC_1164.ALL;
useIEEE.STD_LOGIC_ARITH.ALL;
useIEEE.STD_LOGIC_UNSIGNED.ALL;
--Uncommentthefollowinglinestousethedeclarationsthatare
--providedforinstantiatingXilinxprimitivecomponents.
--libraryUNISIM;
--useUNISIM.VComponents.all;
entityls74138is
Port(G1:
instd_logic;
G2:
INP:
instd_logic_vector(2downto0);
Y:
outstd_logic_vector(7downto0));
endls74138;
architectureBehavioralofls74138is
begin
process(G1,G2,INP)
if((G1andG2)='
1'
)then
caseinpis
when"
000"
=>
Y<
="
00000001"
;
when"
001"
00000010"
010"
00000100"
011"
00001000"
100"
00010000"
101"
00100000"
110"
01000000"
111"
10000000"
whenothers=>
00000000"
endcase;
else
Y<
endif;
endprocess;
endBehavioral;
在VHDL源程序中,G1和G2为两个使能控制信号,INP为命令码输入信号,Y为8位译码输出信号。
(2)、设计文件存盘与语法检查
图9图10
完成程序代码输入后单击高亮“ls74138-behavioral(LS74138.vhdl)”标签(图9),此时工具窗口将显示“ProcessforSource(ls74138-behavioral)”。
用鼠标右键点击Process窗口中【CheckSyntax】标签,点击运行选项,进行程序语法检查,当显示一绿色对号标志时即表示程序中不存在语法问题,如图10所示。
(3)、仿真文件设计
为了验证所设计电路功能,需要输入测试文件对电路程序功能进行测试。
在【Process】菜单中选择【CreateNewSource】选项,选择【VHDLTestBench】添加测试向量文件,并将文件添加到LS74138模块中
测试向量参考程序如下:
LIBRARYieee;
USEieee.std_logic_1164.ALL;
USEieee.numeric_std.ALL;
ENTITYls74138_tb_74138_vhd_tbIS
ENDls74138_tb_74138_vhd_tb;
ARCHITECTUREbehaviorOFls74138_tb_74138_vhd_tbIS
COMPONENTls74138
PORT(
G1:
INstd_logic;
G2:
INP:
INstd_logic_vector(2downto0);
Y:
OUTstd_logic_vector(7downto0)
);
ENDCOMPONENT;
SIGNALG1:
std_logic;
SIGNALG2:
SIGNALINP:
std_logic_vector(2downto0);
SIGNALY:
std_logic_vector(7downto0);
BEGIN
uut:
ls74138PORTMAP(
G1=>
G1,
G2=>
G2,
INP=>
INP,
Y=>
Y
--***TestBench-UserDefinedSection***
u1:
PROCESS
BEGIN
G1<
='
0'
waitfor10us;
waitfor90us;
wait;
ENDPROCESSu1;
u2:
G2<
ENDPROCESSu2;
u3:
INP<
waitfor20us;
endPROCESSu3;
--***EndTestBench-UserDefinedSection***
ENDbehavior;
运行行为仿真选项卡,XilinxISE自动调用ModelSimSE6.1c仿真平台作为仿真工具。
运行ModelSimSE6.1c菜单【Simulate】->
【Run】->
【Restart】,将仿真时间点置零。
在【transcript】窗口中输入仿真时间
。
在波形【Wave】窗口内使用
按钮实现仿真图的“放大”“缩小”“全局”功能。
图11即为电路仿真结果,由图中时序及逻辑关系可知该三线八线译码器行为仿真正常。
图11
实验二组合逻辑电路的VHDL语言实现
验证性实验级别:
信息与通信工程学院通信工程系学时:
2学时
1、掌握VHDL语言设计基本单元及其构成
2、掌握用VHDL语言设计基本的组合逻辑电路的方法。
3、掌握VHDL语言的主要描述语句。
1、本实验以1位全加器为例,在XilinxISE软件平台上完成设计电路的VHDL文本输入,编辑,编译,仿真。
芯片选择Xilinx公司的CoolRunnerXPLA3CPLDs系列XCR3256XL-7PQ208作为目标仿真芯片。
2、用实验内容1所设计的全加器的VHDL文件生成一个adder的元件,在XilinxISE软件原理图设计平台上完成adder元件的调用。
(一)、全加器是带进位位信号的加法器,起逻辑表达式为:
。
它的真值表如表1所示,其中
和
为加数与被加数,
是输入的进位位信号,而
是和数,
是输出进位位信号。
表1
输入
输出
1
一)1位加法器的VHDL源程序参考如下:
entityadderis
Port(a:
b:
cin:
sum:
outstd_logic;
cout:
outstd_logic);
endadder;
architectureBehavioralofadderis
sum<
=(axorb)xorcin;
cout<
=(aandb)or(cinanda)or(cinandb);
ENTITYadder_adder_vhd_tbIS
ENDadder_adder_vhd_tb;
ARCHITECTUREbehaviorOFadder_adder_vhd_tbIS
COMPONENTadder
a:
b:
cin:
sum:
OUTstd_logic;
cout:
OUTstd_logic
SIGNALa:
SIGNALb:
SIGNALcin:
SIGNALsum:
SIGNALcout:
adderPORTMAP(
a=>
a,
b=>
b,
cin=>
cin,
sum=>
sum,
cout=>
cout
);
u1:
PROCESS
a<
waitfor10us;
a<
waitfor20us;
wait;
ENDPROCESSu1;
u2:
process
begin
b<
waitfor10us;
waitfor20us;
wait;
ENDPROCESSu2;
u3:
process
begin
cin<
waitfor40us;
cin<
wait;
endprocessu3;
ENDbehavior;
二)用实验内容1所设计的全加器的VHDL文件生成一个adder的元件,在XilinxISE软件原理图设计平台上完成adder元件的调用,在processerforSource:
”adder”窗口点击CreateSchematicSymbol,生成adder的元件,在SourcesinProject窗口新建Schematic文件命名adder8,在XilinxECS平台上点Symbols,
仿真结果如下图:
(二)、用VHDL语言实现优先编码器的设计并实现功能仿真
优先计编码器常用于中断的优先级控制,以8输入,3位二进制输出的优先级编码器为例,当其中一个输入有效时,就可以输出一个对应得3位二进制编码。
另外,当同时有几个输入有效时,将输出优先级最高的那个输入所对应得二进制编码。
其真值表如下所示:
表2优先编码器真值表
二进制编码输出
Input7
Input6
Input5
Input4
Input3
Input2
Input1
Input0
Y2
Y1
Y0
x
用VHDL语言实现优先编码器的设计并实现功能仿真验证其功能。
参考程序如下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYpriorityencoderIS
PORT(input:
INSTD_LOGIC_VECTOR(7DOWNTO0);
y:
OUTSTD_LOGIC_VECTOR(2DOWNTO0));
ENDpriorityencoder;
ARCHITECTURErt1OFpriorityencoderIS
PROCESS(input)
IF(input(0)='
)THEN
y<
ELSIF(input
(1)='
ELSIF(input
(2)='
ELSIF(input(3)='
ELSIF(input(4)='
ELSIF(input(5)='
ELSIF(input(6)='
ELSE
ENDIF;
ENDPROCESS;
ENDrt1;
ENTITYpriorityencoder_priorityencoder_vhd_tbIS
ENDpriorityencoder_priorityencoder_vhd_tb;
ARCHITECTUREbehaviorOFpriorityencoder_priorityencoder_vhd_tbIS
COMPONENTpriorityencoder
input:
INstd_logic_vector(7downto0);
y:
OUTstd_logic_vector(2downto0)
SIGNALinput:
SIGNALy:
std_logic_vector(2downto0);
priorityencoderPORTMAP(
input=>
input,
y=>
y
tb:
input<
11011010"
input<
11101101"
10110011"
11010111"
01101111"
11011111"
10111111"
11111111"
01111111"
11011011"
11111001"
ENDPROCESStb;
仿真图如下:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 专用 集成电路 实验 报告