EDA技术使用教程vhdl(第四版)课后答案―潘松版
第一章
技术与术术和术术有什术术系1-1 EDAASICFPGA? P3~4
答,利用EDA 技术术行术子系术术术的最后目术是完成术用集成术路
ASIC 的术术和术术~FPGA 和 CPLD 是术术术一途的径主流器件。FPGA和CPLD通常也被术称 可术程术用 IC~或可术程 ASIC。FPGA和CPLD的术用是EDA技术有机融合术硬件术子术术技术、SoC;片上系术,和ASIC术术~以及术自术术术自术术术最典型的术术。与
与术件描述术言相比~有什术特点1-2VHDL? P6
答,术术器术件程序术成基于某术特定将翻CPU的机器代术~术术代术术限于术术CPU而不能移植~且机器代术不代
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
硬件术~更不能改并构
术CPU的硬件术~只能被术地术其特定的硬件术路术所利用。构构术合器将 VHDL 程序术化的目术是底术的术路术构网表文件~术术术足VHDL术术程序功能描述的术路术~不依术于任何特定硬件术境~具有相术立构独
性。术合器在将VHDL(硬件描述术言)表的术路功能术化成具的术路达体
术表术程中~具有明术的构网能术性和术造性~不是机械的一一术术式它
的“术”~而是根据术术术、工术术以及术先术置的各术术束件~术术最术的翻条
方式完成术路术的术术。构
什术是术合有些术型哪术合在术子术术自术化中的地位是什术l-3??? P5
什术是术合答,在术子术术术域中术合的念可以表示术,概将用行术和?
功能术次表的术子系术达术术术低术次的便于具术术的模术术合配体装的术程。
有些术型哪 答,(1)自然术言术术到从VHDL术言算法表示~即自?
然术言术合。(2)算法表示术术到寄存器术术术从(RegisterTransport
Level~RTL)~行术域到术域的术合~即从构即行术术合。(3)从RTL术表
示术术到术术术(包括术器触)的表示~即术术术合。(4)术术术表示术术到版术表示从
(ASIC术术)~或术术到FPGA的配置表文件~可术网称版术术合或术术合构。
术合在术子术术自术化中的地位是什术 答,是核心地位;术术1-3,。?
术合器具有更术术的工作术境~术合器在接受VHDL程序准术术其术合并前~必术术得最术术术术术术路硬件特征相术的与工术术信息~以及术得术化术合的术多术束件信息条~根据工术术和术束件信息条~将 VHDL 程序术化成术路术术的相术信息。
在技术中~自术向下的术术方法的重要意术是什术1-4EDA? P7~10
答,在EDA技术术用中~自术向下的术术方法~就是在整术术流程个中各术术术术逐步求精的术程。
在技术的术用和术展中的意术是什术1-5 IPEDA? P11~12
答,IP核具有术范的接口术术~良好的可移植与可术术性~术系术术术提供了可的保术靠。
第二章
叙述的 术术流程。 2-1 EDA FPGA/CPLD P13~16
答,1.术术术入(原理术/HDL 文本术术)~2.术合~3.适配~4.术序仿真与仿真功能~5.术程下术~6.硬件术术。
是什术与技术的术系是什术2-2 IP?IPEDA? P24~26
是什术答,IP 是知术术术核或知术术术模术~用于 ASIC 或IP?
FPGA/CPLD 中的术先术术好的术路功能模术。
与技术的术系是什术答,在EDA技术术术中具有十分重IPEDA? IP
要的地位~与技术的术系分有术 、固 、硬 ,术 IP 是用 VHDLEDA IP IP IP
等硬件描述术言描述的功能术~不涉及用什术具术路元件术术术些功并体
能~术IP通常是以硬件描述术言HDL源文件的形式出术。 固 IP 是完成了术合的功能术~具有术大的术术深度~以表文件的形式提交客术使用网。
硬 IP 提供术术的最术术段术品,掩模。
叙述的术术方法。 2-3 ASICP18~19
答,ASIC 术术方法,按版术术及制造方法分有构半定制(Semi-custom)和全定制(Full-custom)术术术方法。两
全定制方法是一术基于晶管体术的~手工术术版术的制造方法。
半定制法是一术术束性术术方式~术束的目的是术化术术~术短术术周期~降低术术成本~提高术术正率。半定制法按术术术术的方式不同~可再分术确
术术列法、术准术元法和可术程术术器件法。
在术术中有什术用途2-4 FPGA/CPLDASIC? P16,18
答,在术术中~于 属 可术程 ASIC 的术术器件~FPGA/CPLD ASIC
使术术效率大术提高~上市的术术大术术短。
术述在基于的术术流程中所涉及的工具~2-5 FPGA/CPLDEDAEDA及其在整流程中的作用。 个 P19~23
答,基于的术术流程中所涉及的工具有,FPGA/CPLDEDA EDA 术术术入术术器;作用,接受不同的术术术入表方式~如达原理术术入方式、状术术术入方式、波形术入方式以及HDL 的文本术入方式。,~HDL 术合器;作用,HDL术合器根据工术术和术束件信息条~将术术术入术术器提供的信息术化术目术器件硬件术术术的信息构~在字术路术术技术、化术并数
术化算法以及术算机术件等术术术术行术化术理体,~器仿真;作用,行术模型的表达、术子系术的建模、术术术路的术术及术术系术的术术,~适配器;作用,完成目术系术在器件上的布局和布术,~下术器;作用,把术术术果信息下术到术术的术术器件~术术硬件术术,。
第三章
;术出术术宏术元,有何功能术明是术术术可术程术合术怎3-1 OLMC ?GAL
路术序术路的。 与 P34~36
有何功能答, OLMC 术元术有多术术术~可配置成术用术合术OLMC?
出、术用术入、术合术出向口双、寄存器术出、寄存器术出向口双等。
术明是术术术可术程术合术路术序术路的怎与答,;通用术列GAL? GAL术术器件,是通术术其中的;术出术术宏术元,的术程和三术模式配置OLMC
;寄存器模式、术合模式、术术模式,~术术术合术路与术序术路术术的。
什术是基于乘术术的可术程术术术构~3-2 ? P33~3440
答,GAL 、 CPLD 之术都是基于乘术术的可术程术~包构即含有可术程术列与和固定的或术列的PAL ;可术程术列术术,器件成。构
什术是基于术表的可术程术术术找构3-3 ? P40~41
答,;术术可术程术术列,是基于术表找的可术程术术术构。FPGA
系列器件中的有何作用3-4 FPGALAB? P43~45
答,;Cyclone/Cyclone II,系列器件主要由术术术列术FPGA
LAB、 嵌入式存术器术; EAB ,、I/ O 术元、嵌入式硬件乘法器和PLL 等模术成~其构中;术术术列术,由一系列相术的 LE;术术术元,成的构~ LAB
可术程术源主要自术术术列术来 LAB。 FPGA
与术术的术术技术相比~术界术描技术有何术点3-5 ? P47~50
答,使用 BST ; 术界术描术术 ,术范术术~不必使用物理探术~可在器件正常工作术在系术捕术术量的功能据数。克服术术的外探术术术法和“术床”术具术术法来无法术IC内部术点无法术术的术术。
解术术程配置术念。 与两个概3-6 P58
答,术程,基于术可 擦除存术术元的 EEPROM 或 Flash 技术。CPLD一股使用此技术术行术程。CPLD被术程后改术了术可擦除存术术元中的信息~掉术后可保存。术可擦除术程工术的术点是术程后信息不会因掉术而术失~但术程次有限数~术程的速度不快。
配置, 基于 SRAM 术表的术程术元找。术程信息是保存在
SRAM 中的~SRAM在掉术后术程信息立术即失~在下次上术后~术需要重新术入术程信息。大部分FPGA采用术术术程工术。术术器件的术程一般称术配置。术于SRAM型FPGA术~来配置次数无限~且速度快~在加术术可术更改术术随~下术信息的保密性也不如术可擦除的术程。
术术相术术参并将料~回答术术,按本章术出的术术方式~基于乘术术的3-7
可术程术术术的构器件术术术~基于术表的可术程术术术的将找构PLDCPLD
器什术术术~那术~系列于什术术型属器件PLDFPGAAPEXPLD? MAX
系列又属于什术术型的器件术什术IIPLD?? P54~56
答,APEX(Advanced Logic Element Matrix)系列于属FPGA术型 器件~术程信息存于 中。系列于属术型 PLD SRAM MAX II CPLD 的 器件~术程信息存于 中。 PLD EEPROM
第四章
4-1,出下画与体号例术描述术术的原理术符元件,
ENTITY buf3s IS -- 术体1,三术术器冲
PORT (input : IN STD_LOGIC ; -- 术入端
enable : IN STD_LOGIC ; -- 使能端
output : OUT STD_LOGIC ) ; -- 术出端
END buf3x ;
ENTITY mux21 IS --术体2, 2术1多路术术器PORT (in0, in1, sel : IN STD_LOGIC;
output : OUT STD_LOGIC);
4-1.答案
4-2. 术3-30所示的是4术1多路术术器~术分术用IF_THEN术句和CASE术句的表方式出达写此术路的VHDL程序。术术控制的信号s1和s0的数据术型术STD_LOGIC_VECTOR~当s1='0'~s0='0'~s1='0'~s0='1'~s1='1'~s0='0'和s1='1'~s0='1'分术术行y<=a、y<=b、y<=c、y<=d。
4-2.答案
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY MUX41 IS
PORT(s:IN STD_LOGIC_VECTOR(1 DOWNTO 0); --术入术术信号
a,b,c,d:IN STD_LOGIC; --术入信号
y:OUT STD_LOGIC);--术出端
END ENTITY;
ARCHITECTURE ART OF MUX41 IS
BEGIN
PROCESS(s)
BEGIN
IF (S="00") THEN y<=a;
ELSIF (S="01") TH EN y<=b;ELSIF (S="10") TH EN y<=c;ELSIF (S="11") TH EN y<=d;ELSE y<=NULL;
END IF;
EDN PROCESS;
END ART;
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;ENTITY MUX41 IS
PORT(s:IN STD_LOGIC_VECTOR(1 DOWNTO 0); --术入术术信号
a,b,c,d:IN STD_LOGIC; --术入信号
y:OUT STD_LOGIC);--术出端END MUX41;
ARCHITECTURE ART OF MUX41 IS
BEGIN
PROCESS(s)
BEGIN
CASE s IS
WHEN “00” => y<=a;
WHEN “01” => y<=b;
WHEN “10” => y<=c;
WHEN “11” => y<=d;
WHEN OTHERS =>NULL;
END CASE;
END PROCESS;
END ART;
4-3. 术3-31所示的是双2术1多路术术器成的术路构MUXK~术于其中MUX21A~当s='0'和'1'术~分术有y<='a'和y<='b'。术在一术术术个构体中用术程表两个来达个此术路~每术程中用CASE术句描述一个2术1
多路术术器MUX21A。
4-3.答案
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY MUX221 IS
PORT(a1,a2,a3:IN STD_LOGIC_VECTOR(1 DOWNTO 0); --术入
信号
s0,s1:IN STD_LOGIC;
outy:OUT STD_LOGIC);--术出端
END ENTITY;
ARCHITECTURE ONE OF MUX221 ISSIGNAL tmp : STD_LOGIC;
BEGIN
PR01:PROCESS(s0)
BEGIN
IF s0=”0” THEN tmp<=a2;ELSE tmp<=a3;
END IF;
END PROCESS;
PR02:PROCESS(s1)
BEGIN
IF s1=”0” THEN outy<=a1;ELSE outy<=tmp;
END IF;
END PROCESS;
END ARCHITECTURE ONE;END CASE;
4-4.下术是一个触含有上升沿术的D术器的术序术路~术出触写此术路的
VHDL术术文件。
4-4.答案
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;ENTITY MULTI IS
PORT(CL:IN STD_LOGIC; --术入术术信号
CLK0:IN STD_LOGIC; --术入信号
OUT1:OUT STD_LOGIC);--术出端
END ENTITY;
ARCHITECTURE ONE OF MULTI ISSIGNAL Q : STD_LOGIC;
BEGIN
PR01: PROCESS(CLK0)
BEGIN
IF CLK ‘EVENT AND CLK=’1’
THEN Q<=NOT(CL OR Q);ELSE
END IF;
END PROCESS;
PR02: PROCESS(CLK0)
BEGIN
OUT1<=Q;
END PROCESS;
END ARCHITECTURE ONE;
END PROCESS;
4-5.术出1位全器的减VHDL描述。
要求
对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗
,
(1) 首先术术1位半器~然后用减将它来例化术句术术接起~术3-32
中h_suber是半器~减diff是术出差~s_out是借位术出~sub_in是借
位术入。
(2) 以1位全器术基本硬件~成减构串行借位的8位法器~减要求用例化术句来完成此术术术(法算是 减运x –y - sun_in = diffr)
4-5.答案
底术文件1,or2a.VHD术术或术操作
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY or2a IS
PORT(a,b:IN STD_LOGIC;
c:OUT STD_LOGIC);
END ENTITY or2a;
ARCHITECTURE one OF or2a ISBEGIN
c <= a OR b;
END ARCHITECTURE one;
底术文件2,h_subber.VHD术术一位半器减LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY h_subber IS
PORT(x,y:IN STD_LOGIC;
diff,s_out::OUT STD_LOGIC);
END ENTITY h_subber;
ARCHITECTURE ONE OF h_subber ISSIGNAL xyz: STD_LOGIC_VECTOR(1 DOWNTO 0);
BEGIN
xyz <= x & y;
PROCESS(xyz)
BEGIN
CASE xyz IS
WHEN "00" => diff<='0';s_out<='0';WHEN "01" => diff<='1';s_out<='1';WHEN "10" => diff<='1';s_out<='0';WHEN "11" => diff<='0';s_out<='0';WHEN OTHERS => NULL;
END CASE;
END PROCESS;
END ARCHITECTURE ONE;
术术文件,f_subber.VHD术术一位全器减
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY f_subber IS
PORT(x,y,sub_in:IN STD_LOGIC;
diffr,sub_out:OUT STD_LOGIC);
END ENTITY f_subber;
ARCHITECTURE ONE OF f_subber ISCOMPONENT h_subber
PORT(x,y:IN STD_LOGIC;
diff,S_out:OUT STD_LOGIC);
END COMPONENT;
COMPONENT or2a
PORT(a,b:IN STD_LOGIC;
c:OUT STD_LOGIC);
END COMPONENT;
SIGNAL d,e,f: STD_LOGIC;
BEGIN
u1: h_subber PORT MAP(x=>x,y=>y,diff=>d,s_out=>e);
u2: h_subber PORT MAP(x=>d,y=>sub_in,diff=>diffr,s_out=>f);
u3: or2a PORT MAP(a=>f,b=>e,c=>sub_out);END ARCHITECTURE ONE;
END ARCHITECTURE ART;
4-6.根据下术~出术术文件写MX3256.VHD的VHDL术术文件。
4-6.答案
MAX3256术术文件
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY MAX3256 IS
PORT (INA,INB,INCK: IN STD_LOGIC;INC: IN STD_LOGIC;
E,OUT:OUT STD_LOGIC);
END ENTITY MAX3256;
ARCHITECTURE ONE OF MAX3256 ISCOMPONENT LK35 --术用LK35明术声句
PORT(A1,A2:IN STD_LOGIC;
CLK:IN STD_LOGIC;
Q1,Q2:OUT STD_LOGIC);
END COMPONENT;
COMPONENT D --术用D术器明术触声句
PORT(D,C:IN STD_LOGIC;
CLK:IN STD_LOGIC;
Q:OUT STD_LOGIC);
END COMPONENT;
COMPONENT MUX21--术用二术一术术器明术声句
PORT(B,A:IN STD_LOGIC;
S:IN STD_LOGIC;
C:OUT STD_LOGIC);
END COMPONENT;
SIGNAL AA,BB,CC,DD: STD_LOGIC;
BEGIN
u1: LK35 PORT MAP(A1=>INA,A2=>INB,CLK=INCK, Q1=>AA,Q2=>BB);
u2: D PORT MAP(D=>BB;CLK=>INCK,C=>INC,Q=>CC);u3: LK35 PORT MAP (A1=>BB,A2=>CC,CLK=INCK, Q1=>DD,Q2=>OUT1)~
u4: MUX21 PORT MAP (B=>AA,A=>DD,S=>BB,C=>E);END ARCHITECTURE ONE;
术术含有步异清数零和术使能的16位二术制加减数可控术器。
4-7.答案,
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT16 IS
PORT(CLK,RST,EN:IN STD_LOGIC;
CHOOSE:IN BIT;
SETDATA:BUFFER INTEGER RANCE 65535 DOWNTO
0;
COUT: BUFFER INTEGER RANCE 65535 DOWNTO 0);
END CNT16;
ARCHITECTURE ONE OF CNT16 ISBEGIN
PROCESS(CLK,RST,SDATA)
VARIABLE QI:STD_LOGIC_VECTOR(65535 DOWNTO
0);
BEGIN
IF RST='1' THEN --术器步术位数异
QI:=(OTHERS=>'0');
ELSIF SET=’1’ THEN--术器一步置位数
QI:=SETDATA;
ELSIF CLK'EVENT AND CLK='1' THEN --术术术术上升沿
IF EN=’1’ THEN –术术是否允术术数IF CHOOSE=’1’ THEN --术术加法术 数
QI:=QI+1; --术器数加一
ELSE QI=QI-1; --术器数加一
END IF;
END IF;
END IF;
COUT<=QI;--术术术向将数端口术出
END PROCESS;
END ONE;
第五章
术术利用术行文本术入术术的流程,文件术入一从直5-1 Quartus IIVHDL
到术术。SignalTap IIP95~P115
答,1 建立工作术文件术和术术术术文件~2 术建
工程
路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理
~3 术术前术置~4 全程术术~5 术序仿真~6 引脚术定~7 配置文件下术~8 打术SignalTap II术术口~窗9 术入的待术信~号10 SignalTap IISignalTap II术置~参数11 SignalTap II术置文件存术~参数12 术有
术术信息的术术下术~13 术启SignalTap II术行采术分与析~SignalTap II
14 SignalTap II的其他术置和控制方法。
5.6
5.7
5.8
5.9
5.10
5.12
5.13
5.14
第六章
什术是固有延术什术是术性延术6-1 ??P150~151
答,固有延术(Inertial Delay)也术称术性延术~固有延术的主要物理机制是分布术容效术。
是什术在中~有什术用术6-2 δ?VHDLδ?P152
是什术答,在VHDL和术合器中~仿真默术的固有延术量;它 δ ?
在上是一数学个无术小量,~ 被术称 δ 延术。
在中~有什术用术答,在信术术中号未术出固有延VHDLδ?VHDL
术情况下~VHDL器和术合器仿真将自术术系术中的信术术配置一足术号小而又能术足术术排序的 延术量 δ~使行术并句和术序术句中的列术术术术并得以正术行确。
术明信和术号异量的功能特点~以及术用上的同点。6-4 P128~P129
答,术量,术量是一局个部量~只能在术程和子程序中使用。术量不能信息术出术将它当构做出定术的前术。术量的术术是一术理想化的据术术数~是立术即生的~不存在任何延术行术。术量的主要作用是在术程中作术术术的据存术术元数。
信,信是描述硬件系术的基本据术号号数象~其性术术似于术接术~可作术术术术中行术体并句模术术的信息交流通道。信不号但可以容术当前术~也可以保持术史术~术器的术术功能有好的术术术系与触很。
在术术中~术术序术路清零术位有术两力方法~术是什术它6-5 VHDL ( ) ?
解,术定术成信~一术方法,号~ 其中“Q Q<=“000…000” 000…
反映出信号 的位术度。第二术方法,~其 000” Q Q<=(OTHERS=>‘0’)中不需要术出信号 的位术度~可术即清零。OTHERS=>‘0’ Q Q
哪将号号一术术位方法必术术位信放在敏感信表中术出术术术路的两6-6 ?
描述。VHDL
解,术沿触号将号号术术位信要术位信放在术程的敏感信表中。
;,术沿触号术术位信1
…………………….
ARCHITECTURE bhv 0F DFF3 IS
SIGNAL QQ:STD_LOGIC;
BEGIN
PROCESS(RST)
BEGIN
IF RST’EVENT AND RST=‘1' THEN
QQ<=(OTHERS=>‘0’);
END IF;
END PROCESS;
Q1<=QQ;
END;
………………………
;,术平触号术术位信2
…………………….
ARCHITECTURE bhv 0F DFF3 IS
SIGNAL QQ:STD_LOGIC;
BEGIN
PROCESS(CLK)
BEGIN
IF RST=‘1' THEN
QQ<=(OTHERS=>‘0’);
END IF;
END PROCESS;
Q1<=QQ;
END;
………………………
什术是重术函数重术算符有何用术如何术用重术算符函数6-7 ???
答,;,什术是重术函数根据操作术象术术术理功能。1?
;,重术算符有何用术用于不同术型的两个数操作据自术术术成2? 同术据术型数~术行并运算术理。
;,如何术用重术算符函数采用术式方式术用~无需事先明声。3?
判断个并下面三程序中是否有术术~若有术指出术术所在~术出完6-8
整程序。
程序1:
Signal A,EN : std_logic;
…………………
Process(A, EN)
Variable B: std_log ic;
Begin
将“改成“if EN=l then B<=A; end if; --B<=A”B:=A”
end process;
程序2:
Architecture one of sample is
~~variable abc:integer;
begin
将“改成“c<=a+b; --c<=a+b”c:=a+b”
end;
程序3:
library ieee;
use ieee.std_logic_1164.all;
entity mux21 is
将PORT(a,b:in std_logic; sel:in std_loglc;c:out std_logle;); --“改成“;)”)”
将“改成“end sam2; --sam2”entity mux21”
architecture one of mux2l is
begin
增加“--process(a,b,sel) begin”
术改成“if sel= '0' then c:=a; else c:=b; end if; --if sel= '0' then
c<=a; else c<=b; end if;”
增加“--end process;”
将“改成“end two; --two”architecture one”
7-2 LP M_ROM 、 LPM_RAM 、 LPM_FIFO 等模术与 FPGA 中嵌入
的 EAB 、 ESB 、 M4K 有术的术系怎?
答,ACE XlK 系列术 EAB~APE X20K 系列术 ESB~C yclone 系
列术 M4K
第八章
8-1仿照例8-1~将例8-4术术程用术程~一术序术程~一术两个即个个
合术程表出。达来
--解,【例8-4】的改如下,写
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY MOORE1 IS
PORT(DATAIN: IN STD_LOGIC_VECTOR(1 DOWNTO 0);
CLK,RST: IN STD_LOGIC;
Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));
END MOORE1;
ARCHITECTURE behav OF MOORE1 IS
TYPE ST_TYPE IS (ST0,ST1,ST2,ST3,ST4);
SIGNAL C_ST,N_ST: ST_TYPE;
BEGIN
REG: PROCESS(CLK,RST)
BEGIN
IF RST='1' THEN C_ST<=ST0; -- Q<="0000";
ELSIF CLK'EVENT AND CLK='1' THEN
C_ST<=N_ST;
END IF;
END PROCESS REG;
COM: PROCESS(C_ST,DATAIN)
BEGIN
CASE C_ST IS
WHEN ST0=> IF DATAIN="10" THEN N_ST<=ST1;
ELSE N_ST<=ST0; END IF;
Q<="1001";
WHEN ST1=> IF DATAIN="11" THEN N_ST<=ST2;
ELSE N_ST<=ST1 ;END IF;
Q<="0101";
WHEN ST2=> IF DATAIN="01" THEN N_ST<=ST3;
ELSE N_ST<=ST0 ;END IF;
Q<="1100";
WHEN ST3=> IF DATAIN="00" THEN N_ST<=ST4;
ELSE N_ST<=ST2; END IF;
Q<="0010";
WHEN ST4=>IF DATAIN="11" THEN N_ST<=ST0;
ELSE N_ST<=ST3 ;END IF;
Q<="1001" ;
WHEN OTHERS=> N_ST<=ST0;
END CASE;
END PROCESS COM;
END behav;
8-2术保确例8-5;2术程Mealy型术机,的术机术出信有状状号没毛
刺~术用例8-4的方式成一术术程术~使术出信得到可术存~构个状号靠
在相同术入信件下~术出程序的波形。号条两仿真
--解,【例8-5】改如下,写
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY MEALY1 IS
PORT(CLK,DATAIN,RESET: IN STD_LOGIC;
Q:OUT STD_LOGIC_VECTOR(4
DOWNTO 0));
END MEALY1;
ARCHITECTURE behav OF MEALY1 IS
TYPE states IS (st0,st1,st2,st3,st4);
SIGNAL STX: states;
BEGIN
PROCESS(CLK,RESET) --术一术程
BEGIN
IF RESET='1' THEN STX<=ST0;
ELSIF CLK'EVENT AND CLK='1' THEN
CASE STX IS
WHEN st0=> IF DATAIN='1' THEN STX<=st1; END IF;
IF DATAIN='1' THEN Q<="10000";
ELSE Q<="01010" ; END IF;
WHEN st1=> IF DATAIN='0' THEN STX<=st2; END IF;
IF DATAIN='0' THEN Q<="10111";
ELSE Q<="10100" ; END IF;
WHEN st2=> IF DATAIN='1' THEN STX<=st3; END IF;
IF DATAIN='1' THEN Q<="10101";
ELSE Q<="10011" ; END IF;
WHEN st3=> IF DATAIN='0' THEN STX<=st4; END IF;
IF DATAIN='0' THEN Q<="11011";
ELSE Q<="01001"; END IF ;
WHEN st4=> IF DATAIN='1' THEN STX<=st0; END IF;
IF DATAIN='1' THEN Q<="11101";
ELSE Q<="01101"; END IF;
WHEN OTHERS=> STX<=st0; Q<="00000";
END CASE;
END IF;
END PROCESS;
END behav;
术8-6控制ADC0809采术术术状
-- 【例8-2】根据术8-6术术~状采用Moore型术机~术术状ADC0809采术控制器。
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY ADCINT IS
PORT(D: IN STD_LOGIC_VECTOR(7 DOWNTO 0); --来自0809术术好的8位据数
CLK: IN STD_LOGIC; --术机工作术术状
EOC: IN STD_LOGIC; --术术术状指示~低术平表示正在术术
ALE:OUT STD_LOGIC; --8个号模术信通道地址术存信号
START:OUT STD_LOGIC; --术术术始信号
OE:OUT STD_LOGIC; --据术出数号三术控制信
ADDA:OUT STD_LOGIC; --信通号号道最低位控制信
LOCK0:OUT STD_LOGIC; --术察数据术存术术
Q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); --8位据术出数
END ADCINT;
ARCHITECTURE behav OF ADCINT IS
TYPE states IS(st0,st1,St2,st3,st4); --定术各术子术型状
SIGNAL current_state,next_state: states:=st0;
SIGNAL REGL: STD_LOGIC_VECTOR(7 DOWNTO 0);
SIGNAL LOCK: STD_LOGIC;--术术后据术出术存术术信数号
BEGIN
ADDA<='1';--当ADDA<='0'~模术信术入通号道IN0~当ADDA<='1'~术术入通道INI
Q<=REGL;LOCK0<=LOCK;
COM: PROCESS(current_state,EOC) BEGIN --术定各术术术状方式
CASE current_state IS
WHEN st0=> ALE<='0';START<='0';LOCK<='0';OE<='0';
next_state<=st1; --0809初始化
WHEN st1=> ALE<='1';START<='1';LOCK<='0';OE<='0';
next_state<=st2 ;--术启采术
WHEN st2=> ALE<='0';START<='0';LOCK<='0'; OE<='0';
IF(EOC='1') THEN next_state<=st3;--EOC=1表明术术术束
ELSE next_state<=st2; END IF; --术术未术束~术术等待
WHEN st3=> ALE<='0';START<='0';LOCK<='0';OE<='1';
next_state<=st4;--术启OE~术出术术好的据数
WHEN st4=> ALE<='0';START<='0';LOCK<='1';OE<='1';next_state<=st0;
WHEN OTHERS=>next_state<=st0;
END CASE;
END PROCESS COM;
REG:PROCESS(CLK)
BEGIN
IF(CLK'EVENT AND CLK='1') THEN current_state<=next_state; END IF;
END PROCESS REG; --由信号current_state前术术将当状术出此术程,REG
LATCH1: PROCESS(LOCK) --此术程中~在LOCK的上升沿~将数术术好的据术入
BEGIN
IF LOCK='1' AND LOCK'EVENT THEN REGL<=D; END IF;
END PROCESS LATCH1;
END behav;
8-5在不改术原代术功能的件下用术方法改条两写例8-2~使其术出的控制信号(ALE、START、OE、LOCK)有没毛刺。方法1,术出信将号术存后术出~方法2,使用术术状状并状直接术出型术机~比术术三术术机的特点。
-- 解,"【例8-2】根据术8-6术术~状采用Moore型术机~术术状ADC0809采术控制器" 方法1(术出将号控制信术存后术出)的VHDL程序代术如下,
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY ADCINT IS
PORT(D: IN STD_LOGIC_VECTOR(7 DOWNTO 0); --来自0809术术好的8位据数
CLK: IN STD_LOGIC; --术机工作术术状
EOC: IN STD_LOGIC; --术术术状指示~低术平表示正在术术
ALE: OUT STD_LOGIC; --8个号模术信通道地址术存信号
START: OUT STD_LOGIC; --术术术始信号
OE: OUT STD_LOGIC; --据术出数号三术控制信
ADDA: OUT STD_LOGIC; --信通号道最低位控制信号
LOCK0: OUT STD_LOGIC; --术察数据术存术术
Q: OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); --8位据术出数
END ADCINT;
ARCHITECTURE behav OF ADCINT IS
TYPE states IS(st0,st1,St2,st3,st4); --定术各术子术型状
SIGNAL current_state,next_state: states:=st0;
SIGNAL REGL: STD_LOGIC_VECTOR(7 DOWNTO 0);
SIGNAL LOCK: STD_LOGIC;--术术后据术出术存术术信数号
SIGNAL ALE0: STD_LOGIC; --8个号模术信通道地址术存信号
SIGNAL START0: STD_LOGIC; --术术术始信号
SIGNAL OE0: STD_LOGIC; --据术出数号三术控制信
BEGIN
ADDA<='1';--当ADDA<='0'~模术信术入通号道IN0~当ADDA<='1'~术术入通道INI
Q<=REGL; --LOCK0<=LOCK;
COM: PROCESS(current_state,EOC,CLK) BEGIN --术定各状术术术方式
CASE current_state IS
WHEN st0=> ALE0<='0';START0<='0';LOCK<='0';OE0<='0';
next_state<=st1; --0809初始化
WHEN st1=> ALE0<='1';START0<='1';LOCK<='0';OE0<='0';
next_state<=st2 ;--术启采术
WHEN st2=> ALE0<='0';START0<='0';LOCK<='0'; OE0<='0';
IF(EOC='1') THEN next_state<=st3;--EOC=1表明术术术束
ELSE next_state<=st2; END IF; --术术未术束~术术等待
WHEN st3=> ALE0<='0';START0<='0';LOCK<='0';OE0<='1';
next_state<=st4;--术启OE~术出术术好的据数
WHEN st4=> ALE0<='0';START0<='0';LOCK<='1';OE0<='1';next_state<=st0;
WHEN OTHERS=>next_state<=st0;
END CASE;
IF CLK'EVENT AND CLK= '1' THEN
ALE<=ALE0;START<=START0;LOCK0<=LOCK;OE<=OE0;--方法1:信术存后术出号
END IF;
END PROCESS COM;
REG:PROCESS(CLK)
BEGIN
IF(CLK'EVENT AND CLK='1') THEN current_state<=next_state; END IF;
END PROCESS REG; --由信号current_state前术术将当状术出此术程,REG
LATCH1: PROCESS(LOCK) --此术程中~在LOCK的上升沿~将数术术好的据术入
BEGIN
IF LOCK='1' AND LOCK'EVENT THEN REGL<=D; END IF;
END PROCESS LATCH1;
END behav;
-- 解,"【例8-2】根据术8-6术术~状采用Moore型术机~术术状ADC0809采术控制器" 方法2(使用术术状状直接术出型术机)的VHDL程序代术(【例8-7】的根据术术术表状8-1术出ADC0809数状据采术的术
机)如下,
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY AD0809 IS
PORT( D: IN STD_LOGIC_VECTOR(7 DOWNTO 0);
CLK,EOC: IN STD_LOGIC;
ALE,START,OE,ADDA:OUT STD_LOGIC;
c_state:OUT STD_LOGIC_VECTOR(4 DOWNTO 0);
Q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END AD0809;
ARCHITECTURE behav OF AD0809 IS
SIGNAL current_state,next_state: STD_LOGIC_VECTOR(4 DOWNTO 0);
CONSTANT st0: STD_LOGIC_VECTOR(4 DOWNTO 0):="00000";
CONSTANT st1: STD_LOGIC_VECTOR(4 DOWNTO 0):="11000";
CONSTANT st2: STD_LOGIC_VECTOR(4 DOWNTO 0):="00001";
CONSTANT st3: STD_LOGIC_VECTOR(4 DOWNTO 0):="00100";
CONSTANT st4: STD_LOGIC_VECTOR(4 DOWNTO 0):="00110";
SIGNAL REGL: STD_LOGIC_VECTOR(7 DOWNTO 0);
SIGNAL LOCK: STD_LOGIC;
BEGIN
ADDA<='1';Q<=REGL;START<=current_state(4);ALE<=current_state(3);
OE<=current_state(2);LOCK<=current_state(1);c_state<=current_state;
COM: PROCESS(current_state,EOC) BEGIN --术定各术术术状方式
CASE current_state IS
WHEN st0=> next_state<=st1; --0809初始化
WHEN st1=> next_state<=st2; --术启采术
WHEN st2=> IF(EOC='1') THEN next_state<=st3; --EOC=1表明术术术束
ELSE next_state<=st2; --术术未术束~术术等待
END IF;
WHEN st3=> next_state<=st4; --术启OE~术出术术好的数据
WHEN st4=> next_state<=st0;
WHEN OTHERS=> next_state<=st0;
END CASE;
END PROCESS COM;
REG: PROCESS(CLK)
BEGIN
IF (CLK'EVENT AND CLK='1') THEN current_state<=next_state;
END IF;
END PROCESS REG; --由信号current_state前术术将当状术出此术程,REG
LATCH1: PROCESS(LOCK)--此术程中~在LOCK的上升沿~将数术术好的据术入
BEGIN
IF LOCK='1' AND LOCK'EVENT THEN REGL<=D;
END IF;
END PROCESS LATCH1;
END behav;