专用集成电路Word文档下载推荐.docx

上传人:b****6 文档编号:21606179 上传时间:2023-01-31 格式:DOCX 页数:25 大小:22.92KB
下载 相关 举报
专用集成电路Word文档下载推荐.docx_第1页
第1页 / 共25页
专用集成电路Word文档下载推荐.docx_第2页
第2页 / 共25页
专用集成电路Word文档下载推荐.docx_第3页
第3页 / 共25页
专用集成电路Word文档下载推荐.docx_第4页
第4页 / 共25页
专用集成电路Word文档下载推荐.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

专用集成电路Word文档下载推荐.docx

《专用集成电路Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《专用集成电路Word文档下载推荐.docx(25页珍藏版)》请在冰豆网上搜索。

专用集成电路Word文档下载推荐.docx

件的属性及信息,如图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:

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;

elseY<

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;

INstd_logic_vector(2downto0);

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:

PROCESSwaitfor15us;

BEGININP<

G1<

='

0'

waitfor15us;

waitfor15us;

INP<

waitfor100us;

wait;

ENDPROCESSu1;

u2:

PROCESSINP<

BEGINwaitfor30us;

G2<

wait;

endPROCESSu3;

--***EndTestBench-UserDefinedSection***

ENDbehavior;

ENDPROCESSu2;

u3:

PROCESS

INP<

waitfor30us;

〔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

x

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);

se1<

=B&

A;

PROCESS(INPUT,se1)

IF(se1="

00"

)THEN

y<

=INPUT(0);

ELSIF(se1="

01"

=INPUT

(1);

10"

=INPUT

(2);

ELSE

=INPUT(3);

ENDIF;

ENDPROCESS;

ENDrt1;

测试向量程序以下:

––

--toguaranteethatthetestbenchwillbindcorrectlytothepost-implementation

--simulationmodel.

ENTITYmux4_mux4_vhd_tbIS

ENDmux4_mux4_vhd_tb;

ARCHITECTUREbehaviorOFmux4_mux4_vhd_tbIS

COMPONENTmux4

PORT(

INPUT:

INstd_logic_vector(3downto0);

A:

B:

OUTstd_logic

SIGNALINPUT:

std_logic_vector(3downto0);

SIGNALA:

SIGNALB:

mux4PORTMAP(

INPUT=>

INPUT,

A=>

A,

B=>

B,

--***TestBench-UserDefinedSection***

PROCESSBEGIN

A<

B<

waitfor5us;

waitfor5us;

endprocessu2;

u3:

process

begin

INPUT<

1101"

waitfor10us;

processINPUT<

1010"

beginwaitfor10us;

B<

INPUT<

0111"

waitfor10us;

waitfor20us;

0001"

waitfor20us;

0010"

wait;

endprocessu3;

--***EndTestBench-UserDefinedSection***

ENDbehavior;

仿真结果以以下列图:

实验三时序逻辑电路的VHDL语言实验

1、掌握用VHDL语言设计根本的时序逻辑电路及仿真。

2、掌握VHDL序次语句和并行语句的异同

3、掌握触发器同步复位和异步复位的实现方式。

4、掌握软件时钟的参加方法。

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

PROCESS(clk)

VARIABLEcnt:

std_logic_vector(7downto0);

IF(clk'

EVENTANDclk='

)THEN

IF(clear='

cnt:

="

ELSE

IF(ld='

)THENcnt:

=d;

ELSEIF(enable='

=cnt+"

ENDIF;

qk<

=cnt;

enda_ycounter;

测试向量以下:

--VHDLTestBenchCreatedfromsourcefileycounter.vhd--16:

50:

5503/24/2021

ENTITYycounter_a_ycounter_vhd_tbIS

ENDycounter_a_ycounter_vhd_tb;

ARCHITECTUREbehaviorOFycounter_a_ycounter_vhd_tbISCOMPONENTycounter

clk:

clear:

ld:

enable:

d:

INstd_logic_vector(7downto0);

qk:

OUTstd_logic_vector(7downto0)

constantclk_cycle:

time:

=20us;

SIGNALclk:

SIGNALclear:

SIGNALld:

SIGNALenable:

SIGNALd:

SIGNALqk:

ycounterPORTMAP(

clk=>

clk,

clear=>

clear,

ld=>

ld,

enable=>

enable,

d=>

d,

qk=>

qk

--***TestBench-UserDefi

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1