freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

語(yǔ)法要點(diǎn)詳細(xì)講解-wenkub

2022-09-12 04:22:35 本頁(yè)面
 

【正文】 data_rd= =0)。 input [7:0] data_in。 initial begin cpu_driver (8?b0000_0000)。 語(yǔ)法詳細(xì)講解 怎樣使用任務(wù) 舉例說(shuō)明如何使用任務(wù): module bus_ctrl_tb。 nand (period/2) ul (clk,clk,go)。 語(yǔ)法詳細(xì)講解 建立時(shí)鐘 [例 2]簡(jiǎn)單的帶延遲的對(duì)稱方波時(shí)鐘: 語(yǔ)法詳細(xì)講解 建立時(shí)鐘 reg clk。 nand (3*period/4,period/4) ul (clk,clk,go)。 (period/21) forever begin (period/4) clk=0。 (period) go=1。 (period) forever (period/2) clk=!clk end reg go。 (period/2) go=1。 end reg go。下面 三個(gè)例子分別說(shuō)明如何在門(mén)級(jí)和行為級(jí)建立不同波形的時(shí)鐘模型。 如果用 force對(duì)同一個(gè)信號(hào)賦了幾次值,再執(zhí)行release,則所有賦的值均不再存在。 20 release 。 initial begin 10 assign = `init_state。 ? 過(guò)程連續(xù)賦值往往是不可以綜合的 , 通常用在測(cè)試模塊中 。 //這兩個(gè) repeat開(kāi)始執(zhí)行時(shí)間不同 , 但能同時(shí)運(yùn)行 20 repeat (10) 10 data_bus = data_bus +1。 舉例說(shuō)明如下: module inline_tb。 語(yǔ)法詳細(xì)講解 Verilog測(cè)試模塊的編寫(xiě) 目的: ? 復(fù)習(xí)如何編寫(xiě)較復(fù)雜的測(cè)試文件,對(duì)所做的設(shè)計(jì) 進(jìn)行完整的測(cè)試和驗(yàn)證。 ? 掌握組織模塊測(cè)試的常用方法;學(xué)會(huì)編寫(xiě)常用的 測(cè)試代碼。 reg [7:0] data_bus。 25 repeat (5) 20 data_bus = data_bus 1。 ? 兩種方式都有各自配套的命令來(lái)停止賦值過(guò)程 。 20 deassign 。 end 在以上兩個(gè)例子中,在 10到 20 這個(gè)時(shí)間段內(nèi),網(wǎng)絡(luò)或寄存器類型的信號(hào)被強(qiáng)制賦值,而別處對(duì)該變量的賦值均無(wú)效。 可以對(duì)信號(hào)的某(確定)位、某些(確定)位或拼接的信號(hào),使用 force和 release賦值;但不能對(duì)信號(hào)的可變位使用 force和 release 來(lái)賦值。 [例 1] 簡(jiǎn)單的對(duì)稱方波時(shí)鐘: reg clk。 wire clk。 end 注:在有些仿真器中,如果設(shè)計(jì)所用的時(shí)鐘是由與其相同抽象級(jí)別的時(shí)鐘模型產(chǎn)生的,則仿真器的性能就能得到提高。 wire clk。 end 注:這兩個(gè)時(shí)鐘模型有些不同,行為描述的模型延遲期間一直是低電平,而門(mén)級(jí)描述的模型開(kāi)始延遲有半個(gè)周期是不確定的。 (3*period/4) clk=1。 initial begin (period/4+1) go=0。 initial begin clk=0。 initial begin go=0。 reg [7:0] data。 cpu_driver (8?b1010_1010)。 begin 30 data_valid =1。 20 data = 8?hzz。 學(xué)會(huì)如何用 Verilog中對(duì)雙向(即輸入 /輸出)端口 , ( inout)建模。 input read_en_。 reg [3:0] mem [0:15]。 ?ROM中的數(shù)據(jù)保存在一個(gè)獨(dú)立的文件中,如上頁(yè)的右邊的虛線方框所示。 inout [3:0] addr。 //從總線寫(xiě)入存儲(chǔ)器 always (posedge write) memory[addr]=data。 parameter addr_bits=8。 //word of memory input [addr_bits:1] address。 [注意 ] !! 在上例中,存儲(chǔ)字的范圍從 0開(kāi)始的,而不是從 1開(kāi)始,這是因?yàn)榇鎯?chǔ)單元是直接通過(guò)地址線尋址定位的。 ? 使用循環(huán)把值賦給存儲(chǔ)器數(shù)組。 ? 調(diào)用 $readmem系統(tǒng)任務(wù)。 inout [7:0] databus。 例如:當(dāng)使用總線讀 RAM中的數(shù)據(jù)時(shí) , 如果同時(shí)又向 RAM模型的雙向數(shù)據(jù)總線寫(xiě)數(shù)據(jù) , 就會(huì)產(chǎn)生邏輯競(jìng)爭(zhēng) , 導(dǎo)致總線數(shù)據(jù)無(wú)法確定 。不允許在過(guò)程塊( initial 或always塊)中對(duì)網(wǎng)絡(luò)連接類型的數(shù)據(jù)進(jìn)行過(guò)程賦值;但可以在過(guò)程塊外把一個(gè)寄存器數(shù)據(jù)類型通過(guò)連續(xù)賦值語(yǔ)句賦給它( inout口),或者把它與用戶定義的源語(yǔ)( UDP)相連。 所以必須把控制信號(hào) en_a_b 和 en_b_a 在時(shí)間上分開(kāi)。 bufifl b1(bus_b,bus_a,en_a_b)。 所以必須把控制信號(hào) en_a_b 和 en_b_a 在時(shí)間上分開(kāi) 。 assign bus_b = en_a_b? bus_a:?bz。 input rd,wr。 endmodule 當(dāng) rd等于 1時(shí) datareg的值被賦給 databus 當(dāng) wr的下降沿到達(dá)時(shí),databus的值被寫(xiě)入datareg 測(cè)試模塊 RAM單元 數(shù)據(jù)總線 數(shù)據(jù) 寄存 器 rd wr [注意 ]: 上頁(yè)中存儲(chǔ)單元在 wr的下降沿到達(dá)時(shí)存入數(shù)據(jù)。 語(yǔ)法詳細(xì)講解 雙向口建模 目標(biāo) : ? 學(xué)會(huì)怎樣定義或調(diào)用任務(wù)和函數(shù) 。 語(yǔ)法詳細(xì)講解 Verilog中的高級(jí)結(jié)構(gòu) 通過(guò)把代碼分成小的模塊或者使用任務(wù)和函數(shù) , 可把一項(xiàng)任務(wù)分成許多較小的 、 易于管理的部分 , 從而提高代碼的可讀性 、 可維護(hù)性和可重用性 。 3) 函數(shù)只有 input變量 , 雖然沒(méi)有 output變量 , 4) 但可以通過(guò)函數(shù)名返回一個(gè)值 。 ? 只有當(dāng)任務(wù)或函數(shù)調(diào)用并執(zhí)行完后,才能有返回值。 module top。 語(yǔ)法詳細(xì)講解 Verilog 任務(wù) task neg_clocks。 a=1。 neg_clocks(5)。 傳遞給任務(wù)的變量與任務(wù) I/O端口變量的聲明次序相同 。 ? 關(guān)鍵字 disable可以用來(lái)禁止任務(wù)的執(zhí)行 。 在任務(wù)或函數(shù)中 , 引用父模塊中聲明的變量時(shí)要特別注意 ( 即注意變量的層次命名規(guī)則 ) 。 語(yǔ)法詳細(xì)講解 Verilog 任務(wù) parameter MAX_BITS=8。 //雙向總線端口被當(dāng)作寄存器類型 ! integer K。 endtask always (posedge clk) reverse_bits (D)。 input clk, en_mult。 always (posedge clk) multme(a, b, out)。 wait (en_mult) result=xme*tome。 reg [7:0] out。 if (e= =1) f_or_and = (a|b) amp。 在模塊中 ,使用名為 f_or_and的函數(shù)時(shí) ,是把它作為名為 f_or_and 的寄存器類型變量來(lái)處理的 。 ? 函數(shù)定義必須包含在模塊定義之內(nèi) 。 {o1, o2, o3, o4} = f_or_and(a, b, c, d, e)。 下例中的函數(shù) , 聲明了一個(gè)內(nèi)部整型變量 。 function [3:0] zero_count。 for (I=0。 我們可以在任何類型的表達(dá)式中調(diào)用函數(shù) 。 reg neg。 //運(yùn)算結(jié)果可以為負(fù)數(shù) endfunction 語(yǔ)法詳細(xì)講解 Verilog 函數(shù) always (a or b) begin if ( subtr (a,b) 0) neg = 1。 語(yǔ)法詳細(xì)講解 Verilog 函數(shù) … . parameter MAX_BITS =8。 for(K=0。 … .. end ……… 語(yǔ)法詳細(xì)講解 Verilog 函數(shù) 語(yǔ)法詳細(xì)講解 命名塊 ? 可以通過(guò)在關(guān)鍵字 begin或 fork后加上: 〈 塊名 〉 來(lái)給塊命名 。 注意: ? 命名塊使 Verilog有更廣闊的適用范圍 。 input [7:0] a, b, c, d, e。 //***本地變量 *** {tmp, tmp2} = f_or_and(a, b, c, d, e)。 //**禁止命名塊的執(zhí)行 end //在此定義任務(wù)和函數(shù) ………… .. endmodle 注意: ? disable語(yǔ)句用來(lái)終止命名塊或任務(wù)的執(zhí)行 。 在上頁(yè)的例子中 , 只禁止命名塊也可以得到預(yù)期的結(jié)果:命名塊中所有的事件 , 包括任務(wù)和函數(shù)的執(zhí)行都將 被取消 。 $fclose。 output [15:0] s。 endmodule 語(yǔ)法詳細(xì)講解 隨機(jī)數(shù)的產(chǎn)生 $random ? 語(yǔ)法要點(diǎn): $random。 …. //用來(lái)測(cè)試地址為 0到 1024之間任意值時(shí)的 Rom。 //bit 1 set handle2= $fopen()。 integer desc1,desc2,desc3。 fdisplay(desc2, Display 2…… , )。 舉例: $fclose(handle1)。 M m1( )。 $readmemb(〈 文件名 〉 , 〈 存儲(chǔ)器名 〉 ,起始地址 )。 inititial begin $readmemb (,memory)。) $display (memory [%0d]=%b, i, memory)。 如果狀態(tài)改變比較復(fù)雜 , 最好使用顯式狀態(tài)機(jī) , 這樣效果更好 。 語(yǔ)法詳細(xì)講解 有限狀態(tài)機(jī)( FSMs) 語(yǔ)法詳細(xì)講解 顯式有限狀態(tài)機(jī) module exp(out, datain, clk, rst)。 reg state。 else state=1?b1。 endcase endmodule 注: ? 在過(guò)程塊中可以使用一個(gè)時(shí)鐘沿和 case 語(yǔ)句來(lái)描述一個(gè)顯式狀態(tài)機(jī) 。 語(yǔ)法詳細(xì)講解 顯式有限狀態(tài)機(jī) 轉(zhuǎn)到下一個(gè)狀態(tài) 默認(rèn)狀態(tài)指針 0 1 1 0 1 識(shí)別 11序列 clk rst out begin: seq_block out=1?b0。隱式 FSM往往是不可綜合的。 語(yǔ)法詳細(xì)講解
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1