版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)字電路EDA設(shè)計(jì)與應(yīng)用期末總復(fù)習(xí)題綜述數(shù)字電路EDA設(shè)計(jì)與應(yīng)用期末總復(fù)習(xí)題綜述49/49數(shù)字電路EDA設(shè)計(jì)與應(yīng)用期末總復(fù)習(xí)題綜述考試時(shí)間:90分鐘題型:一、單項(xiàng)選擇2分*10=20分二、程序判斷改錯(cuò)題5分*4=20分三、程序題20分*3=60分復(fù)習(xí)重點(diǎn):1、EDA、VHDL的中英文名稱。2、表記符規(guī)則,文法規(guī)則3、數(shù)據(jù)對(duì)象(重點(diǎn)常量、變量、信號(hào))4、數(shù)據(jù)種類(標(biāo)準(zhǔn)預(yù)定義數(shù)據(jù)種類,IEEE預(yù)定義標(biāo)準(zhǔn)邏輯位種類)5、運(yùn)算符(連接運(yùn)算符,邏輯運(yùn)算符等)6、VHDL程序的基本構(gòu)造:完滿的VHDL程序包括的五個(gè)部分,重點(diǎn):實(shí)體,端口說明,構(gòu)造體,進(jìn)度,子程序(過程和函數(shù));常用的庫(kù)和程序包。7、序次語(yǔ)句,序次語(yǔ)句的特點(diǎn),IF語(yǔ)句,CASE語(yǔ)句8、并行語(yǔ)句,條件信號(hào)賦值語(yǔ)句,選擇信號(hào)賦值語(yǔ)句,COMPONENT語(yǔ)句,元件例化語(yǔ)句,9、程序設(shè)計(jì)題:加法器,譯碼器,數(shù)據(jù)選擇器,計(jì)數(shù)器,分頻器,數(shù)碼管顯示。一、填空題(20分,每空格1分)1、一個(gè)完滿的VHDL語(yǔ)言程序平時(shí)包括實(shí)體(entity),構(gòu)造體(architecture),配置(configuration),包會(huì)集(package)和庫(kù)(library)5各部分。2、在一個(gè)實(shí)體的端口方向說明時(shí),輸入使用in表示,那么構(gòu)造體內(nèi)部不能夠再使用的輸出是用out表示;雙向端口是用inout表示;構(gòu)造體內(nèi)部可再次使用的輸出是用buffer表示;3、VHDL的客體,或稱數(shù)據(jù)對(duì)象包括了常數(shù)、變量variable和信號(hào)signal。4、請(qǐng)列出三個(gè)VHDL語(yǔ)言的數(shù)據(jù)種類,如實(shí)數(shù)、位等。位矢量,字符,布爾量。5、VHDL程序的基本構(gòu)造包括庫(kù)、程序包、實(shí)體和構(gòu)造體。6、more__11表記吻合法嗎?不合法。8bit表記吻合法嗎?不合法。variable表記吻合法嗎?不合法。7、信號(hào)的代入平時(shí)用<=,變量用:=。8、表示‘0’‘1’;兩值邏輯的數(shù)據(jù)種類是bit(位),表示‘0’‘1’‘Z’等九值邏輯的數(shù)據(jù)種類是std_logic(標(biāo)準(zhǔn)邏輯),表示空操作的數(shù)據(jù)種類是NULL。9、<=是小于等于關(guān)系運(yùn)算符,又是賦值運(yùn)算操作符。10、設(shè)D0為'1',D1為'0',D2為'1',D3為'0',D3&D2&D1&D0的運(yùn)算結(jié)果是“0101”,D1&D2&D3&D4的運(yùn)算結(jié)果是“1010”。11、VHDL程序的基本構(gòu)造最少應(yīng)包括實(shí)體、構(gòu)造體兩部分和對(duì)庫(kù)
的引用聲明。12、1_Digital
表記吻合法嗎?
否
,\12@+\
呢?
合法
。13、在
VHDL的常用對(duì)象中,
信號(hào)
、變量
能夠被多次賜予不相同的值,常量只幸虧定義時(shí)賦值。14、實(shí)體的端口模式用來說明數(shù)據(jù)、信號(hào)經(jīng)過該端口的傳輸方向,端口模式有Out、inout、buffer15、VHDL語(yǔ)言中std_logic種類取值‘Z’表示高阻,取值
‘X’
in
、。表示不確定。16、位種類的初始化采用(字符
/字符串)
字符
、位矢量用
字符串
。17、進(jìn)度必定位于
構(gòu)造體
內(nèi)部,變量必定定義于
進(jìn)度/包/子程序
內(nèi)部。18、并置運(yùn)算符
&的功能是
把多個(gè)位或位向量合并為一個(gè)位向量
。19、進(jìn)度執(zhí)行的體系是敏感信號(hào)發(fā)生跳變。20、判斷CLK信號(hào)上升沿到達(dá)的語(yǔ)句是ifclk’eventandclk=‘1’then.21、IF語(yǔ)句各條件間擁有不相同的優(yōu)先級(jí)。22、VHDL可否區(qū)分大小寫?不區(qū)分。23、digital__8表記吻合法嗎?不合法。12_bit表記吻合法嗎?不合法。signal表記吻合法嗎?不合法。24、構(gòu)造體有三種描述方式,分別是數(shù)據(jù)流、行為、和構(gòu)造化。25、請(qǐng)分別列舉一個(gè)常用的庫(kù)和程序包libraryieee、use。26、一個(gè)信號(hào)處于高阻(三態(tài))時(shí)的值在VHDL中描述為‘Z’。27、/=是不相等操作符,功能是在條件判斷是判斷操作符兩端不相等。28、設(shè)D0為'0',D1為'1',D2為'1',D3為'0',D3&D2&D1&D0的運(yùn)算結(jié)果是“0110”,(D3orD2)and(D1andnotD0)的運(yùn)算結(jié)果是:‘1’。29、賦值語(yǔ)句是(并行/串行)并行執(zhí)行的,if語(yǔ)句是(并行/串行)串行執(zhí)行的。30、8digital表記吻合法嗎?不合法。31、信號(hào)的代入平時(shí)用<=,變量用:=。32、標(biāo)準(zhǔn)邏輯(std_logic)是一個(gè)擁有九值邏輯的數(shù)據(jù)種類。33、定義一個(gè)變量a,數(shù)據(jù)種類為4位位向量variablea:bit_vector(3downto0)。34、<=是小于等于關(guān)系運(yùn)算符,又是賦值運(yùn)算操作符。35、設(shè)D0為'1',D1為'1',D2為'1',D3為'0',“1110”是D3&D2&D1&D0的運(yùn)算結(jié)果。36、IF語(yǔ)句依照指定的條件來確定語(yǔ)句執(zhí)行序次,共有3各種類:用于門閂控制的IF語(yǔ)句、用于二選一控制的IF語(yǔ)句、用于多項(xiàng)選擇擇控制的IF語(yǔ)句。二、判斷對(duì)錯(cuò)并給出判斷依照(20分,每題5分,判斷對(duì)錯(cuò)2分,給出正確答案3分)1、傳統(tǒng)的系統(tǒng)硬件設(shè)計(jì)方法是采用自上而下(topdown)的設(shè)計(jì)方法,利用硬件描述語(yǔ)言(HDL)的硬件電路設(shè)計(jì)方法采用自下而上(bottomup)的設(shè)計(jì)方法。(×)傳統(tǒng)的系統(tǒng)硬件設(shè)計(jì)方法是采用自下而上(bottomup)的設(shè)計(jì)方法,利用硬件描述語(yǔ)言(HDL)的硬件電路設(shè)計(jì)方法采用自上而下(topdown)的設(shè)計(jì)方法2、VHDL能夠采用層次化的設(shè)計(jì),一個(gè)高層的構(gòu)造體中能夠調(diào)用低層的實(shí)體3、一個(gè)VHAL程序中僅能使用一個(gè)進(jìn)度(process)語(yǔ)句。
((
√)×)能夠使用多個(gè)進(jìn)度語(yǔ)句。4、VHDL語(yǔ)言的估量操作包括了邏輯運(yùn)算符、關(guān)系運(yùn)算符、乘法運(yùn)算符等,它們?nèi)叩膬?yōu)先級(jí)是相同的。(×)邏輯運(yùn)算符<關(guān)系運(yùn)算符<乘法運(yùn)算5、進(jìn)度語(yǔ)句中,無論在何時(shí),process
語(yǔ)句后邊必定列出敏感信號(hào)
(×)包括wait語(yǔ)句的進(jìn)度語(yǔ)句可不列出敏感信號(hào)。6、VHDL語(yǔ)言與計(jì)算機(jī)C語(yǔ)言的沒有差別。7、在構(gòu)造體中定義一個(gè)全局變量(VARIABLES),能夠在所有進(jìn)度中使用。
(×)(×)“變量(
VARIABLES)”改為“信號(hào)”。8、CONSTANTT2
:std_logic<=0’;
(×)
改正:把
<=
換為
:=
。9、若某變量被定義為數(shù)值型變量,未賦初始值時(shí)默認(rèn)值為‘(錯(cuò))改正:把‘0’的單引號(hào)去掉。
0’。10、在構(gòu)造體中定義一個(gè)全局變量(VARIABLES),能夠在所有進(jìn)度中使用。(錯(cuò))改正:“變量(VARIABLES)”改為“信號(hào)”。libraryieee;useieee.std_logic_arith.all;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;以上庫(kù)和程序包語(yǔ)句有無錯(cuò)誤?有,有的話請(qǐng)?jiān)谠绦蛳鄳?yīng)地址改正。(2)entityromisport(addr:instd_logic_vector(0to3);ce:instd_logic;data:outstd_logic_vector(7downto0);)endrom;以上port語(yǔ)句有無錯(cuò)誤?有,有的話請(qǐng)?jiān)谠绦蛳鄳?yīng)地址改正。(4)三、簡(jiǎn)答(20分,每題5分)1、簡(jiǎn)述VHDL程序的基本構(gòu)造。庫(kù)(1)libraryieee;程序包(2)useieeestd_logic_1164.all;實(shí)體(3)entity實(shí)體名is構(gòu)造體(5)architecture構(gòu)造體名of實(shí)體名is若答出配置也可加1分配置2、簡(jiǎn)述信號(hào)與變量的差別。信號(hào)延時(shí)賦值,變量馬上賦值(2)信號(hào)的代入使用<=,變量的代入使用:=;(4)信號(hào)在實(shí)質(zhì)的硬件中間有對(duì)應(yīng)的連線,變量沒有(5)3、進(jìn)度語(yǔ)句是設(shè)計(jì)人員描述構(gòu)造體時(shí)使用最為頻頻的語(yǔ)句,簡(jiǎn)述其特點(diǎn)。它能夠與其他進(jìn)度并發(fā)執(zhí)行,并可存取構(gòu)造體或?qū)嶓w中所定義的信號(hào);進(jìn)度構(gòu)造中的所有語(yǔ)句都是按序次執(zhí)行的;(2)為了啟動(dòng)進(jìn)度,在進(jìn)度構(gòu)造中必定包括一個(gè)顯式的敏感信號(hào)量表也許包括一個(gè)語(yǔ)句;(4)進(jìn)度之間的通信是經(jīng)過信號(hào)量的傳達(dá)來實(shí)現(xiàn)的。(5)
(1)
wait四、編程題(共50分)1、請(qǐng)補(bǔ)全以下二選一VHDL程序(本題10分)Entitymuxisport(d0,d1,sel:inbit;q:outBIT);(2)endmux;architectureconnectofMUXis(4)signaltmp1,TMP2,tmp3:bit;(6)begincale:blockbegintmp1<=d0andsel;tmp2<=d1and(notsel)tmp3<=tmp1andtmp2;q<=tmp3;(8)endblockcale;endCONNECT;(10)2、用IF語(yǔ)句編寫一個(gè)四選一電路,要求輸入d0~d3,s為選擇端,輸出y。(本題10分)entityMUX4isport(s:instd_logic_vector(1downto0);d:instd_logic_vector(3downto0);y:outstd_logic);endMUX4;(3)architecturebehaveofMUX4isbeginprocess(s)beginif(s="00")theny<=d(0);(4)elsif(s="01")theny<=d(1);(5)elsif(s="10")theny<=d(2);(6)elsif(s="11")theny<=d(3);(7)elsenull;(9)endif;endprocess;endbehave;(10)《數(shù)字電路EDA設(shè)計(jì)》習(xí)題集第一章、EDA技術(shù)歸納一、填空題1、一般把EDA技術(shù)的發(fā)展分為CAD、CAE、EDA(ESDA)三個(gè)階段。2、EDA設(shè)計(jì)流程包括設(shè)計(jì)準(zhǔn)備、設(shè)計(jì)輸入、設(shè)計(jì)辦理、器件編程四個(gè)步驟。3、EDA的設(shè)計(jì)考據(jù)包括功能仿真、時(shí)序仿真、器件測(cè)試三個(gè)過程。4、EDA的設(shè)計(jì)輸入包括文本輸入、波形輸入、圖形輸入。5、當(dāng)前最流行的并成為IEEE標(biāo)準(zhǔn)的硬件描述語(yǔ)言包括VHDL和VerilogHDL。6、將硬件描述語(yǔ)言轉(zhuǎn)變成硬件電路的重要工具軟件稱為HDL綜合器。二、單項(xiàng)選擇題1、VHDL語(yǔ)言屬于B描述語(yǔ)言。A.一般硬件B.行為C.高級(jí)D.初級(jí)2、基于硬件描述語(yǔ)言HDL的數(shù)字系統(tǒng)設(shè)計(jì)當(dāng)前最常用的設(shè)計(jì)方法為BA.自底向上B.自頂向下C.積木式D.頂層3、在EDA工具中,能將硬件描述語(yǔ)言轉(zhuǎn)變成硬件電路的重要工具軟件稱為BA.仿真器B.綜合器C.適配器D.下載器4、在EDA工具中,能完成目標(biāo)系統(tǒng)器件上布局軟件稱為CA.仿真器B.綜合器C.適配器D.下載器第2章、大規(guī)??删幊踢壿嬈骷弧⑻羁疹}1、集成度是集成電路一項(xiàng)重要的指標(biāo),可編程邏輯器件按集成密度可分為低密度可編程邏輯器件和高密度可編程邏輯器件兩類。2、可編程邏輯器件的編程方式可分為一次性可編程(OTP)和可多次編程(MTP)兩類。3、基于EPROM、E2PROM和快閃儲(chǔ)藏器件的可編程器件,在系統(tǒng)斷電后編程信息不扔掉。4、基于SRAM構(gòu)造的可編程器件,在系統(tǒng)斷電后編程信息會(huì)扔掉。5、CPLD器件中最少包括可編程邏輯宏單元、可編程I/O單元、可編程內(nèi)部連線三種構(gòu)造。6、FPGA的三種可編程電路分別是可編程邏輯塊CLB、輸入與輸出模塊IOB、互連資源三種構(gòu)造。7、依照邏輯功能塊的大小不相同,可將FPGA分為細(xì)粒度和粗粒度兩類;據(jù)FPGA內(nèi)部連線構(gòu)造的不相同,可將FPGA分為分段互連和連續(xù)互連
兩類;據(jù)
FPGA采用的開關(guān)元件不相同,可將
FPGA分為一次編程
和可重復(fù)編程
兩類.8、當(dāng)前常有的可編程邏輯器件的編程和配置工藝包括基于電可擦儲(chǔ)藏單元E2PROM或
Flash技術(shù)
、基于
SRAM
查找表的編程單元
和基于反熔絲編程單元
三種編程工藝。二、單項(xiàng)選擇題1、在以下可編程邏輯器件中,不屬于高密度可編程邏輯器件的是DA.EPLDB.CPLDC.FPGAD.PAL2、在以下可編程邏輯器件中,屬于易失性器件的是CA.EPLDB.CPLDC.FPGAD.PAL3、在自頂向下的設(shè)計(jì)過程中,描述器件總功能的模塊一般稱為BA.基層設(shè)計(jì)B.頂層設(shè)計(jì)C.完滿設(shè)計(jì)D.全面設(shè)計(jì)4、界線掃描測(cè)試技術(shù)主要解決C的測(cè)試問題A.印制電路板B.數(shù)字系統(tǒng)C.芯片D.微辦理器三、簡(jiǎn)答題1、CPLD和FPGA有什么差別?在實(shí)質(zhì)應(yīng)用中各有什么特點(diǎn)?1、差別:(1)CPLD:復(fù)雜可編程邏輯器件,F(xiàn)PGA:現(xiàn)場(chǎng)可變成門陣列;(2)CPLD:基于乘積項(xiàng)技術(shù)的確定型構(gòu)造,F(xiàn)PGA:基于查找表技術(shù)的統(tǒng)計(jì)型構(gòu)造;(3)CPLD:5500~50000門,F(xiàn)PGA:1K~10M門。實(shí)質(zhì)應(yīng)用中各自的特點(diǎn):CPLD適用于邏輯密集型中小規(guī)模電路,編程數(shù)據(jù)不扔掉,延遲固定,時(shí)序牢固;FPGA適用于數(shù)據(jù)密集型大規(guī)模電路,需用專用的ROM進(jìn)行數(shù)據(jù)配置,布線靈便,但時(shí)序特點(diǎn)不牢固第3章、VHDL編程基礎(chǔ)一、填空題1、VHDL設(shè)計(jì)實(shí)體的基本構(gòu)造由庫(kù)、實(shí)體、構(gòu)造體、程序包和配置等部分組成。2、實(shí)體和構(gòu)造體是設(shè)計(jì)實(shí)體的基本組成部分,他們能夠組成最基本的VHDL程序。3、在VHDL的端口聲明語(yǔ)句中,端口方向包括in、out、buffer和inout。4、VHDL的數(shù)據(jù)對(duì)象包括常數(shù)constant、變量variable和信號(hào)signal,它們是用來存放各各種類數(shù)據(jù)的容器。5、VHDL的操作符包括邏輯操作符、關(guān)系操作符、算術(shù)操作符和符號(hào)操作符。6、VHDL的序次語(yǔ)句只能出現(xiàn)在進(jìn)度process、函數(shù)function和過程procedure中,是依照書寫序次自上而下,一條一條執(zhí)行。7、VHDL的進(jìn)度(process)語(yǔ)句是由序次語(yǔ)句組成的,但其自己卻是并行語(yǔ)句。二、單項(xiàng)選擇題1、一個(gè)實(shí)體能夠擁有一個(gè)或多個(gè)BA.設(shè)計(jì)實(shí)體B.構(gòu)造體C.輸入D.輸出2、在VHDL中用D來把特定的構(gòu)造體關(guān)系到一個(gè)確定的實(shí)體。A.輸入B.輸出C.綜合D.配置3、在以下表記符中,A.4h_add
C是VHDLB.h_adde_
合法的表記符C.h_adder
4、在以下表記符中,
A是
VHDL
錯(cuò)誤的表記符A.4h_add
B.h_adde4
C.h_adder_4
5、在VHDL中為目標(biāo)變量賦值符號(hào)為
CA.=
B.<=
C.:=
D.=:6、在VHDL語(yǔ)言中,用語(yǔ)句
B表示檢測(cè)到時(shí)鐘clk的上升沿A.clk’event
B.clk
’eventandclk=
‘1’C.clk=
‘0’
D.clk
’eventandclk=
‘0’7、在VHDL的并行語(yǔ)句之間中,只能用
C來傳達(dá)信息A.變量
B.變量和信號(hào)
C.信號(hào)
D.常量8、VHDL
塊語(yǔ)句是并行語(yǔ)句構(gòu)造,它的內(nèi)部是由
C語(yǔ)句組成的A.并行溫序次
B.序次
C.并行
D.任何9、若S1為”1010”,為S2”0101,”下面程序執(zhí)行后,outValue輸出結(jié)果為:libraryieee;
A。useieee.std_logic_1164.all;entityexisport(S1:instd_logic_vector(3downto0);S2:instd_logic_vector(0to3);outValue:outstd_logic_vector(3downto0));Endex;architecturertlofexisbeginoutValue(3downto0)<=(S1(2downto0)andnotS2(1to3))&(S1(3)xorS2(0));endrtl;A、“0101”B、“0100”C、“0001”D、“0000”10、假設(shè)輸入信號(hào)a=“6”,b=“E”,則以下程序執(zhí)行后,c的值為C。entitylogicisport(a,b:instd_logic_vector(3downto0);c:outstd_logic_vector(7downto0));endlogic;architectureaoflogicisbeginc(0)<=nota(0);c(2downto1)<=a(2downto1)andb(2downto1);c(3)<='1'xorb(3);c(7downto4)<="1111"when(a(2)=b(2))else"0000";enda;A“F8”B“FF”C“F7”D“0F”三、鑒識(shí)以下程序的對(duì)錯(cuò),并改正有錯(cuò)的程序1、libraryieee;useieee.std_logic_1164.all;entitytestisport(d,clk:instd_logic;q:outstd_logic);endtest;architectureoneoftestisbeginprocess(clk)beginwaituntilclk’eventandclk=‘1’q<=d;endprocess;endone;1、錯(cuò)。含有Wait語(yǔ)句的進(jìn)度的敏感列表不能夠有信號(hào)??扇サ暨M(jìn)度后的敏感列表中的信號(hào)clk或?qū)aituntil語(yǔ)句改為用if語(yǔ)句實(shí)現(xiàn)時(shí)鐘上升沿2、libraryieee;useieee.std_logic_1164.all;entitytestisport(clk:instd_logic;count:outstd_logic_vector(3downto0));endtest;architecturetwooftestisbeginprocess(clk)beginifclk’eventandclk=’1’count<=count+1;endif;endprocess;endtwo;
then2、錯(cuò)。端口
count是輸出端口,不能夠作為輸入,應(yīng)改為
buffer,別的庫(kù)的聲明應(yīng)加上useieee.std_logic_unsigned.all;3、LIBRARYieee;USEieee.std_logic_1164.all;USEieee.std_logic_arith.all;ENTITYforloopISport(a:instd_logic_vector(7downto0);y:outstd_logic);ENDENTITYforloop;ARCHITECTURErtl_loopOFforloopISBEGINprocess(a)variabletemp:std_logic;begintemp<=1;foriin0to7looptemp<=tempxora(i);endloop;y<=temp;endprocess;ENDARCHITECTURErtl;3、錯(cuò)。Temp為變量,變量賦值要用“:=”,而不是“<=”。4、LIBRARYieee;USEieee.std_logic_1164.all;USEieee.std_logic_arith.all;ENTITYmux4ISport(s1,s2:instd_logic;a,b,c,d:instd_logic;muxout:outstd_logic);ENDENTITYmux4;ARCHITECTURErtlOFmux4ISBEGINcases1&s2iswhen"00"=>muxout<=a;when"01"=>muxout<=b;when"10"=>muxout<=c;when“11”=>muxout<=d;endcase;ENDARCHITECTURErtl;4、錯(cuò)。Case語(yǔ)句是序次語(yǔ)句,必定放在進(jìn)度和子程序中,在程序的構(gòu)造體里將case語(yǔ)句放在process語(yǔ)句中,如:process(a,b,c,d,s1,s2),在case完后要加endprocess;別的,a,b,c,d定義的是
std_loigc
種類,因此
case語(yǔ)句的最后一個(gè)
when后要加上
whenothers=>四、編程題1、編寫8選1數(shù)據(jù)選擇器的VHDL源程序。設(shè)電路的16位數(shù)據(jù)輸入位A[7:0],選擇信號(hào)為sel[2:0],使能控制端位ena,高電平有效,數(shù)據(jù)選擇輸出為Y。1、libraryieee;useieee.std_logic_1164.all;entitymux8_1isport(sel:instd_logic_vector(2downto0);A:instd_logic_vector(7downto));Ena:instd_logic;Y:outstd_logic);Endmux8_1;Architecturearchofmux8_1isBeginY<=A(0)whensel=
“000”
elseA(1)whensel=
“001”
elseA(2)whensel=
“010”
elseA(3)whensel=
“011”
elseA(4)whensel=
“100”
elseA(5)whensel=
“101”
elseA(6)whensel=
“110”
elseA(7);Endarch;該參照程序采用條件并行語(yǔ)句實(shí)現(xiàn),也可用序次語(yǔ)句實(shí)現(xiàn)。2、編寫帶異步復(fù)位和同步置位的D型觸發(fā)器的VHDL源程序。設(shè)電路的復(fù)位端為clr,置位端為
prd,均為低電平有效。互補(bǔ)輸出為
Q和
QN。2、libraryieee;useieee.std_logic_1164.all;entitydff_1isport(clk:instd_logic;clr,prd:instd_logic;instd_logic;Q,QN:outstd_logic);Enddff_1;Architecturearchofdff_1isSignalQ_tmp:std_logic;BeginProcess(clk,clr)BeginIf(clr=‘0’)thenQ_tmp<=‘0’;Elsif(lk’eventandclk=If(prd=‘0’)thenQ_tmp<=‘1’;
‘1’)thenElseQ_tmp<=D;Endif;Endif;Endprocess;Q<=Q_tmp;QN<=notQ_tmp;Endarch;3、試用VHDL設(shè)計(jì)一個(gè)24進(jìn)制的計(jì)數(shù)器,輸入輸出信號(hào)以以下列圖所示。其中信號(hào)clk5是clk五分頻的輸出;high信號(hào)是2bit,是計(jì)數(shù)器的十位輸出;low信號(hào)是4bit,是計(jì)數(shù)器的個(gè)位輸出;rst高有效。rsthighclkclk5計(jì)數(shù)器low分頻器3、libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycounter24isport(rst,clk:instd_logic;high:outstd_logic_vector(1downto0);low:outstd_logic_vector(3downto0));ENDENTITYcounter24;ARCHITECTURErtlOFcounter24ISsignalclk5:std_logic;signalcnter8:std_logic_vector(2downto0):="000";signalhigh_in:std_logic_vector(1downto0):="00";signallow_in:std_logic_vector(3downto0):="0000";BEGINprocess(clk)beginifrising_edge(clk)thenifcnter8="100"thencnter8<="000";elsecnter8<=cnter8+1;endif;endif;endprocess;process(cnter8)beginifcnter8="100"thenclk5<='1';elseclk5<='0';endif;endprocess;high<=high_in;low<=low_in;process(rst,clk5)beginifrst='1'thenhigh_in<="00";low_in<="0000";elsifrising_edge(clk5)theniflow_in="0011"andhigh_in="10"thenlow_in<="0000";high_in<="00";elsiflow_in="1001"thenlow_in<="0000";high_in<=high_in+1;elselow_in<=low_in+1;endif;endif;endprocess;ENDARCHITECTURErtl;4、8位二進(jìn)制數(shù)據(jù)收發(fā)器的VHDL源程序。設(shè)電路的輸入/輸出(雙向)為A[7:0]和B[7:0],OEN是使能控制端,且為0時(shí)工作,為1時(shí)被靜止工作,此時(shí)A[7:0]和B[7:0]為高阻態(tài)。DTR為收發(fā)控制端,為1時(shí)數(shù)據(jù)由A[7:0]發(fā)送到B[7:0],為則相反。4、libraryieee;useieee.std_logic_1164.all;entityDTR8isport(oen,dtr:instd_logic;A,B:inoutstd_logic_vector(7downto0));EndDTR8;ArchitecturearchofDTR8isSignalAreg,Breg:std_logic_vector(7downto0);BeginProcess(dtr,A)BeginIfdtr=‘1’thenBreg<=A;Endif;Endprocess;Process(dtr,B)BeginIfdtr=‘0’thenAreg<=B;Endif;Endprocess;B<=Bregwhenoen=‘0’else“ZZZZZZZZ”;“ZZZZZZZZ”;endarch;第四章、EDA開發(fā)軟件及EDA實(shí)驗(yàn)開發(fā)平臺(tái)一、填空題1、MaxplusⅡ支持圖形、文本、波形和符號(hào)等不相同編寫方式。2、指定設(shè)計(jì)電路的輸入/輸出端口與目標(biāo)芯片引腳的連接關(guān)系的過程稱為引腳鎖定。3、在完成設(shè)計(jì)電路的輸入/輸出端口與目標(biāo)芯片引腳的鎖定后,再次對(duì)設(shè)計(jì)電路的仿真稱時(shí)序仿真或后仿真。二、單項(xiàng)選擇題1、MaxplusⅡ是cA.高級(jí)語(yǔ)言B.硬件描述語(yǔ)言C.EDA工具軟件D.綜合軟件2、在使用MaxplusⅡ工具軟件實(shí)現(xiàn)文本輸入時(shí)應(yīng)采用B方式。A.圖形編寫B(tài).文本編寫C.符號(hào)編寫D.波形編寫3、執(zhí)行MaxplusⅡ的B命令,能夠?qū)υO(shè)計(jì)電路進(jìn)行功能仿真或時(shí)序仿真A.CreateDefaultSymbolB.SimulatorC.CompilerD.TimingAnalyzerMaxplusⅡ的圖形設(shè)計(jì)文件種類是BA..scfB..gdfC..vhdD..v第5章、電子系統(tǒng)EDA設(shè)計(jì)的應(yīng)用實(shí)例線性分組碼編譯碼器I2C串行總線接口模塊電路一、設(shè)計(jì)題1、設(shè)計(jì)線性分組碼編譯碼器在通信系統(tǒng)中,由于信道存在大量噪聲和攪亂,使得經(jīng)信道傳輸后的接收碼與發(fā)送碼之間存在差別即出現(xiàn)誤碼。在數(shù)字通信系統(tǒng)中常采用差錯(cuò)控制信道編碼技術(shù),減少傳輸過程的誤碼,提高數(shù)字通信系統(tǒng)的傳輸質(zhì)量。差錯(cuò)控制技術(shù)的基本思想是經(jīng)過對(duì)信息序列做某種變換,如增加校驗(yàn)碼元等,使得原來相關(guān)性很小的信息碼元產(chǎn)生某種相關(guān)性,從而在接收端利用這種相關(guān)性來檢查并糾正信息碼元在傳輸中引起的差錯(cuò)。線性分組編碼是采用增加校驗(yàn)碼的差錯(cuò)控制的信道編碼方式,在這種方式中,每個(gè)碼組(字)只與該碼字的信息碼元相關(guān),稱為分組碼,而且分組碼內(nèi)的規(guī)律是線性的,因此稱為線性分組碼。設(shè)計(jì)實(shí)現(xiàn)(7,4)線性分組碼的編譯碼電路,其生成矩陣G為1101000G011010011100101010001督查矩陣H為1001011H01011100010111提示:線性分組編碼時(shí),將每K個(gè)信息位分為一組進(jìn)行獨(dú)立辦理,按必然規(guī)律給每個(gè)信息組增加n-k個(gè)校驗(yàn)碼元,組成長(zhǎng)度為n的二進(jìn)制碼字,這種編碼方式記為(n,k)分組碼。信息位和校驗(yàn)位存在著線性關(guān)系。若線性分組碼的輸入信息位為u{u0,u1,...,uk},編碼輸出為c{c0,c1,...,cn},則有以下關(guān)系:cu*GH*cT0T式中G為線性分組碼的生成矩陣,H為督查矩陣。當(dāng)G確定后,編碼方式就完滿確定了;當(dāng)H給定后,編碼時(shí)校驗(yàn)位和信息位的關(guān)系就確定了。因此在設(shè)計(jì)編碼器時(shí),需要確定生成矩陣G,設(shè)計(jì)譯碼器時(shí),需要確定督查矩陣H。設(shè)發(fā)送碼字為c{c0,c1,...,cn},e表示傳輸中的差錯(cuò),y表示接收碼字。若是碼字在傳輸過程中沒有出現(xiàn)差錯(cuò),則有HyTHeT0;出差錯(cuò)時(shí),HyTH(ceT)HeTsT,seHT。其中,s稱為陪同子,又稱為校正子。由于s只與序列傳輸中的差錯(cuò)e相關(guān),因此在錯(cuò)碼的糾錯(cuò)能力之內(nèi),必然的e序列組合必然對(duì)應(yīng)必然的s組合,因此能夠起初在接收機(jī)中做好對(duì)應(yīng)表,爾后依照序列s正確地判斷差錯(cuò)地址,再依照出錯(cuò)地址進(jìn)行糾正,可獲取正確的譯碼輸出。線性分組編碼器設(shè)計(jì)時(shí),依照生成矩陣G可獲取相應(yīng)的編碼。即由11010000110100(c0,c1,c2,c3,c4,c5,c6)(u0,u1,u2,u3)11100101010001可獲取C的編碼輸出。其中,前三個(gè)重量為增加的校驗(yàn)碼元,后4個(gè)重量為原輸入信息位。線性分組譯碼是編碼的反過程,但較編碼要復(fù)雜一些。依照在二進(jìn)制對(duì)稱條件下,采用譯碼平均錯(cuò)誤概率最小的原則。此時(shí),對(duì)于的最可能錯(cuò)誤圖樣是譯碼漢明距離最小的接收碼組,即非零個(gè)數(shù)最小的碼組。依照督查矩陣H能夠按以下步驟求解。1、計(jì)算接收矢量y的陪同子syHT可得:s0=y0+y3+y5+y6;s1=y1+y3+y4+y5;s2=y2+y4+y5+y62、由陪同子s決定對(duì)應(yīng)的錯(cuò)誤圖樣集e3、將y譯成c=y-e。由H督查矩陣可推出校正子s0,s1,s2和錯(cuò)誤碼碼組e向量的對(duì)應(yīng)關(guān)系。s0,s1,s2錯(cuò)誤地址(e碼)s0,s1,s2錯(cuò)誤地址(e碼)100Y0(0000001)011Y4(00100000)010Y1(0000010)111Y5(01000000)001Y2(0000100)101Y6(10000000)110Y3(0001000)000無錯(cuò)(00000000)2、設(shè)計(jì)I2C串行總線接口模塊電路I2C(InterICBUS)總線是由Philips公司推出的芯片間串行總線,它以兩根連線實(shí)現(xiàn)了完滿的全雙工同步的數(shù)據(jù)傳達(dá),能夠極方便的組成多機(jī)系統(tǒng)和外面器件擴(kuò)展系統(tǒng)。它解決了由于使用并行總線擴(kuò)展時(shí)連線過多,外面器件工作方式各異,外面器件與數(shù)據(jù)儲(chǔ)藏器混和編址而給單片機(jī)應(yīng)用系統(tǒng)帶來的困難。I2C總線在標(biāo)準(zhǔn)模式下,數(shù)據(jù)傳達(dá)速率可達(dá)100kbit/s,高速模式下可達(dá)400kbit/s,總線的驅(qū)動(dòng)能力受總線電容限制,不加驅(qū)動(dòng)擴(kuò)展時(shí)驅(qū)動(dòng)能力為400pF。為了能使總線實(shí)現(xiàn)線與功能,各個(gè)I2C總線的接口電路的輸出端必定是漏極開路或集電極開路構(gòu)造,因此輸出端必定加上拉電阻。其總線以以下列圖所示。主控器件與從控器件是能夠相互變換的,這要看在某一個(gè)數(shù)據(jù)傳達(dá)周期內(nèi),是誰(shuí)在對(duì)時(shí)鐘線起主控作用。同時(shí),若是總線上有多個(gè)主控器件,則它們可能形成多主競(jìng)爭(zhēng)狀態(tài),這時(shí)需要加入總線仲裁體系。VCCI2CSCL總線SDA主控器或主控器或主控器或從控器從控器從控器I2C總線有兩種時(shí)序狀態(tài),一種是初步狀態(tài),另一種是停止?fàn)顟B(tài)。即當(dāng)SCL時(shí)鐘信號(hào)為高電平時(shí),SDA數(shù)據(jù)線有一個(gè)由高到低電平的跳變,表示總線上數(shù)據(jù)傳輸開始。當(dāng)SCL時(shí)鐘信號(hào)為高電平時(shí),SDA數(shù)據(jù)線有一個(gè)由低到高電平的跳變,表示總線上數(shù)據(jù)傳輸結(jié)束。沒有數(shù)據(jù)傳輸時(shí),SDA和SCL都保持高電平的狀態(tài)。I2C進(jìn)行總線數(shù)據(jù)的傳輸時(shí),在時(shí)鐘線SCL為高電平時(shí)期,數(shù)據(jù)線SDA必定為牢固狀態(tài)。只有在SCL為低電平時(shí),SDA上的電平才贊同變化。SDSCI2C總線上是按字節(jié)來傳達(dá)的,每傳達(dá)一個(gè)字節(jié)都必定跟一位應(yīng)答位。第一發(fā)送的數(shù)據(jù)位都必定是最高位。應(yīng)答信號(hào)是在第9個(gè)時(shí)鐘位出現(xiàn)的。發(fā)送器釋放數(shù)據(jù)總線,接收器發(fā)送一個(gè)低電平就為應(yīng)答信號(hào),高電平就為非應(yīng)答信號(hào)。一次完滿的數(shù)據(jù)傳輸見以下列圖所示。更詳細(xì)的I2C總線可拜會(huì)相應(yīng)標(biāo)準(zhǔn)。實(shí)現(xiàn)I2C總線可分兩個(gè)模塊,發(fā)送模塊和接收模塊。在發(fā)送模塊中,輸入信號(hào)由reset(復(fù)位輸入端)、en(使能控制輸入端)、clk(時(shí)鐘輸入端)、data[7:0](8位數(shù)據(jù)輸入信號(hào))。輸出信號(hào)為scl和sda。其中,scl信號(hào)由clk二分頻產(chǎn)生,每次在clk信號(hào)的上升沿到來時(shí)進(jìn)行電平跳變。Sda信號(hào)經(jīng)過一個(gè)狀態(tài)機(jī)實(shí)現(xiàn),每次clk信號(hào)下降沿,針對(duì)此時(shí)的scl信號(hào)電平和當(dāng)前狀態(tài)機(jī)的狀態(tài)產(chǎn)生sda信號(hào)。接收模塊輸入為scl和sda信號(hào),輸出為data[7:0]8位并行數(shù)據(jù)。《數(shù)字電路EDA設(shè)計(jì)》習(xí)題集參照答案第一章答案:填空題:1、CAD、CAE、EDA2、設(shè)計(jì)準(zhǔn)備、設(shè)計(jì)輸入、設(shè)計(jì)辦理、器件編程3、功能仿真、時(shí)序仿真、器件測(cè)試4、文本輸入方式、圖形輸入方式、波形輸入方式5、VHDL語(yǔ)言VerilogHDL語(yǔ)言6、HDL綜合器選擇題:BBBC第二章答案:填空題:1、低密度可編程邏輯器件高密度可編程邏輯器件2、一次性可編程(OTP)可多次編程(MTP)3、不扔掉4、會(huì)扔掉5、可編程邏輯宏單元、可編程I/O單元、可編程內(nèi)部連線6、可編程邏輯塊CLB、輸入/輸出模塊IOB、互連資源7、細(xì)粒度、粗粒度;分段互連型、連續(xù)互連型;一次編程型、可重復(fù)編程型8、電可擦儲(chǔ)藏單元的E2PROM或Flash技術(shù)、SRAM查找表的編程單元、反熔絲編程單元選擇題:DCBC簡(jiǎn)答題:(參照)1、差別:(1)CPLD:復(fù)雜可編程邏輯器件,F(xiàn)PGA:現(xiàn)場(chǎng)可變成門陣列;(2)CPLD:基于乘積項(xiàng)技術(shù)的確定型構(gòu)造,F(xiàn)PGA:基于查找表技術(shù)的統(tǒng)計(jì)型構(gòu)造;(3)CPLD:5500~50000門,F(xiàn)PGA:1K~10M門。實(shí)質(zhì)應(yīng)用中各自的特點(diǎn):CPLD適用于邏輯密集型中小規(guī)模電路,編程數(shù)據(jù)不扔掉,延遲固定,時(shí)序牢固;FPGA適用于數(shù)據(jù)密集型大規(guī)模電路,需用專用的ROM進(jìn)行數(shù)據(jù)配置,布線靈便,但時(shí)序特點(diǎn)不牢固第三章答案:填空題:1、庫(kù)、實(shí)體、構(gòu)造體、程序包、配置2、實(shí)體、構(gòu)造體3、inoutbufferinout4、常數(shù)constant、變量variable、信號(hào)signal5、邏輯操作符、關(guān)系操作符、算術(shù)操作符、符號(hào)操作符6、進(jìn)度process、函數(shù)function、過程procedure7、序次語(yǔ)句、并行語(yǔ)句選擇題:BDBACBCCAC改錯(cuò)題:(參照)1、錯(cuò)。含有Wait語(yǔ)句的進(jìn)度的敏感列表不能夠有信號(hào)??扇サ暨M(jìn)度后的敏感列表中的信號(hào)clk或?qū)aituntil語(yǔ)句改為用if語(yǔ)句實(shí)現(xiàn)時(shí)鐘上升沿2、錯(cuò)。端口count是輸出端口,不能夠作為輸入,應(yīng)改為buffer,別的庫(kù)的聲明應(yīng)加上useieee.std_logic_unsigned.all;3、錯(cuò)。
Temp為變量,變量賦值要用“
:=”,而不是“
<=”。4、錯(cuò)。Case語(yǔ)句是序次語(yǔ)句,必定放在進(jìn)度和子程序中,在程序的構(gòu)造體里將
case語(yǔ)句放在process語(yǔ)句中,如:process(a,b,c,d,s1,s2),在case完后要加endprocess;另外,a,b,c,d定義的是std_loigc種類,因此case語(yǔ)句的最后一個(gè)when后要加上whenothers=>編程題:(參照)1、libraryieee;useieee.std_logic_1164.all;entitymux8_1isport(sel:instd_logic_vector(2downto0);A:instd_logic_vector(7downto));Ena:instd_logic;Y:outstd_logic);Endmux8_1;Architecturearchofmux8_1isBeginY<=A(0)whensel=
“000”
elseA(1)whensel=
“001”
elseA(2)whensel=
“010”
elseA(3)whensel=
“011”
elseA(4)whensel=
“100”
elseA(5)whensel=
“101”
elseA(6)whensel=
“110”
elseA(7);Endarch;該參照程序采用條件并行語(yǔ)句實(shí)現(xiàn),也可用序次語(yǔ)句實(shí)現(xiàn)。2、libraryieee;useieee.std_logic_1164.all;entitydff_1isport(clk:instd_logic;clr,prd:instd_logic;instd_logic;Q,QN:outstd_logic);Enddff_1;Architecturearchofdff_1isSignalQ_tmp:std_logic;BeginProcess(clk,clr)BeginIf(clr=‘0’)thenQ_tmp<=‘0’;Elsif(lk’eventandclk=If(prd=‘0’)then
‘1’)thenQ_tmp<=‘1’;ElseQ_tmp<=D;Endif;Endif;Endprocess;Q<=Q_tmp;QN<=notQ_tmp;Endarch;3、libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycounter24isport(rst,clk:instd_logic;high:outstd_logic_vector(1downto0);low:outstd_logic_vector(3downto0));ENDENTITYcounter24;ARCHITECTURErtlOFcounter24ISsignalclk5:std_logic;signalcnter8:std_logic_vector(2downto0):="000";signalhigh_in:std_logic_vector(1downto0):="00";signallow_in:std_logic_vector(3downto0):="0000";BEGINprocess(clk)beginifrising_edge(clk)thenifcnter8="100"thencnter8<="000";elsecnter8<=cnter8+1;endif;endif;endprocess;process(cnter8)beginifcnter8="100"thenclk5<='1';elseclk5<='0';endif;endprocess;high<=high_in;low<=low_in;process(rst,clk5)beginifrst='1'thenhigh_in<="00";low_in<="0000";elsifrising_edge(clk5)theniflow_in="0011"andhigh_in="10"thenlow_in<="0000";high_in<="00";elsiflow_in="1001"thenlow_in<="0000";high_in<=high_in+1;elselow_in<=low_in+1;endif;endif;endprocess;ENDARCHITECTURErtl;4、libraryieee;useieee.std_logic_1164.all;entityDTR8isport(oen,dtr:instd_logic;A,B:inoutstd_logic_vector(7downto0));EndDTR8;ArchitecturearchofDTR8isSignalAreg,Breg:std_logic_vector(7downto0);BeginProcess(dtr,A)BeginIfdtr=‘1’thenBreg<=A;Endif;Endprocess;Process(dtr,B)BeginIfdtr=‘0’thenAreg<=B;Endif;Endprocess;B<=Bregwhenoen=‘0’else“ZZZZZZZZ”;A<=Aregwhenoen=‘0’else“ZZZZZZZZ”;endarch;第四章答案:填空題:1、圖形、符號(hào)、文本、波形2、引腳鎖定3、時(shí)序仿真或后仿真選擇題:CBBB第五章答案:1、線性分組編碼器的VHDL參照程序libraryieee;useieee.std_logic_1164.all;enityencodeisport(clk:instd_logic;UI:instd_logic_vector(3downto0);Co:outstd_logic_vector(6downto0));Endencode;ArchitecturearchofencodeisSignalcc:std_logic_vector(6downto0);BeginCc(0)<=UI(0)xorUI(2)xorUI(3);Cc(1)<=UI(0)xorUI(1)xorUI(2);Cc(2)<=UI(1)xorUI(1)xorUI(3);Cc(3)<=UI(0);Cc(4)<=UI(1);Cc(5)<=UI(2);Cc(6)<=UI(3);Process(clk)BeginIfclk’eventandclk=‘1’thenCo<=cc;Endif;Endprocess;Endarch;線性分組解碼器的VHDL參照程序:libraryieee;useieee.std_logic_1164.all;enitydecodeisport(clk:instd_logic;y:instd_logic_vector(6downto0);outstd_logic_vector(6downto0));enddecode;architercturearchofdecodeissignale:std_logic_vector(6downto0);signals:std_logic_vector(2downto0);begins(0)<=Y(0)xorY(3)xorY(5)xorY(6);s(1)<=Y(1)xorY(3)xorY(4)xorY(5);s(2)<=Y(2)xorY(4)xorY(5)xorY(6);e(0)<=s(0)and(nots(1))and(nots(2));e(1)<=(nots(0))ands(1)and(nots(2));e(2)<=(nots(0))and(nots(1))ands(2);e(3)<=s(0)ands(1)and(nots(2));e(4)<=(nots(0))ands(1)ands(2);e(5)<=s(0)ands(1)ands(2);e(6)<=s(0)and(nots(1))ands(2);process(clk)beginifclk’eventandclk=
‘1’
thenc<=yxore;endif;endprocess;endarch;2、發(fā)送模塊參照程序libraryieee;useieee.std_logic_1164.all;entityI2C_transmitterisport(clk,reset,en:instd_logic;data:instd_logic_vector(7downto0);scl,sda:outstd_logic);endptos_port;architecturearchofI2C_transmitterissignaldatabuff:std_logic_vector(7downto0);signallink_sda,sdabuff,sclbuff:std_logic;typestatesis(ready,start,st1,st2,st3,st4,st5,st6,st7,st8,st9,stop,idle);signalstate:states;beginsda<=sdabuffwhenlink_sda=
‘1’
else‘Z’;scl<=sclbuff;--產(chǎn)生scl時(shí)鐘u1:process(reset,clk)beginif(reset=‘1’)thensclbuff<=‘1’;elsif(clk’eventandclk=sclbuff<=notsclbuff;endif;endu1;
‘1’)then--用一個(gè)狀態(tài)機(jī)控制sda信號(hào)的產(chǎn)生u2:process(reset,clk)beginifreset=‘1’thenlink_sda<=‘0’;state<=ready;sdabuff<=‘1’;elsifclk’eventandclk=‘0’casestateiswhenready=>ifen=‘1’thenlink_sda<=‘1’;state<=start;
thenelselink_sda<=‘0’;state<=ready;endif;whenstart=>ifsclbuff=‘1’anden=sdabuff<=‘0’;state<=st1;elsestate<=start;endif;whenst1=>ifsclbuff=‘0’thensdabuff<=databuff(7);state<=st2;elsestate<=st1;endif;whenst2=>ifsclbuff=‘0’thensdabuff<=databuff(6);state<=st3;elsestate<=st2;endif;whenst3=>ifsclbuff=‘0’thensdabuff<=databuff(5);state<=st4;elsestate<=st3;endif;whenst4=>ifsclbuff=‘0’thensdabuff<=databuff(4);state<=st5;elsestate<=st5;endif;whenst5=>ifsclbuff=‘0’thensdabuff<=databuff(3);state<=st6;else
‘1’thenstate<=st5;endif;whenst6=>ifsclbuff=‘0’thensdabuff<=databuff(2);state<=st7;elsestate<=st6;endif;whenst7=>ifsclbuff=‘0’thensdabuff<=databuff(1);state<=st8;elsestate<=st7;endif;whenst8=>ifsclbuff=‘0’thensdabuff<=databuff(0);state<=st9;elsestate<=st8;endif;whenst9=>ifsclbuff=‘0’thensdabuff<=‘0’;state<=stop;elsestate<=st9;endif;whenstop=>ifsclbuff=‘1’thensdabuff<=;‘1’state<=idle;elsestate<=stop;endif;whenidle=>link_sda<=‘0’;state<=ready;endcase;endif;endu2;--緩存接收到的數(shù)據(jù)u3:process(en)beginif(en=‘1’)thendatabuff<=data;endif;endu3;endarch;接收模塊參照程序libraryieee;useieee.std_logic_1164.all;entityI2C_receiverisport(scl,sda:instd_logic;reset:instd_logic;data:outstd_logic_vector(7downto0));endI2C_receiver;architecturearchofI2C_receiverissignalstart_bit,end_bit,receive:std_logic;signaldatabuff:std_logic_vector(7downto0);typestateis(st1,st2,st3,st4,st5,st6,st7,st8,st9);signalstate:states;beginu1:process(sda,reset)beginif(reset=‘1’)thenstart_bit<=‘0’;elsif(sda’eventandsda=ifscl=‘1’thenstart_bit<=‘1’elsestart_bit<=‘0’endif;
;;
‘0’)thenendif;endu1;u2:process(sda,reset)beginif(reset=‘1’)thenend_bit<=‘0’;data<=”00000000”;elsif(sda’eventandsda=ifscl=‘1’thenend_bit<=‘1’;data<=databuff;
‘1’)thenelseend_bit<=‘0’;endif;endif;endu2;u3:process(start_bit,end_bit,reset)beginif(reset=‘1’)thenreceive<=‘0’;elsif(start_bit=‘1’)thenreceive<=‘1’;elsif(end_bit=‘1’)thenreceive<=‘0’;endif;endu3;u4:process(scl,reset)beginifreset=‘1’thenstate<=st1;elsifscl’eventandscl=‘1’if(receive=‘1’)then
thencasestateiswhenst1=>state<=st2;databuff(7)<=sda;whenst2=>state<=st3;databuff(6)<=sda;whenst3=>state<=st4;databuff(5)<=sda;whenst4=>state<=st5;databuff(4)<=sda;whenst5=>state<=st6;databuff(3)<=sda;whenst6=>state<=st7;databuff(2)<=sda;whenst7=>state<=st8;databuff(1)<=sda;whenst8=>state<=st9;databuff(0)<=sda;whenst9=>state<=st1;endcase;endif;endif;endu4;endarch;思慮:1、上述程序中沒有加入ack確認(rèn)信號(hào)的功能,若是要加入程序該如何改正?(可通過改正狀態(tài)機(jī))2、如將發(fā)送模塊和接收模塊放在一個(gè)模塊(即一個(gè)實(shí)體里)程序又該如何改正?1.EDA設(shè)計(jì)流程一般包括設(shè)計(jì)輸入器件下載4個(gè)步驟;2.EDA的設(shè)計(jì)輸入法中常用的有ABEL-VHDL3種;
、設(shè)計(jì)實(shí)現(xiàn)VHDL
、
、設(shè)計(jì)考據(jù)Verilog-VHDL
和和3.功能仿真是在設(shè)計(jì)輸入完成后,選擇詳細(xì)器件進(jìn)行編譯從前進(jìn)行的邏輯功能考據(jù),因此又稱為前仿真;4.當(dāng)前最流行的并成為IEEE標(biāo)準(zhǔn)的硬件描述語(yǔ)言包括VHDL和Verilog-VHDL;5.硬件描述語(yǔ)言HDL給PLD和授課系統(tǒng)的設(shè)計(jì)帶來了更新的設(shè)計(jì)方法和理念,產(chǎn)生了目前最常用的并稱之為自頂向下的方法;6.將硬件描述語(yǔ)言轉(zhuǎn)變成硬件電路的重要工具軟件稱為HDL綜合器;7.用MAX+PLUSⅡ的輸入法設(shè)計(jì)的文件不能夠直接保存在根目錄下,因此設(shè)計(jì)者在進(jìn)入設(shè)計(jì)從前,應(yīng)當(dāng)在計(jì)算機(jī)中建立保存設(shè)計(jì)文件的文件夾;8.圖形文件設(shè)計(jì)結(jié)束后必然要經(jīng)過編譯,檢查設(shè)計(jì)文件可否正確;9.指定設(shè)計(jì)電路的輸入/輸出端口與目標(biāo)芯片引腳的鎖定后,再次對(duì)設(shè)計(jì)電路的仿真稱為引腳鎖定和后仿真;10.以EDA方式實(shí)現(xiàn)的電路設(shè)計(jì)文件,最后能夠編程下載到或芯片中,完成硬件設(shè)計(jì)和考據(jù);11.一般將一個(gè)完滿的VHDL程序稱為獨(dú)立的實(shí)體;12.用
VHDL
設(shè)計(jì)的電路,既能夠被高層次的系統(tǒng)調(diào)用,成為系統(tǒng)的一部分,也能夠作為一個(gè)電路的功能塊獨(dú)立運(yùn)行和獨(dú)立存在;13.VHDL設(shè)計(jì)實(shí)體的基本構(gòu)造由實(shí)體、構(gòu)造體、庫(kù)、程序包和配置部分組成;14.實(shí)體和構(gòu)造體是設(shè)計(jì)實(shí)體的基本組成部分,它們能夠組成最基本的VHDL程序;15.IEEE于1987年宣告了VHDL的標(biāo)準(zhǔn);16.IEEE于1993年宣告了VHDL的語(yǔ)法標(biāo)準(zhǔn);17.在VHDL中最常用的庫(kù)是IEEE標(biāo)準(zhǔn)庫(kù);18.VHDL的實(shí)體是由聲明部分和構(gòu)造部分組成;19.VHDL的實(shí)體聲明部分指定了設(shè)計(jì)單元的引腳或輸入/輸出,它是設(shè)計(jì)實(shí)體對(duì)外的一個(gè)通信界面,是外界能夠看到的部分;20.VHDL的構(gòu)造體用來描述設(shè)計(jì)實(shí)體的邏輯功能和邏輯構(gòu)造,它由VHDL語(yǔ)句組成是外界看不到部分;21.在VHDL的數(shù)據(jù)端口聲明語(yǔ)句中,端口方向包括IN、OUT、INOUT和BUFFER;22.VHDL的數(shù)據(jù)對(duì)象包括變量、常數(shù)和信號(hào),它們是用來存放各
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年個(gè)人藝術(shù)發(fā)展咨詢合同
- 概念驗(yàn)證中心建設(shè)協(xié)議
- 2025年人臉識(shí)別技術(shù)在安防領(lǐng)域的可行性研究報(bào)告
- 2025年高校創(chuàng)新創(chuàng)業(yè)孵化平臺(tái)項(xiàng)目可行性研究報(bào)告
- 2025年權(quán)益保護(hù)法律服務(wù)體系建設(shè)可行性研究報(bào)告
- 2025年市民文化活動(dòng)中心建設(shè)項(xiàng)目可行性研究報(bào)告
- 臨聘員工協(xié)議書
- 交接物品協(xié)議書
- 物業(yè)與綠化協(xié)議書
- 保留追責(zé)協(xié)議書
- 中國(guó)淋巴瘤治療指南(2025年版)
- 2025年云南省人民檢察院聘用制書記員招聘(22人)考試筆試模擬試題及答案解析
- 2026年空氣污染監(jiān)測(cè)方法培訓(xùn)課件
- 實(shí)習(xí)2025年實(shí)習(xí)實(shí)習(xí)期轉(zhuǎn)正協(xié)議合同
- 療傷旅館商業(yè)計(jì)劃書
- 購(gòu)買電影票合同范本
- 2025西部機(jī)場(chǎng)集團(tuán)航空物流有限公司招聘考試筆試備考題庫(kù)及答案解析
- 2025年廣西公需科目答案6卷
- 2025年鮑魚養(yǎng)殖合作協(xié)議合同協(xié)議
- 2025智慧消防行業(yè)市場(chǎng)深度調(diào)研及發(fā)展趨勢(shì)與投資前景預(yù)測(cè)研究報(bào)告
- 急性呼吸窘迫綜合征
評(píng)論
0/150
提交評(píng)論