EDA总复习Word格式.docx
- 文档编号:20625155
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:49
- 大小:161.57KB
EDA总复习Word格式.docx
《EDA总复习Word格式.docx》由会员分享,可在线阅读,更多相关《EDA总复习Word格式.docx(49页珍藏版)》请在冰豆网上搜索。
第三章
1、名词解释:
LUT:
LookUpTable(可编程查找表)
SARM:
静态随机存储器
2.FPGA-FieldProgrammableGateArray
CPLD-ComplexProgrammableLogicDevice
3.乘积项可编程结构--可编程逻辑器件(PLD)
SRAM查找表逻辑方法--可编程门阵列(PGA)
4.PAL(可编程阵列逻辑)
与阵列可编程
或阵列不可编程
GAL(通用阵列逻辑器件)(GeneralArrayLogicDevice)
第四章
◆实例:
多路选择器设计,触发器设计,异步时序电路设计,全加器设计,计数器设计,移位寄存器设计
1、多路选择器设计
4选1的多路选择器原理:
名称:
mux41
端口设置:
输入端:
a,b,c,d
选择控制输入端:
s0,s1
输出端:
y
实现功能:
当s0s1=00时选择输出y=a;
否则当s0s1=01时选择输出y=b;
否则当s0s1=10时选择输出y=c;
否则选择输出y=d。
ENTITYmux41IS
PORT(a,b,c,d,s0,s1:
INBIT;
y:
OUTBIT);
ENDENTITYmux41;
ARCHITECTUREoneOFmux41IS
BEGIN
y<
=aWHENs0='
0'
ands1='
ELSE
bWHENs0='
ands1='
1'
cWHENs0='
ands1=‘0'
d;
ENDARCHITECTUREone;
2、D触发器设计
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYDFF1IS
PORT(CLK:
INSTD_LOGIC;
D:
Q:
OUTSTD_LOGIC);
END;
ARCHITECTUREbhvOFDFF1IS
SIGNALQ1:
STD_LOGIC;
--类似于在芯片内部定义一个数据的暂存节点
PROCESS(CLK)
IFCLK'
EVENTANDCLK='
THENQ1<
=D;
ENDIF;
Q<
=Q1;
--将内部的暂存数据向端口输出
ENDPROCESS;
ENDbhv;
3、时序电路设计
…
ARCHITECTUREbhvOFMULTI_DFFIS
SIGNALQ1,Q2:
STD_LOGIC;
PRO1:
EVENTANDCLK='
=NOT(Q2ORA);
PRO2:
PROCESS(Q1)
IFQ1'
EVENTANDQ1='
THENQ2<
=D;
QQ<
=Q2;
4、半加器设计
absoco
0000
0110
1010
1101
【例4-16】
LIBRARYIEEE;
--半加器描述
(1):
布尔方程描述法
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYh_adderIS
PORT(a,b:
INSTD_LOGIC;
co,so:
OUTSTD_LOGIC);
ENDENTITYh_adder;
ARCHITECTUREfh1OFh_adderis
BEGIN
so<
=NOT(aXOR(NOTb));
co<
=aANDb;
ENDARCHITECTUREfh1;
【例4-17】
--半加器描述
(2):
真值表描述法
PORT(a,b:
SIGNALabc:
STD_LOGIC_VECTOR(1DOWNTO0);
BEGIN
abc<
=a&
b;
PROCESS(abc)
CASEabcIS
WHEN"
00"
=>
so<
='
;
co<
;
01"
10"
11"
WHENOTHERS=>
NULL;
ENDCASE;
ENDPROCESS;
ENDARCHITECTUREfh1;
【例4-19】
LIBRARYIEEE;
--1位二进制全加器顶层设计描述
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYf_adderIS
PORT(ain,bin,cin:
cout,sum:
ENDENTITYf_adder;
ARCHITECTUREfd1OFf_adderIS
COMPONENTh_adder
PORT(a,b:
co,so:
ENDCOMPONENT;
COMPONENTor2a
PORT(a,b:
c:
ENDCOMPONENT;
SIGNALd,e,f:
u1:
h_adderPORTMAP(a=>
ain,b=>
bin,co=>
d,so=>
e);
u2:
e,b=>
cin,co=>
f,so=>
sum);
u3:
or2aPORTMAP(a=>
d,b=>
f,c=>
cout);
ENDARCHITECTUREfd1;
5、多路选择器设计
PORT(a,b,c,d,s0,s1:
SIGNALss:
Process(a,b,c,d,s0,s1)
ss<
=s0&
s1;
•CASEssIS
•WHEN"
=a;
=b;
=c;
=d;
•WHENOTHERS=>
•ENDCASE;
6、利用QUARTUSⅡ库中元器件D触发器(图形符号见图1)和元件例化,完成如下图所示的电路设计。
LIBRARYieee;
USEieee.std_logic_1164.ALL;
ENTITYshifterIS
PORT(din,clk:
INstd_logic;
dout:
OUTstd_logic);
ENDshifter;
ARCHITECTUREaOFshifterIS
COMPONENTdff
PORT(D,clk:
Q:
ENDCOMPONENT;
SIGNALd:
std_logic_vector(4DOWNTO0);
d(0)<
=din;
U0:
dffPORTMAP(D=>
d(0),clk=>
clk,Q=>
d
(1));
U1:
d
(1),clk=>
d
(2));
U2:
d
(2),clk=>
d(3));
U3:
d(3),clk=>
d(4));
dout<
=d(4);
ENDa;
6、计数器的设计
【例4-21】
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
--运算符重载函数
ENTITYCNT4IS
PORT(CLK:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ARCHITECTUREbhvOFCNT4IS
SIGNALQ1:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
PROCESS(CLK)
THEN
Q1<
=Q1+1;
【例4-20】
ENTITYCNT4IS
INBIT;
BUFFERINTEGERRANGE15DOWNTO0);
END;
ARCHITECTUREbhvOFCNT4IS
=Q+1;
ENDbhv;
带有异步复位和同步使能的10进制计数器
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYCNT10IS
PORT(CLK,RST,EN:
CQ:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
COUT:
ENDCNT10;
ARCHITECTUREbehavOFCNT10IS
PROCESS(CLK,RST,EN)
VARIABLECQI:
IFRST='
THENCQI:
=(OTHERS=>
'
);
--计数器复位
ELSIFCLK'
THEN--检测时钟上升沿
IFEN='
THEN--检测是否允许计数
IFCQI<
"
1001"
THENCQI:
=CQI+1;
--允许计数
ELSECQI:
=(OTHERS=>
--大于9,计数值清零
IFCQI="
THENCOUT<
='
--计数大于9,输出进位信号
ELSECOUT<
CQ<
=CQI;
--将计数值向端口输出
ENDbehav;
练习:
1:
设计一个带有异步清零和同步使能端的3位增1/减1计数器:
当输入信号UP等于1时计数器增1;
当输入信号UP等于0时计数器减1。
输出为计数后的值及进位信号。
Libraryieee;
Useieee.std_logic_1164.all;
Useieee.std_logic_unsigned.all;
Entityup_downis
Port(clk,rst,en,up:
instd_logic;
Sum:
outstd_logic_vector(2downto0);
Cout:
outstd_logic);
End;
Architectureaofup_downis
Signalcount:
std_logic_vector(2downto0);
--定义信号
Begin
Process(clk,rst)--进程,敏感信号
Begin
Ifrst=’0’thenCount<
=(others=>
’0’);
--异步清零
Elsifrising_edge(clk)then--如果上升沿
Ifen=’1’then
Caseupis
When‘1’=>
count<
=count+1;
Whenothers=>
count<
=count-1;
Endcase;
Endif;
Endprocess;
Sum<
=count;
Cout<
=’1’whenen=’1’and((up=’1’andcount=7)or(up=’0’andcount=0))
else‘0’;
--进位信号
习题:
4.7设计含有异步清零和设计使能的16位二进制加减可控计数器
Port(clk,rst,en,up:
outstd_logic_vector(15downto0);
std_logic_vector(15downto0);
Ifrst=’0’thencount<
设计一个带有同步并行加载功能的8位右移移位寄存器,其移空位用输入端sda的值来填补。
PORT(clk,sda,load:
Din:
instd_logic_vector(7downto0);
QB:
OUTstd_logic_vector(7downto0));
ARCHITECTUREbehaveOFshifterIS
SIGNALreg:
std_logic_vector(7downto0);
PROCESS(clk,load)
ifclk’eventandclk=‘1’then
ifloda=‘1’thenreg<
=din;
elsereg<
=sda&
Din(7downto1);
endif;
endprocess;
QB<
=reg;
Endbehav;
习题4.4
如上图是一个含有上升沿触发的D触发器的时序电路,试写出此电路的VHDL设计文件
设计一个JK触发器
ENTITYJKff_v1IS
PORT(J,K:
clk:
set:
reset:
Q,QB:
ENDJKff_v1;
ARCHITECTUREbehaveOFJKff_v1IS
SIGNALQ_temp,QB_temp:
PROCESS(clk,set,reset)
IF(set='
ANDreset='
)THEN
Q_temp<
QB_temp<
ELSIF(set='
ELSIF(clk'
EVENTANDclk='
IF(J='
ANDK='
)THEN
ELSIF(J='
ANDK='
=NOTQ_temp;
=NOTQB_temp;
=Q_temp;
=QB_temp;
ENDbehave;
第六章
1、信号与变量的异同
相同点:
从硬件电路系统来看,变量和信号相当于逻辑电路系统中的连线和连线上的信号值,常量相当于独立中的恒定电平,如GND或者VCC。
区别:
接受与保持信号的方式和信息保持与传递的区域大小上。
例如
信号可以设置传输延迟量,而变量不能;
2、进程中的信号与变量赋值语句
【例6-1】
ENTITYDFF3IS
PORT(CLK,D1:
Q1:
ARCHITECTUREbhvOFDFF3IS
VARIABLEQQ:
STD_LOGIC;
QQ:
=D1;
=QQ;
【例6-2】
...
SIGNALQQ:
EVENTANDCLK='
例6—8带进位循环左移(8位移位寄存器)
ENTITYSHIFTIS
PORT(CLK,CO:
--时钟和进位输入
MD:
INSTD_LOGIC_VECTOR(2DOWNTO0);
--移位模式控制字
INSTD_LOGIC_VECTOR(7DOWNTO0);
--待加载移位的数据
QB:
OUTSTD_LOGIC_VECTOR(7DOWNTO0);
--移位数据输出
CN:
OUTSTA_LOGIC);
--进位输出
ENDENTITY;
ARCHITECTUREbehavOFSHIFTIS
SIGNALREG:
STD_LOGIC_VECTOR(7DOWNTO0);
SIGNALCY:
PROCESS(CLK,MD,CO)
BEGI
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 复习