专用集成电路.docx
- 文档编号:8469936
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:25
- 大小:22.92KB
专用集成电路.docx
《专用集成电路.docx》由会员分享,可在线阅读,更多相关《专用集成电路.docx(25页珍藏版)》请在冰豆网上搜索。
专用集成电路
优选文档
实验一EDA软件实验
一、实验目的:
1、掌握的VHDL输入方法、原理图文件输入和元件库的调用方法。
2、掌握软件元件的生成方法和调用方法、编译、功能仿真和时序仿真。
3、掌握原理图设计、管脚分配、综合与实现、数据流下载方法。
二、实验器材:
计算机、QuartusII软件或xilinxISE
三、实验内容:
1、本实验以三线八线译码器〔LS74138〕为例,在XilinxISE9.2软件平台上完成设计电
路的VHDL文本输入、语法检查、编译、仿真、管脚分配和编程下载等操作。
下载芯片
选择Xilinx公司的CoolRunnerII系列XC2C256-7PQ208作为目标仿真芯片。
2、用1中所设计的的三线八线译码器〔LS74138〕生成一个LS74138元件,在XilinxISE
9.2软件原理图设计平台上完成LS74138元件的调用,用原理图的方法设计三线八线译码器〔LS74138〕,实现编译,仿真,管脚分配和编程下载等操作。
四、实验步骤:
1、三线八线译码器〔LS74138〕VHDL电路设计
(1)三线八线译码器〔LS74138〕的VHDL源程序的输入
翻开编程环境软件ProjectNavigator,执行“file〞菜单中的【New
Project】命令,为三线八线译码器〔LS74138〕建立设计工程。
工程名称【ProjectName】
为“Shiyan〞,工程建立路径为“C:
\Xilinx\bin\Shiyan1〞,其中“顶层模块种类〔Top-Level
ModuleType〕〞为硬件描述语言〔HDL〕,如图1所示。
图1
点击【下一步】,弹出【SelecttheDeviceandDesignFlowfortheProject】对话框,在该
对话框内进行硬件芯片选择与工程设计工具配置过程。
优选文档
优选文档
图2
完成详尽选择后点击【下一步】弹出如图3所示对话框,在该对话框内创立文件资源。
图3图4
翻开【NewSource】标签,弹出如图4所示对话框
在【File】标签下对话框内写入用户自定义的文件名称,标签【Locatior】下显示了
新定义文件的创立路径,选中标签【Addtoproje】前的对号标志,将新创立的文件74ls138
增加到工程“Shiyan〞中。
点击【下一步】,弹出如图5所示对话框,在此对话框中输入三线八线译码器〔LS74138〕的的端口信息。
图5
点击【下一步】弹出【NewSourceInformation】对话框,在该对话框内显示了新建文
件的属性及信息,如图6所示。
图6
点击【完成】标签结束新建工程过程。
进入XilinxISE文本编写方式,在文本框中编
辑输入3线8线译码器的VHDL源程序。
优选文档
优选文档
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:
instd_logic;
INP:
instd_logic_vector(2downto0);
Y:
outstd_logic_vector(7downto0));
endls74138;
architectureBehavioralofls74138is
begin
process(G1,G2,INP)
begin
if((G1andG2)='1')then
caseINPis
when"000"=>Y<="00000001";when"001"=>Y<="00000010";
when"010"=>Y<="00000100";when"011"=>Y<="00001000";
when"100"=>Y<="00010000";when"101"=>Y<="00100000";
when"110"=>Y<="01000000";when"111"=>Y<="10000000";
whenothers=>Y<="00000000";endcase;
elseY<="00000000";
endif;endprocess;
endBehavioral;
在VHDL源程序中,G1和G2为两个使能控制信号,INP为命令码输入信号,Y为8
优选文档
优选文档
位译码输出信号。
〔2〕、设计文件存盘与语法检查
完成程序代码输入后单击高亮“ls74138-behavioral〞标签,此时工具窗口将显示“Process
forSource(ls74138-behavioral)〞。
用鼠标右键点击Process窗口中【CheckSyntax】标签,点
击运行选项,进行程序语法检查,当显示一绿色对号标志时即表示程序中不存在语法问题。
或双击【Synthesize-XST】当显示一绿色对号标志时即表示程序综合成功。
〔3〕、仿真文件设计
为了考据所设计电路功能,需要输入测试文件对电行程序功能进行测试。
在【Process】
菜单中选择【NewSource】选项,即可弹出对话框,选择【VHDLTestBench】增加测试向
量文件,并将文件增加到LS74138模块中
运行行为仿真选项卡【BehavioralSimulation】,在测试向量文件中填写代码,完成后
保存,XilinxISE自动调用仿真平台作为仿真工具。
运行ModelSimSE
6.1c,。
在【transcript】窗口中输入仿真时间。
在波形【Wave】窗口内使
用按钮实现仿真图的“放大〞“减小〞“全局〞功能,由图中时序及逻辑关系可知
该三线八线译码器行为仿真切常。
图11
优选文档
优选文档
测试向量参照程序以下:
--VHDLTestBenchCreatedfromsourcefilels74138.vhd--
--Notes:
--Thistestbenchhasbeenautomaticallygeneratedusingtypesstd_logicand
--std_logic_vectorfortheportsoftheunitundertest.Xilinxrecommends
--thatthesetypesalwaysbeusedforthetop-levelI/Oofadesigninorder
--toguaranteethatthetestbenchwillbindcorrectlytothe
post-implementation
LIBRARYieee;
USEieee.std_logic_1164.ALL;
USEieee.numeric_std.ALL;
ENTITYls74138_ls74138_vhd_tbIS
ENDls74138_ls74138_vhd_tb;
ARCHITECTUREbehaviorOFls74138_ls74138_vhd_tbIS
COMPONENTls74138
PORT(G1:
INstd_logic;
G2:
INstd_logic;
INP:
INstd_logic_vector(2downto0);
Y:
OUTstd_logic_vector(7downto0));
ENDCOMPONENT;
SIGNALG1:
std_logic;
SIGNALG2:
std_logic;
SIGNALINP:
std_logic_vector(2downto0);
SIGNALY:
std_logic_vector(7downto0);
BEGIN
uut:
ls74138PORTMAP(
G1=>G1,
G2=>G2,
INP=>INP,
Y=>Y
);
--***TestBench-UserDefinedSection***
u1:
PROCESSwaitfor15us;
BEGININP<="010";
G1<='0';waitfor15us;
优选文档
优选文档
waitfor15us;INP<="011";
G1<='1';waitfor15us;
waitfor100us;INP<="100";
G1<='0';waitfor15us;
waitfor15us;INP<="101";
G1<='1';waitfor15us;
wait;INP<="110";
ENDPROCESSu1;waitfor15us;
u2:
PROCESSINP<="111";
BEGINwaitfor30us;
G2<='0';INP<="000";
waitfor15us;wait;
G2<='1';endPROCESSu3;
waitfor100us;--***EndTestBench-UserDefinedSection***
G2<='0';ENDbehavior;
waitfor15us;
G2<='1';
wait;
ENDPROCESSu2;
u3:
PROCESS
BEGIN
INP<="000";
waitfor30us;
INP<="001";
〔4〕芯片管脚定义
优选文档
优选文档
如前所述增加用户定义限制文件,运行【AssignPackagePins】选项卡,XilinxISE
将弹出管脚分配窗口,输入各个端口管脚地址并保存,完成芯片管脚定义。
〔5〕编译与综合
图16图17
运行【ProcessforSource】中的【ImplementDesign】〔图16〕,ISE将自动完成编译
优选文档
优选文档
并调用内嵌的综合工具XST完成综合过程,运行结果如图17所示。
编译通过后即自动生成了电路烧录下载文件〔*.jed〕以及资源耗资报告,经过该报告
即可认识所设计电路的资源耗资情况。
由图可知,在三线八线译码器〔74LS138〕的设计中使用了8个宏单元,9个乘积项,8
个存放器单元,13个用户引脚及5个功能输入块。
2、元件的生成、调用和仿真
新建原理图文件,命名为“Sch_LS74138〞并增加到工程“Shiyan〞中。
点击【下一步】完
成原理图文件的创立。
在弹出的原理图编写框内选择【Symbols】标签,在其目录列表内显
示了所有可用电路器件,其中包括了我们所设计的LS74138。
双击“ls74138〞将其放置到原理图编写区内。
点击为器件增加外面端口。
将原理图文件保存后返回【XilinxProjectNavigator】平台,此时已经将程序所设计的器
件“LS74138〞配置给了原理图文件“sch_ls74138〞。
优选文档
优选文档
实验二组合逻辑电路的VHDL语言实现
一、实验目的:
1、掌握VHDL语言设计根本单元及其构成
2、掌握用VHDL语言设计根本的组合逻辑电路的方法。
二、实验器材:
计算机、QuartusII软件或XilinxISE
三、实验内容:
1、以四选一选择器为例,在XilinxISE软件平台上完成设计电路的VHDL文本输入,编写,
编译,仿真,管脚分配和编程下载等操作。
四、实验步骤:
〔一〕、用VHDL语言实现四选一选择器的设计并实现功
能仿真。
选择器常用于信号的切换,四选一选择器可以用于
4路
信号的切换。
其真值表以下所示:
表3
四选一真值表
选择输入
数据输入
数据输出
b
a
Input0
Input1
Input2
Input3
y
0
0
0
x
x
x
0
0
0
1
x
x
x
1
0
1
x
0
x
x
0
0
1
x
1
x
x
1
1
0
x
x
0
x
0
1
0
x
x
1
x
1
1
1
x
x
x
0
0
1
1
x
x
x
1
1
用VHDL语言实现四选一选择器的设计并实现功能仿真。
参照程序以下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYmux4IS
PORT(INPUT:
INSTD_LOGIC_VECTOR(3DOWNTO0);
优选文档
优选文档
A,B:
INSTD_LOGIC;
Y:
OUTSTD_LOGIC);
ENDmux4;
ARCHITECTURErt1OFmux4IS
SIGNALse1:
STD_LOGIC_VECTOR(1DOWNTO0);
BEGIN
se1<=B&A;
PROCESS(INPUT,se1)
BEGIN
IF(se1="00")THEN
y<=INPUT(0);
ELSIF(se1="01")THEN
y<=INPUT
(1);
ELSIF(se1="10")THEN
y<=INPUT
(2);
ELSE
y<=INPUT(3);
ENDIF;
ENDPROCESS;
ENDrt1;
测试向量程序以下:
––
--Notes:
--Thistestbenchhasbeenautomaticallygeneratedusingtypesstd_logicand
--std_logic_vectorfortheportsoftheunitundertest.Xilinxrecommends
--thatthesetypesalwaysbeusedforthetop-levelI/Oofadesigninorder
--toguaranteethatthetestbenchwillbindcorrectlytothepost-implementation
--simulationmodel.
LIBRARYieee;
USEieee.std_logic_1164.ALL;
USEieee.numeric_std.ALL;
ENTITYmux4_mux4_vhd_tbIS
ENDmux4_mux4_vhd_tb;
ARCHITECTUREbehaviorOFmux4_mux4_vhd_tbIS
COMPONENTmux4
PORT(
INPUT:
INstd_logic_vector(3downto0);
A:
INstd_logic;
B:
INstd_logic;
Y:
OUTstd_logic
);
ENDCOMPONENT;
SIGNALINPUT:
std_logic_vector(3downto0);
SIGNALA:
std_logic;
优选文档
优选文档
SIGNALB:
std_logic;
SIGNALY:
std_logic;
BEGIN
uut:
mux4PORTMAP(
INPUT=>INPUT,
A=>A,
B=>B,
Y=>Y
);
--***TestBench-UserDefinedSection***
u1:
PROCESSBEGIN
A<='0';B<='1';
waitfor15us;waitfor5us;
A<='1';B<='0';
waitfor15us;waitfor5us;
A<='0';B<='1';
waitfor5us;wait;
A<='1';endprocessu2;
waitfor5us;u3:
process
A<='0';begin
wait;INPUT<="1101";
ENDPROCESSu1;waitfor10us;
u2:
processINPUT<="1010";
beginwaitfor10us;
B<='0';INPUT<="0111";
waitfor10us;waitfor20us;
B<='1';INPUT<="0001";
waitfor20us;waitfor10us;
B<='0';INPUT<="0010";
waitfor5us;wait;
endprocessu3;
--***EndTestBench-UserDefinedSection***
ENDbehavior;
仿真结果以以下列图:
优选文档
优选文档
实验三时序逻辑电路的VHDL语言实验
一、实验目的:
1、掌握用VHDL语言设计根本的时序逻辑电路及仿真。
2、掌握VHDL序次语句和并行语句的异同
3、掌握触发器同步复位和异步复位的实现方式。
4、掌握软件时钟的参加方法。
二、实验器材:
计算机、QuartusII软件或xilinxISE
三、实验内容:
1、设计带使能的递加计数器
2、在步骤1的基础上设计一带使能的同步〔异步〕复位的递加〔递减〕计数器
四、实验步骤:
参照程序:
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityycounteris
port(clk,clear,ld,enable:
instd_logic;
d:
instd_logic_vector(7downto0);
qk:
outstd_logic_vector(7downto0));
endycounter;
architecturea_ycounterofycounteris
begin
PROCESS(clk)
VARIABLEcnt:
std_logic_vector(7downto0);
BEGIN
IF(clk'EVENTANDclk='1')THEN
IF(clear='0')THEN
cnt:
="00000000";ELSE
IF(ld='0')THENcnt:
=d;
ELSEIF(enable='1')THEN
cnt:
=cnt+"00000001";ENDIF;
ENDIF;ENDIF;
ENDIF;qk<=cnt;
ENDPROCESS;enda_ycounter;
测试向量以下:
--VHDLTestBenchCreatedfromsourcefileycounter.vhd--16:
50:
5503/24/2021
--Notes:
--Thistestbenchhasbeenautomaticallygeneratedusingtypesstd_logicand
--std_logic_vectorfortheportsoftheunitundertest.Xilinxrecommends
--thatthesetypesalwaysbeusedforthetop-levelI/Oofadesigninorder
--toguaranteethatthetestbenchwillbindcorrectlytothepost-implementation
--simulationmodel.
优选文档
优选文档
LIBRARYieee;
USEieee.std_logic_1164.ALL;
USEieee.numeric_std.ALL;
ENTITYycounter_a_ycounter_vhd_tbIS
ENDycounter_a_ycounter_vhd_tb;
ARCHITECTUREbehaviorOFycounter_a_ycounter_vhd_tbISCOMPONENTycounter
PORT(
clk:
INstd_logic;
clear:
INstd_logic;
ld:
INstd_logic;
enable:
INstd_logic;
d:
INstd_logic_vector(7downto0);
qk:
OUTstd_logic_vector(7downto0)
);
ENDCOMPONENT;
constantclk_cycle:
time:
=20us;
SIGNALclk:
std_logic;
SIGNALclear:
std_logic;
SIGNALld:
std_logic;
SIGNALenable:
std_logic;
SIGNALd:
std_logic_vector(7downto0);
SIGNALqk:
std_logic_vector(7downto0);
BEGIN
uut:
ycounterPORTMAP(
clk=>clk,
clear=>clear,
ld=>ld,
enable=>enable,
d=>d,
qk=>qk
);
--***TestBench-UserDefi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 专用 集成电路