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

正文內容

語法要點詳細講解-全文預覽

2025-09-27 04:22 上一頁面

下一頁面
  

【正文】 input [3:0] xme, tome。 output [7:0] out。任務調用時變量順序應與任務定義中聲明的順序相同。 kMAX_BITS。 task reverse_bits。 語法詳細講解 Verilog 任務 下面模塊中的任務只含有一個雙向總線 ( inout) 端口和一個內部變量 , 沒有其它輸入端口 、 輸出端口和定時控制 , 沒有引用模塊變量 , 不顯示任何內容 。 這是因為任務只有一組本地變量 , 同一時刻調用兩次相同的任務將會導致錯誤 。 ? 在任務中可以使用時間控制 。 end endmodule 要點: ? 任務調用是通過在 Verilog模塊中寫入任務名來實現(xiàn)的 。 neg_clocks(3)。 repeat(number_of_edges) (negedge clk)。 DUT u1(out, a, b, clk)。 語法詳細講解 Verilog中的高級結構 語法詳細講解 Verilog 任務 下面模塊中的任務含有定時控制和一個輸入,并且引用了一個本模塊的變量,但是沒有輸出,也沒有雙向總線和內部變量,不顯示任何內容。 ? 在任務和函數(shù)中不能聲明網絡連接類型的變量。 其中可以包含時間控制 ( 如: delays, , wait);也可以包含 input, output 、 inout 端口定義和參數(shù);也可以調用其他的任務或函數(shù) 語法詳細講解 Verilog中的高級結構 ? 函數(shù) : 1) 一般用于計算 , 或者用來代替組合邏輯 。 ? 學會怎樣禁止命名塊和任務 。 在 rd處于高電平時 , 上述存儲單元通過數(shù)據(jù)總線讀出數(shù)據(jù) 。 assign databus = rd ? datareg:?bz。 //結構模塊邏輯 endmodule 當 en_a_b = 1時, bus_a的值傳到 bus_b上 當 en_b_a = 1時, bus_b的值傳到 bus_a上 存儲器的端口建模: 語法詳細講解 雙向口建模 module ram_cell(databus,)。 inout bus_a,bus_b。 //結構模塊邏輯 endmodule 當 en_a_b=1時,元器件b1激活, bus_a的值傳到 bus_b上 當 en_b_a=1時,元器件 b1激活, bus_b的值傳到bus_a上 使用連續(xù)賦值為雙向口建模: 語法詳細講解 雙向口建模 b2 b1 en_a_b en_b_a bus_a bus_b [注意 ]:在 assign語句中 , 通過 en_a_b和 en_b_a控制 bus_a與bus_b之間的數(shù)據(jù)交換 。 inout bus_a,bus_b。當把 inout口作為輸入口時,必須通過控制邏輯禁止輸出到 inout口。 語法詳細講解 怎樣使用雙向口 [注意 ]: ? 聲明一個 inout口,可以用來輸入或輸出數(shù)據(jù)。 ( 所以仿真器能確定多個驅動源的最終值 。 注意:上面兩項必須寫 在 initial 塊中,加載這些初始化數(shù)據(jù)不需要時間。imemsize。 //存儲器地址 從 1 開始 //地址一個一個地增加直到包含了每個地址對應的存儲器 wire [wordsize:1] mem_word = mem[address+1]。 //mem declaration //output one word of memory wire [wordsize:1] mem_word=mem[address]。 //width of a word parameter words=(1addr_bits)。 ? 上頁的 RAM 模塊是可綜合的,但綜合出來是一大堆寄存器,占比較大的面積,經濟上不太合算。 reg [3:0] memory [0:15]。 語法詳細講解 簡單 RAM建模 `timescale 1ns/1ns module mymem(data,addr,read,write)。 always (addr or read_en_) if(!read_en_) read_data=mem[addr]。 output [3:0] read_data。 ? 明確對存儲器訪問操作的權限。 end endtask endmodule 語法詳細講解 怎樣使用任務 在測試模塊中使用任務可以提高程序代碼的效率,可以用任務把多次重復的操作包裝起來。 20 data = data_in。 end 語法詳細講解 怎樣使用任務 task cpu_driver。 cpu ul(data_valid,data,data_rd)。 end 注:這兩個時鐘模型有些不同,行為描述的模型延遲期間一直是低電平,而門級描述的模型開始延遲有半個周期是不確定的。 wire clk。 end 注:這兩個時鐘模型也有些不同,行為描述的模型一開始就有確定的電平,而門級描述的模型有延遲 , 開始時電平是不確定的。 wire clk。 initial begin (period+1) clk=1。 initial begin go=0。 initial begin clk=0。 initial begin go=0。 period/2 clk=1。 雖然有時在設計中會包含時鐘,但時鐘通常用在測試模塊中。 如果先使用 assign,再使用 force對同一信號賦值,則信號的值為 force所賦 的值, 語法詳細講解 強制激勵 語法詳細講解 強制激勵 當執(zhí)行 release后,則信號的值為 assign所賦 的值。 initial begin 10 force =0。 assign和 deassign 適用于對寄存器類型的信號 ( 例如: RTL級上的節(jié)點或測試模塊中在多個地方被賦值的信號 ) 進行賦值 。 join endmodule 語法詳細講解 并行塊 時間 data_bus 0 8?b0000_0000 10 8?b0100_0101 30 8?b0100_0110 40 8?b0100_0111 45 8?b1000_1110 50 8?b1000_1111 60 8?b1001_0000 65 8?b0010_0000 70 8?b0010_0001 時間 data_bus 80 8?b0010_0010 85 8?b0100_0100 90 8?b0100_0101 100 8?b0010_0001 105 8?b0100_0110 110 8?b1000_1100 120 8?b1000_1110 125 8?b0001_1100 140 8?b0000_1111 上面模塊的仿真輸出如下: 語法詳細講解 強制激勵 在一個過程塊中 , 可以用兩種不同的方式對信號變量或表達式進行連續(xù)賦值 。 10 data_bus = 8?h45。 用并行塊能表示以同一個時間起點算起的多個事 件的運行 , 并行地執(zhí)行復雜的過程結構 , 如循環(huán)或任務 。語法要點詳細講解 ? 有關測試模塊編寫的語法 ; ? 語法的高級部分: 函數(shù)、任務、文件、存貯器建立模型、 雙向總線、 UDP、綜合指令。 語法詳細講解 用 Verilog設計的步驟 注:虛線表示編譯器能檢查輸入文件的可讀性和是否存在以及是否允許生成輸出文件 include 文件 設計文件 廠家元件 庫文件 輸入文件:激勵和期望的輸出信號 輸出文件:激勵和實際輸出的信號 編譯器 仿真器 仿真器 語法詳細講解 測試平臺的組成 激勵 信號 需要驗證的 設計 激勵信號 和用于驗 證的結果 數(shù)據(jù) 需要驗證的 設計 簡單的測試平臺 復雜的測試平臺 語法詳細講解 并行塊 在測試塊中常用到 fork… join塊 。 initial fork data_bus= 8?b00。 140 data_bua = 8?h0f。 ? 兩種不同方式均不允許賦值語句間的時間控制 。 end force 和 release 用于寄存器類型和網絡連接類型(例如:門級掃描寄存器的輸出)的強制賦值,強制改寫其它地方的賦值。 force的賦值優(yōu)先級高于 assign。 不能對寄存器類型的信號某位或某些位使用 assign 和 deassign 來賦值。 always begin period/2 clk=0。 nand (period/2) ul (clk,clk,go)。 語法詳細講解 建立時鐘 [例 2]簡單的帶延遲的對稱方波時鐘: 語法詳細講解 建立時鐘 reg clk。 nand (period/2) ul (clk,clk,go)。 [例 3]. 帶延遲、頭一個脈沖不規(guī)則的、占空比不為 1的時鐘: reg clk。 end end reg go。 (5*period/41) go=1。 (period) forever (period/2) clk=!clk end reg go。 (period) go=1。 reg data_valid, data_rd。 cpu_driver (8?b0101_0101)。 wait (data_rd = =1)。 30 data_valid = 0。 存儲器建模必須注意以下兩個方面的問題: ? 聲明存儲器容量的大小。 input [3:0] addr。 initial $readmemb(“my_rom_data”,mem)。 ?這是一種保存 ROM數(shù)據(jù)的通用的方法,它可以使數(shù)據(jù)和 ROM模型分開。 input read, write。 endmodule 語法詳細講解 簡單 RAM建模 RAM模型比 ROM模型稍微復雜: ? 它必須具有讀寫能力; ? 進行讀寫時通常使用相同的數(shù)據(jù)總線; ? 需要新技術來處理雙向總線; ? 當讀信號無效時, RAM模型與總線脫離,如果此時寫 信號也無效,總線無驅動源,則總線進入高阻狀態(tài), 這就避免了 RAM中的讀寫競爭。 //size of address bus parameter wordsize=8。 //address bus reg [wordsize:1] mem [0 : words1]。 同樣地,也可以用下面的方法來定義存儲器和尋址: reg [wordsize:1] mem [1:words]。 for(i=0。 //從文件 中 , 把初始數(shù)據(jù)存入存儲器 (mem)的每個單元 $readmemb(“”,mem)
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1