电子科技大学EDA技术课件 3_3.pptx
《电子科技大学EDA技术课件 3_3.pptx》由会员分享,可在线阅读,更多相关《电子科技大学EDA技术课件 3_3.pptx(86页珍藏版)》请在冰豆网上搜索。
![电子科技大学EDA技术课件 3_3.pptx](https://file1.bdocx.com/fileroot1/2022-10/2/5e7d9f1c-3c33-4c66-a3ad-09574dfff302/5e7d9f1c-3c33-4c66-a3ad-09574dfff3021.gif)
libraryieee;useieee.std_logic_1164.all;entitytestisport(clk:
instd_logic;count:
outstd_logic_vector(3downto0);endtest;architecturertloftestisbeginifclkeventandclk=1thencount=count+1;endif;endrtl;,libraryieee;useieee.std_logic_1164.all;entitytestisport(d1,d2:
instd_logic;sel:
instd_logic;q:
outstd_logic);endtest;architecturertloftestisbeginprocess(d1,d2,sel)beginq=d1whensel=0elsed2;endprocess;endrtl;,1,常见错误:
基本逻辑电路:
组合逻辑电路、时序逻辑电路3.9.1组合逻辑电路设计简单门电路、编码器、译码器、加法器、多路选择器、三态门等。
2,3.9基本逻辑电路设计,1、基本门电路,3,2、编码器,设计一个8输入优先级编码器,y0级别最低,y7级别最高;输出为3位编码。
4,方法1:
利用if多选择语句自顶向下的优先特,性,5,方法2:
进程内为顺序语句,最先描述优先级最低,最后描述优先级最高,可实现优先级编,码。
6,方法3:
利用条件赋值语句architecturebehaviorofpriorityisbeginvec=“111”wheny7=1else“110”wheny6=1else“101”wheny5=1else“100”wheny4=1else“011”wheny3=1else“010”wheny2=1else“001”wheny1=1else“000”wheny0=1else“XXX”;endbehavior;,7,3、译码器译码器是编码器的逆过程。
如3-8译码器:
8,方法1:
使用逻辑左移运算符libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitydecoderisport(inp:
instd_logic_vector(2downto0);outp:
outstd_logic_vector(7downto0);enddecoder;architecturertlofdecoderisbeginoutp=“00000001”sll(conv_integer(inp);endrtl;,9,方法2:
使用process语句libraryieee;,useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitydecoderisport(inp:
instd_logic_vector(2downto0);outp:
outstd_logic_vector(7downto0);enddecoder;architecturertlofdecoderisbeginprocess(inp)beginoutp0);outp(conv_integer(inp)=1;endprocess;endrtl;,10,方法3:
使用case语句实现。
11,译码输出低有效,12,方法4:
使用条件赋值语句,13,3-8译码器仿真结果:
译码输出低有效,14,4、加法器带进位的4位加法器符号如下:
15,方法1:
用forloop语句实现,16,17,方法2:
直接使用加法“+”函数:
18,19,加法器仿真结果:
20,5、多路选择器,前面用if语句、case语句、条件赋值语句、选择赋值语句分别描述过4选1选择器。
6、三态门及总线缓冲器VHDL语言通过指定大写的Z值表示高阻状态a:
std_logic;a_bus:
std_logic_vector(7downto0);指定高阻状态如下:
a=Z;,a_bus=“ZZZZZZZZ”;,21,1)三态门电路描述,22,三态门仿真结果:
23,2)单向总线缓冲器,24,3)双向总线缓冲器,25,26,3.9.2时序逻辑电路设计,27,触发器、寄存器、计数器、分频器、信号发生器等。
一、时序电路特殊信号的描述时钟信号和复位信号1、时钟信号描述常用的描述方式:
1)进程的敏感信号是时钟信号,在进程内部用if语句描述时钟的边沿条件。
如:
process(clock_signal)beginif(clock_edge_condition)thensignal_out=signal_in;其它时序语句endif;endprocess;,28,2)在进程中用waituntil语句描述时钟信号,此时进程将没有敏感信号。
如:
processbeginwaituntil(clock_edge_condition);signal_out=signal_in;其它时序语句endprocess;,29,注意:
在对时钟边沿说明时,一定要注明是上升沿还是下降沿。
一个进程中只能描述一个时钟信号。
Waituntil语句只能放在进程的最前面或最后面。
3)时钟边沿的描述时钟上升沿:
(clockeventandclock=1)时钟下降沿:
(clockeventandclock=0),30,2、触发器的复位信号描述1)同步复位:
在只有以时钟为敏感信号的进程中定义。
如:
process(clock_signal)beginif(clock_edge_condition)thenif(reset_condition)thensignal_out=reset_value;elsesignal_out=signal_in;endif;endif;,end,process;,31,2)异步复位:
进程的敏感信号表中除时钟信号外,还有复位信号。
如:
process(reset_signal,clock_signal)beginif(reset_condition)thensignal_out=reset_value;elsif(clock_edge_condition)thensignal_out=signal_in;endif;,end,process;,32,二、常用时序电路设计1、触发器(Flip_Flop)1)D触发器,33,异步置位/复位D触发器,34,同步复位D触发器,35,比较:
异步置位的锁存器(Latch),36,2)T触发器libraryieee;useieee.std_logic_1164.all;entityt_ffis,port(t,clk:
instd_logic;q:
bufferstd_logic);endt_ff;architecturertloft_ffisbeginprocess(clk)beginifclkeventandclk=1thenq=notq;endif;endprocess;endrtl;,37,2、寄存器8位串行输入、串行输出移位寄存器:
38,方法一:
8位移位寄存器的结构化描述,39,方法二:
直接用信号连接描述,40,41,移位寄存器仿真结果:
42,3、计数器,43,计数器分为:
同步计数器异步计数器
(1)同步计数器同步计数器指在时钟脉冲(计数脉冲)的控制下,构成计数器的各触发器状态同时发生变化的计数器。
带允许端的十二进制计数器,44,45,可逆计数器(加减计数器),46,47,可逆计数器仿真结果:
48,例:
六十进制(分、秒)计数器,49,50,60进制计数器仿真结果:
51,
(2)异步计数器,异步计数器又称为行波计数器,它的低位计数器的输出作为高位计数器的时钟信号。
异步计数器采用行波计数,使计数延迟增加,计数器工作频率较低。
描述异步计数器与同步计数器的不同主要体,现在对各级时钟脉冲的描述上。
52,例:
由8个触发器构成的行波计数器:
53,基本元件dffr的描述:
54,采用元件例化描述8位行波计数器:
55,8位行波计数器仿真结果:
56,4、序列信号发生器、检测器1)“01111110”序列发生器,57,58,59,60,仿真结果:
61,2)序列信号检测器,检测“01111110”,62,63,64,65,简洁的序列信号检测器:
66,67,3.9.3存储器设计,1、RO,M,68,69,2、SRAM,70,71,72,仿真结果:
73,3.10状态机的VHDL设计,74,状态机的分类:
摩尔型状态机(Moore)米勒型状态机(Mealy),3.10.1摩尔状态机的VHDL设计,次态逻辑,状态,寄存器,输出,逻辑,摩尔型状态机的输出仅与当前状态有关复位信号,时钟信号,输入,次态,75,当前状态,输出,摩尔型状态机真值表:
76,77,78,79,80,3.10.2米勒状态机的VHDL设计,次态逻辑,状态,寄存器,输出,逻辑,米勒型状态机的输出不仅是当前状态的函数,也是输入信号的函数。
复位信号,时钟信号,输入,次态,当前状态,输出,81,米勒型状态机真值表:
82,83,84,85,86,