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

正文內(nèi)容

fpga內(nèi)部資料大匯集-閱讀頁

2025-01-22 13:37本頁面
  

【正文】 $readmemb (vec. txt, stim)。 i num_vecs 。 endendmodule// 激勵文件 001110000011100100111010001111000011000000101000000110000111100010111000..? 使用矢量文件輸入 /輸出的優(yōu)點(diǎn):– 激勵修改簡單– 設(shè)計反復(fù)驗(yàn)證時直接使用工具比較矢量文件。always ( posedge cor_err) $display(warningcorrectable error detected)。– 在內(nèi)部保持錯誤跟蹤,并在每次測試結(jié)束時產(chǎn)生一個錯誤報告。– 過程持續(xù)賦值通常不可綜合,所以它們通常用于測試基準(zhǔn)描述。– 不允許在賦值語句內(nèi)部出現(xiàn)時序控制。這個寄存器可以是 RTL設(shè)計中的一個節(jié)點(diǎn)或測試基準(zhǔn)中在多個地方賦值的信號等。 20 deassign 。 initial begin 10 force top. dut. counter. scan_ reg. q = 0 。 end強(qiáng)制激勵? 可以強(qiáng)制 (force)并釋放一個信號的指定位、部分位或連接,但位的指定不能是一個變量(例如 out_vec[i])? 不能對 register的一位或部分位使用 assign和 deassign? 對同一個信號, force覆蓋 assign。? 如果對一個信號先 assign然后 force,它將保持 force值。? 如果在一個信號上 force多個值,然后 release該信號,則不出現(xiàn)任何 force值。如果所賦值是一個表達(dá)式,則該表達(dá)式將被持續(xù)計算。下面介紹如何產(chǎn)生不同的時鐘波形。always begin ( period/2) ck = 0。endreg go。nand ( period/2) u1 (ck, ck, go)。 ( period/2) go = 1。 產(chǎn)生的波形(假定 period為 20)建立時鐘例 2:有啟動延時的對稱時鐘的例子:reg ck。 ( period) forever ( period/2) ck = !ck。 wire ck。initialbegin go = 0。end注意: 在行為描述中,在時間 0將 CK初始化為 0;而在結(jié)構(gòu)描述中,直到period/2才影響 CK值??梢允褂锰厥饷?force和 release立即影響 CK值。產(chǎn)生的波形(假定 period為 20)reg ck。 (period/2 – 1) forever begin (period/4) ck = 0。 endendreg go。nand (3*period/4, period/4) u1(ck, ck, go)。 (5*period/4 – 1) go = 1。module bus_ctrl_tb。 reg data_valid, data_rd。 initial begin cpu_driver (839。 cpu_driver (839。 cpu_driver (839。 end task cpu_driver。 begin 30 data_valid = 1。 20 data = data_ in。 20 data = 839。 30 data_valid = 0。? 循環(huán)或 always塊能有效地產(chǎn)生規(guī)則激勵,不規(guī)則激勵適合用在 initial塊產(chǎn)生。? 行為級代碼可以很容易地產(chǎn)生一個啟動時間不規(guī)則的時鐘波形,并且可以在時刻零初始化時鐘。? 提供內(nèi)容訪問的級別,例如:252。讀和寫252。多個讀操作,同時進(jìn)行單個寫操作252。 ROM的數(shù)據(jù)單獨(dú)保存在文件 my_rom_data中,如右邊所示。`timescale 1ns/10psmodule myrom (read_data, addr, read_en_)。 input [3:0] addr。 reg [3:0] read_data。 initial $readmemb (my_rom_data, mem)。endmodulemy_rom_data0000010111000011110100100011111110001001100000011101101000011101簡單的 RAM描述 RAM描述比 ROM略微復(fù)雜,因?yàn)楸仨毤扔凶x功能又有寫功能,而讀寫通常使用同一數(shù)據(jù)總線。在下面的例子中,若讀端口未使能,則模型不驅(qū)動數(shù)據(jù)總線;此時若數(shù)據(jù)總線沒有寫數(shù)據(jù)驅(qū)動,則總線為高阻態(tài) Z。`timescale 1ns /1nsmodule mymem (data, addr, read, write)。 input [3:0] addr。 reg [3:0] memory [0:15]。bz。endmodule 這個描述可綜合,但許多工具僅僅產(chǎn)生一個寄存器堆,因此與一個真正的存儲器相比耗費(fèi)更多的面積。module scalable_ROM (mem_word, address)。 // 地址總線寬度 parameter wordsize = 8。 // mem容量 output [wordsize:1] mem_word。 // 地址總線 reg [wordsize:1] mem [0 : words1]。endmodule 例中存儲器字范圍從 0而不是 1開始,因?yàn)榇鎯ζ髦苯佑玫刂肪€確定地址。 reg [wordsize:1] mem [1:words]。 存儲器數(shù)據(jù)裝入可以使用循環(huán)或系統(tǒng)任務(wù)給存儲器裝入初始化數(shù)據(jù)? 用循環(huán)給存儲器的每個字賦值 for (i= 0。 i = i+ 1) // initialize memory mema[ i] = {wordsize{ 139。 ? 調(diào)用系統(tǒng)任務(wù) $readmem $readmemb(mem_file. txt, mema)。對于 ROM,開始時寫入的數(shù)據(jù)就是其實(shí)際內(nèi)容。 使用雙向端口用關(guān)鍵詞 inout聲明一個雙向端口 inout [7:0] databus。252。252。端口數(shù)據(jù)類型缺省為 類型。? 在同一時間應(yīng)只從一個方向驅(qū)動 inout端口。 例如:在 RAM模型中,如果使用雙向數(shù)據(jù)總線讀取 RAM數(shù)據(jù),同時在數(shù)據(jù)總線上驅(qū)動寫數(shù)據(jù),則會產(chǎn)生邏輯沖突,使數(shù)據(jù)總線變?yōu)槲粗?必須設(shè)計與 inout端口相關(guān)的邏輯以確保正確操作。雙向端口建模 — 使用基本單元建模module bus_xcvr( bus_a, bus_b, en_a_b, en_b_a)。 input en_a_b, en_b_a。 bufif1 b2 (bus_a, bus_b, en_b_a)。 inout bus_a, bus_b。 assign bus_b = en_a_b ? bus_a : 39。 assign bus_a = en_b_a ? bus_b : 39。// Structural module logicendmodule 若 en_a_b=1,賦值語句驅(qū)動 bus_a數(shù)據(jù)到 bus_b若 en_b_a=1,賦值語句驅(qū)動 bus_b值到 bus_a信號 en_a_b和 en_b_a控制使能雙向端口建模 — 存儲器端口建模module ram_cell( databus, rd, wr)。 input rd, wr。 assign databus = rd ? datareg : 39。 always ( negedge wr) datareg = databus。? 可以用系統(tǒng)任務(wù) $readmem或 $readmemb或用過程賦值向存儲器加載數(shù)據(jù)? 因?yàn)?inout兩端信號必須都是 數(shù)據(jù)類型,因此只能使用基本單元,子模塊,或持續(xù)賦值驅(qū)動數(shù)據(jù)。 演講完畢,謝謝觀看!
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1