




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)字系統(tǒng)設(shè)計(jì)與VerilogHDL〔復(fù)習(xí)〕EDA〔ElectronicDesignAutomation〕就是以計(jì)算機(jī)為工作平臺(tái),以EDA軟件工具為開(kāi)發(fā)環(huán)境,以PLD器件或者ASIC專(zhuān)用集成電路為目標(biāo)器件設(shè)計(jì)實(shí)現(xiàn)電路系統(tǒng)的一種技術(shù)。1.電子CAD〔ComputerAidedDesign〕2.電子CAE〔ComputerAidedEngineering〕3.EDA〔ElectronicDesignAutomation〕EDAp2EDA1.3數(shù)字系統(tǒng)設(shè)計(jì)的流程FPGA/CPLD的數(shù)字系統(tǒng)設(shè)計(jì)流程原理圖輸入(Schematicdiagrams)2、硬件描述語(yǔ)言(HDL設(shè)計(jì)輸入硬件描述語(yǔ)言與軟件編程語(yǔ)言有本質(zhì)的區(qū)分綜合〔Synthesis〕將較高層次的設(shè)計(jì)描述自動(dòng)轉(zhuǎn)化為較低層次描述的過(guò)程◆行為綜合:從算法表示、行為描述轉(zhuǎn)換到存放器傳輸級(jí)〔RTL〕◆規(guī)律綜合:RTL〔包括觸發(fā)器〕PLD綜合器是能自動(dòng)實(shí)現(xiàn)上述轉(zhuǎn)換的軟件工具HDL語(yǔ)言描述的電路功能轉(zhuǎn)化為具體電路網(wǎng)表的工具適配適配器也稱(chēng)為構(gòu)造綜合器,它的功能是將由綜合器產(chǎn)生的網(wǎng)表文件配置于指定的目標(biāo)器件中,并產(chǎn)生最終的可下載文件CPLDJEDECFPGABitstream位流數(shù)據(jù)文件p8仿真〔Simulation〕功能仿真〔FunctionSimulation〕時(shí)序仿真〔TimingSimulation〕仿真是對(duì)所設(shè)計(jì)電路的功能的驗(yàn)證p9編程〔Program〕把適配后生成的編程文件裝入到PLD器件中的過(guò)程,或稱(chēng)為下載。通常將對(duì)基于EEPROM工藝的非易失構(gòu)造PLD器件的下載稱(chēng)為編程Progra,將基于工藝構(gòu)造的PLD器件的下載稱(chēng)為配置Configur。習(xí) 題現(xiàn)代EDA什么是Top-down數(shù)字系統(tǒng)的實(shí)現(xiàn)方式有哪些?各有什么優(yōu)缺點(diǎn)?什么是IPIPEDA用硬件描述語(yǔ)言設(shè)計(jì)數(shù)字電路有什么優(yōu)勢(shì)?基于FPGA/CPLD什么是綜合?常用的綜合工具有哪些?功能仿真與時(shí)序仿真有什么區(qū)分?2FPGA/CPLDPLDPLDPLD
可編程規(guī)律器件〔PLD〕簡(jiǎn)潔PLD PROM PLA PAL GAL CPLD FPGA一般將GAL22V10〔500~750門(mén)〕作為簡(jiǎn)潔PLD和高密度PLDPLD一次性編程器件〔OTP,OneTimeProgrammable〕可屢次編程器件OTP類(lèi)器件的特點(diǎn)是:只允許對(duì)器件編程一次,不能修改,而可屢次編程器件則允許對(duì)器件屢次編程,適合于在科研開(kāi)發(fā)中使用。按編程特點(diǎn)分類(lèi)p15熔絲〔Fuse〕反熔絲〔Antifuse〕編程元件紫外線(xiàn)擦除、電可編程,如EPROM。(EEPRO、快閃存儲(chǔ)器FlashMemor,如多數(shù)(5)靜態(tài)存儲(chǔ)器〔SRAM〕構(gòu)造,如多數(shù)FPGA按編程元件和編程工藝分類(lèi)PLDPLDPLD與門(mén)、或門(mén)的表示PLDPLD簡(jiǎn)潔陣列的表示p20PROMPROM表達(dá)的PLDp21PROMPROMp222.5FPGA查找表構(gòu)造4輸入LUTp23習(xí) 題PLAPAL說(shuō)明GALOLMC簡(jiǎn)述基于乘積項(xiàng)的可編程規(guī)律器件的構(gòu)造特點(diǎn)?基于查找表的可編程規(guī)律構(gòu)造的原理是什么?基于乘積項(xiàng)和基于查找表的構(gòu)造各有什么優(yōu)缺點(diǎn)?CPLDFPGAFPGAp243QuartusIIQuartusII進(jìn)展EDAp26設(shè)計(jì)一個(gè)半加器p27設(shè)計(jì)一個(gè)全加器連接好的全加器原理圖f_adder.bdf習(xí) 題基于QuartusIID248基于QuartusII7490〔12、計(jì)分〔60〕〔60秒〕的簡(jiǎn)潔數(shù)字鐘電路。設(shè)計(jì)過(guò)程如下:先用QuartusII749060并進(jìn)展仿真,假設(shè)功能正確,則將其生成一個(gè)部件;74901212小時(shí)后系0、分鐘信號(hào),增加整點(diǎn)報(bào)時(shí)功能等。4章基于宏功能模塊的設(shè)計(jì)8功能仿真波形p3124lpm_counter鎖相環(huán)電路功能仿真波形習(xí) 題承受QuartusII軟件的宏功能模塊lpm_counter60編譯和仿真,查看仿真結(jié)果。QuartusIIlpm_rom8符號(hào)數(shù)加法的電路,并進(jìn)展編譯和仿真。先利用LPM_ROM4×48×8Verilog4×48×810MHz,想要得到6MHz的時(shí)鐘信號(hào),試altpll5VerilogHDL5.2Verilog1】4moduleadder4(cout,sum,ina,inb,cin);output[3:0]sum;outputcout;input[3:0]ina,inb;inputcin;assign{cout,sum}=ina+inb+cin;endmodulep36VerilogVerilogmodule和endmodule字之間;每個(gè)模塊實(shí)現(xiàn)特定的功能;模塊是可以進(jìn)展層次嵌套的。(input、output或inout),然后對(duì)模塊功能進(jìn)展描述。Verilog除了endmodule可以用/*……*/和//……Verilog注釋?zhuān)栽黾映绦虻目勺x性和可維護(hù)性。p37Verilog模塊的模板module<頂層模塊名>(<輸入輸出端口列表>);output輸出端口列表; //輸出端口聲明input 輸入端口列表; //輸入端口聲明/*定義數(shù)據(jù),信號(hào)的類(lèi)型,函數(shù)聲明*/reg信號(hào)名;//規(guī)律功能定義assign<結(jié)果信號(hào)名>=<表達(dá)式>; //使用assign語(yǔ)句定義規(guī)律功能//alwaysalways@(<敏感信號(hào)表達(dá)式>)begin//過(guò)程賦值//if-else,case//while,repeat,for//task,functionend//調(diào)用其他模塊<調(diào)用模塊名module_name><例化模塊名>(<端口列表port_list>);//門(mén)元件例化門(mén)元件關(guān)鍵字<例化門(mén)元件名>(<端口列表port_list>);endmodulep38習(xí) 題Verilog8Verilog86VerilogHDL標(biāo)識(shí)符〔Identifiers〕標(biāo)識(shí)符〔Identifiers〕Verilog中的標(biāo)識(shí)符可以是任意一組字母、數(shù)字以及符號(hào)“$”和“_”〔下劃線(xiàn)〕的組合,但標(biāo)識(shí)符的第一個(gè)字符必需是字母或者下劃線(xiàn)。另外,標(biāo)識(shí)符是區(qū)分大小寫(xiě)的。Examples:countCOUNT //COUNTcount_A1_d2 //以下劃線(xiàn)開(kāi)頭R56_68FIVEp41整數(shù)實(shí)數(shù)字符串6.2常量程序運(yùn)行中,值不能被轉(zhuǎn)變的量稱(chēng)為常量constantVerilog3p42整數(shù)按如下方式書(shū)寫(xiě):+/-<size>”<base><value>即+/-<位寬>”<進(jìn)制><數(shù)字>size為對(duì)應(yīng)二進(jìn)制數(shù)的寬度;basevalue4二進(jìn)制〔bB〕十進(jìn)制〔dD〕十六進(jìn)制〔hH〕八進(jìn)制〔oO〕整數(shù)〔integer〕p43Examples:8”b11000101 //110001018”hd5 //位寬為八位的十六進(jìn)制數(shù)d5;5”O(jiān)27 //54”D2 //424”B1x_01 //41x015”Hx //5位〔擴(kuò)展的x,即xxxxx4”hZ //4z,即zzzz8□”h□2A /*在位寬和”之間,以及進(jìn)制和數(shù)值之間允許消滅空格,但”和進(jìn)制之間,8”□h2A、8”h2□A*/整數(shù)〔integer〕p44實(shí)數(shù)〔Real〕有下面兩種表示法。十進(jìn)制表示法。例如:2.00.1 //2//非法:小數(shù)點(diǎn)兩側(cè)都必需有數(shù)字科學(xué)計(jì)數(shù)法。例如:43_5.1e2 //43510.09.6E2 //960.0(eE5E-4 //0.0005實(shí)數(shù)〔Real〕p45數(shù)據(jù)類(lèi)型Verilog0:01:1xX:不確定或未知的規(guī)律狀態(tài)zZ:高阻態(tài)Verilog4xz0x1z0X1Z數(shù)據(jù)類(lèi)型〔DataType〕是用來(lái)表示數(shù)字電路中的物理連線(xiàn)、數(shù)據(jù)存儲(chǔ)和傳輸單元等物理量的。p46netNet型數(shù)據(jù)相當(dāng)于硬件電路中的各種物理連接,其特點(diǎn)是輸出的值緊跟輸入值的變化而變出端;另一種方式是用持續(xù)賦值語(yǔ)句assignwire是最常用的Netwirewire12,……數(shù)據(jù)名n;例如:wirea,b; //定義了兩個(gè)wire型變量a和bExamples:wire[7:0]databus; //databus的寬度是8位wire[19:0]addrbus; //addrbus的寬度是20位p47Variablevariable型變量必需放在過(guò)程語(yǔ)句〔如initial、always〕中,通過(guò)過(guò)程賦值語(yǔ)句賦值;在always、initialvariable留意:variable型變量并不意味著肯定對(duì)應(yīng)著硬件上的一個(gè)觸發(fā)器或存放器等存儲(chǔ)元件,在綜合器進(jìn)展綜合時(shí),variable型變量會(huì)依據(jù)具體狀況來(lái)確定是映射成連線(xiàn)還是映射為觸發(fā)器或存放器。reg型變量是最常用的一種variablereg12,……數(shù)據(jù)名n;例如:rega,b;//定義了兩個(gè)reg型變量a,bExamples:reg[7:0]qout; //定義qout8位寬的regreg[8:1]qout;p48參數(shù)(parameter)Verilogparameterparameter代表一個(gè)常量。參數(shù)常用來(lái)定義時(shí)延和變量的寬度。其定義格式如下:parameter11,2233,……;例如:parametersel=8,code=8”ha3;/分別定義參數(shù)sel代表常數(shù)〔10進(jìn)制,參數(shù)code代表常量a16進(jìn)制〕p49向量1.標(biāo)量與向量寬度為1位的變量稱(chēng)為標(biāo)量,假設(shè)在變量聲明中沒(méi)有指定位寬,則默認(rèn)為標(biāo)量〔1位。舉例如下:wirea; //aregclk; //clk為標(biāo)量reg線(xiàn)寬大于1〔包括net型和variable型稱(chēng)為向量vecto的形式定義:[msb:lsb]比方:wire[3:0]bus; //4p50運(yùn)算符〔Operators〕1.算術(shù)運(yùn)算符〔Arithmeticoperators〕常用的算術(shù)運(yùn)算符包括:+ 加- 減* 乘/ 除% 求模p51規(guī)律運(yùn)算符〔Logicaloperators〕&& 規(guī)律與|| 規(guī)律或! 規(guī)律非p52位運(yùn)算符〔Bitwiseoperators〕位運(yùn)算,馬上兩個(gè)操作數(shù)按對(duì)應(yīng)位分別進(jìn)展規(guī)律運(yùn)算。~ 按位取反& 按位與| 按位或^ 按位異或^~,~^ 按位同或〔符號(hào)^~與~^是等價(jià)的〕p53關(guān)系運(yùn)算符〔Relationaloperators〕< 小于<= 小于或等于> 大于>= 大于或等于p54等式運(yùn)算符〔EqualityOperators〕== 等于!= 不等于===全等!== 不全等縮位運(yùn)算符〔Reductionoperators〕& 與~& 與非| 或~| 或非^ 異或^~,~^ 同或移位運(yùn)算符〔shiftoperators〕>> 右移<< 左移p57條件運(yùn)算符〔conditionaloperators〕:三目運(yùn)算符,其定義方式如下:signal=condition?true_expression:false_expression;12;12p58位拼接運(yùn)算符〔concatenationoperators〕{}該運(yùn)算符將兩個(gè)或多個(gè)信號(hào)的某些位拼接起來(lái)。使用如下:12np59習(xí) 題以下標(biāo)識(shí)符哪些是合法的,哪些是錯(cuò)誤的?Cout,8sum,\a*b,_data,\wait,initial,$latch以下數(shù)字的表示是否正確?6”d18,”Bx0,5”b0x110,”da30,10”d2,”hzF定義如下的變量和常量:定義一個(gè)名為count的整數(shù);定義一個(gè)名為ABUS8wire定義一個(gè)名為address16位reg128;定義參數(shù)Delay_time,參數(shù)值為8;定義一個(gè)名為DELAY的時(shí)間變量;32位的存放器MYREG;12832位的存儲(chǔ)器MYMEM;7Verilogp61VerilogHDL類(lèi)別語(yǔ)句類(lèi)別語(yǔ)句可綜合性initialalways塊語(yǔ)句賦值語(yǔ)句串行塊begin-end并行塊fork-join持續(xù)賦值assign過(guò)程賦值=、<=if-elsecaseforrepeatwhileforever`define`include`ifdef,`else,`endif√√√√√√√循環(huán)語(yǔ)句編譯向?qū)дZ(yǔ)句√√√過(guò)程語(yǔ)句initialalways在一個(gè)模塊〔module〕initialalwaysinitial句常用于仿真中的初始化,initialalways斷重復(fù)執(zhí)行的。p63alwaysalways@(<敏感信號(hào)表達(dá)式event-expression>)begin//過(guò)程賦值//if-else,case,casex,casez//while,repeat,for//task,functionend“always”條件滿(mǎn)足時(shí),其后的“begin-end”塊語(yǔ)句才能被執(zhí)行。p64塊語(yǔ)句塊語(yǔ)句是由塊標(biāo)志符begin-end或fork-join塊標(biāo)志符可以缺省。begin-end串行塊中的語(yǔ)句按串行方式挨次執(zhí)行。比方:beginregb=rega;regc=regb;endbegin-endregb、regc的值都更為regabegin-endregb、regc的值是一樣的。p65賦值語(yǔ)句持續(xù)賦值語(yǔ)句〔ContinuousAssignments〕assign為持續(xù)賦值語(yǔ)句,主要用于對(duì)wire比方:assignc=a&b;在上面的賦值中,a、b、c三個(gè)變量皆為wirea和bcp66條件語(yǔ)句〔if-else〕if-else3if〔表達(dá)式〕1;if〔表達(dá)式〕語(yǔ)句1;else 語(yǔ)句2;if〔1〕語(yǔ)句1;elseif〔2〕2;elseif〔3〕3;……elseif〔表達(dá)式n〕語(yǔ)句n;else語(yǔ)句n+1;p67casecase〔敏感表達(dá)式〕1:1;//case2:2;……n:語(yǔ)句n;default:語(yǔ)句n+1;endcasecasep68循環(huán)語(yǔ)句repeatloopinitialbeginfor(i=0;i<4;i=i+1)out=out+1;endinitialbeginrepeat(5)out=out+1;endinitialbegini=0;while(i<0)i=i+1;endforloopwhileloopVerilogforever:連續(xù)地執(zhí)行語(yǔ)句;多用在“initial”塊中,以生成時(shí)鐘等周期性波形。repeat:連續(xù)執(zhí)行一條語(yǔ)句nwhile:執(zhí)行一條語(yǔ)句直到某個(gè)條件不滿(mǎn)足。for:有條件的循環(huán)語(yǔ)句。p69forfor語(yǔ)句的使用格式如下〔同C語(yǔ)言:for〔123〕語(yǔ)句;即:for〔循環(huán)變量賦初值;循環(huán)完畢條件;循環(huán)變量增值〕執(zhí)行語(yǔ)句;p70編譯指示語(yǔ)句Verilog允許在程序中使用特別的編譯向?qū)А睠ompilerDirectives〕語(yǔ)句,在編譯時(shí),通常先對(duì)這些向?qū)дZ(yǔ)句進(jìn)展“預(yù)處理”,然后再將預(yù)處理的結(jié)果和源程序一起進(jìn)展編譯。向?qū)дZ(yǔ)句以符號(hào)“`”Verilog供給了十幾條編譯向?qū)дZ(yǔ)句,如:`define`ifdef`else`endif`restall`define,`include`ifdef、`else、`endifp71宏替換`define`define語(yǔ)句用于將一個(gè)簡(jiǎn)潔的名字或標(biāo)志符〔或稱(chēng)為宏名〕來(lái)代替一個(gè)簡(jiǎn)單的名字或字符串,其使用格式為:`define 宏名〔標(biāo)志符〕字符串如:`definesumina+inb+inc+indsum來(lái)代替了一個(gè)簡(jiǎn)單的表達(dá)式ina+inb+inc+ind,承受了這樣的定義形式后sum來(lái)代表表達(dá)式ina+inb+inc+ind了。p72文件包含`include`include`include “文件名”使用`include一個(gè)`include`include語(yǔ)句可以消滅在源程序的任何地方。被包含的文件假設(shè)與包含文件不在同一個(gè)子名目下,必需指明其路徑名。文件包含允很多重包含,比方文件12,23p73任務(wù)與函數(shù)任務(wù)〔task〕任務(wù)定義格式:task<任務(wù)名>; //留意無(wú)端口列表端口及數(shù)據(jù)類(lèi)型聲明語(yǔ)句;其它語(yǔ)句;endtask任務(wù)調(diào)用的格式為:<任務(wù)名>〔12,……〕;需要留意的是:任務(wù)調(diào)用時(shí)和定義時(shí)的端口變量應(yīng)是一一對(duì)應(yīng)的。p74函數(shù)的目的是返回一個(gè)值,以用于表達(dá)式計(jì)算函數(shù)的定義格式:function<返回值位寬或類(lèi)型說(shuō)明>函數(shù)名;端口聲明;局部變量定義;其它語(yǔ)句;endfunction<返回值位寬或類(lèi)型說(shuō)明>是一個(gè)可選項(xiàng),假設(shè)缺省,則返回值為1位存放器類(lèi)型的數(shù)據(jù)。函數(shù)〔function〕p75任務(wù)與函數(shù)的比較p76思考與練習(xí)試編寫(xiě)求補(bǔ)碼的Verilog8試編寫(xiě)兩個(gè)四位二進(jìn)制數(shù)相減的Verilog程序。有一個(gè)比較電路,當(dāng)輸入的一位8421BCD4時(shí),輸出為1,否則為0。試編寫(xiě)出Verilog3輸入與非門(mén)的Verilogp77思考與練習(xí)Verilog74138Synplify綜合,觀看RTLVerilog74161Synplify合,觀看RTLVerilog8位加法器,用QuartusIIVerilog8位計(jì)數(shù)器,用QuartusII8p79Verilog設(shè)計(jì)的描述風(fēng)格構(gòu)造〔Structural〕描述行為〔Behavioural〕描述數(shù)據(jù)流〔DataFlow〕描述p80Verilog調(diào)用Verilog〔門(mén)級(jí)構(gòu)造描述〕調(diào)用開(kāi)關(guān)級(jí)元件〔晶體管級(jí)構(gòu)造描述〕用戶(hù)自定義元件UDP〔也在門(mén)級(jí)〕構(gòu)造〔Structural〕描述p8121MUXmoduleMUX1(out,a,b,sel);outputout;inputa,b,sel;not (sel_,sel);and (a1,a,sel_),(a2,b,sel);or (out,a1,a2);endmodulep82行為描述就是對(duì)設(shè)計(jì)實(shí)體的數(shù)學(xué)模型的描述,其抽象程度遠(yuǎn)高于構(gòu)造描述方式。行為描述述清楚輸入與輸出信號(hào)的行為,而不需要花費(fèi)更多的精力關(guān)注設(shè)計(jì)功能的門(mén)級(jí)實(shí)現(xiàn)。p8321MUXmodulemux2(out,a,b,sel);outputout;inputa,b,s
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 儀器儀表行業(yè)智能化儀器儀表設(shè)計(jì)與生產(chǎn)方案
- 尾礦庫(kù)工程承包合同
- 年度業(yè)務(wù)策略分析研討會(huì)會(huì)議紀(jì)要和要點(diǎn)總結(jié)報(bào)告
- 工廠電路安裝工程合同
- 技能培訓(xùn)服務(wù)合同書(shū)
- 醫(yī)療器械售后服務(wù)與維修免責(zé)協(xié)議書(shū)
- 貨物抵押租賃合同
- 建筑工程承包合同條例
- 房地產(chǎn)保密協(xié)議合同
- 教室租賃合同協(xié)議書(shū)
- 中國(guó)濕疹診療指南
- 國(guó)家電網(wǎng)有限公司電網(wǎng)數(shù)字化項(xiàng)目工作量度量規(guī)范應(yīng)用指南(2020版)
- GB/T 3077-2015合金結(jié)構(gòu)鋼
- TTAAA 002-2022 天津市事故機(jī)動(dòng)車(chē)貶損價(jià)值評(píng)估標(biāo)準(zhǔn)
- GB/T 13024-2003箱紙板
- 幕墻工程項(xiàng)目管理方案手冊(cè)施工管理方案標(biāo)準(zhǔn)化手冊(cè)
- 萜類(lèi)天然藥物化學(xué)
- 妊娠合并急性胰腺炎課件
- 《滅火器維修》GA95-2015(全文)
- 公司年度虧損專(zhuān)項(xiàng)治理方案
評(píng)論
0/150
提交評(píng)論