《EDAVerilog語言》PPT課件

上傳人:陽*** 文檔編號:26705984 上傳時間:2021-08-12 格式:PPT 頁數(shù):81 大?。?.42MB
收藏 版權(quán)申訴 舉報 下載
《EDAVerilog語言》PPT課件_第1頁
第1頁 / 共81頁
《EDAVerilog語言》PPT課件_第2頁
第2頁 / 共81頁
《EDAVerilog語言》PPT課件_第3頁
第3頁 / 共81頁

下載文檔到電腦,查找使用更方便

25 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《《EDAVerilog語言》PPT課件》由會員分享,可在線閱讀,更多相關(guān)《《EDAVerilog語言》PPT課件(81頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、sl 1) Net( 網(wǎng) 絡(luò) 連 線 ) :由模 塊 或 門 驅(qū) 動 的 連 線 。驅(qū) 動 端 信 號 的 改 變 會 立 刻傳 遞 到 輸 出 的 連 線 上 。例 如 : 右 圖 上 , selb的 改變 , 會 自 動 地 立 刻 影 響 或門 的 輸 出 。 netsab selbselansl out如 果 不 明 確 地 說 明 連 接 是 何種 類 型 , 應(yīng) 該 是 指 wire 類 型 。Verilog語 言 2) 寄 存 器 ( reg) 類 型 數(shù) 據(jù) 儲 存 單 元 的 抽 象 。 默 認 初 始 值 為 X 常 用 行 為 語 句 結(jié) 構(gòu) 來 給 寄 存 器 類 型

2、的 變 量 賦 值 。 用 來 表 示always塊 內(nèi) 的 指 定 信 號absl selbnsl outreg_areg_selreg_b常 為 寄 存 器 或觸 發(fā) 器 的 輸 出 Verilog語 言( 在 always塊 內(nèi) 被 賦 值 的 每 個 信 號都 必 須 定 義 成 reg型 )sela 格 式 : regn-1:0 數(shù) 據(jù) 名 1, 數(shù) 據(jù) 名 2, , 數(shù) 據(jù) 名 i;或 regn:1 數(shù) 據(jù) 名 1, 數(shù) 據(jù) 名 2, , 數(shù) 據(jù) 名 i;例 : reg rega; reg3:0 regb, regc; 可 以 賦 正 值 也 可 以 賦 負 值 , 但 當(dāng) 一 個

3、 reg型 數(shù) 據(jù) 是 一 個 表 達 式中 的 操 作 數(shù) 時 , 它 的 值 被 當(dāng) 作 無 符 號 值 , 即 正 值 。如 regb被 賦 值 為 -1, 在 表 達 式 中 被 認 為 是 ? ? Verilog語 言 例 : 寄 存 器 的 聲 明 和 使 用 reg reset; initial begin reset=1b1; #100 reset=1b0; end reg signed 63:0 m;integer i;Verilog語 言 3) 整 數(shù) 、 實 數(shù) 和 時 間 寄 存 器 類 型integer( 通 用 寄 存 器 數(shù) 據(jù) 類 型 , 用 于 對 數(shù) 量 進

4、 行 操 作 ) 例 : integer counter;/一 般 用 途 , 做 為 計 數(shù) 器 inital counter=-1;real 實 常 量 和 實 寄 存 器 數(shù) 據(jù) 類 型 使 用 , 默 認 值 為 0 例 : Verilog語 言 time 保 存 仿 真 時 間 , 通 過 系 統(tǒng) 函 數(shù) $time可 以 得 到 當(dāng) 前 的 仿 真 時 間例 : time sve_sim_time; initial save_sim_time=$time; 4) 向 量線 網(wǎng) 和 寄 存 器 類 型 的 數(shù) 據(jù) 均 可 聲 明 為 向 量 ( 位 寬 大 于 1) 。 若 沒 有

5、指 定 位寬 , 則 默 認 為 標 量 ( 1位 ) 。例 : wire a; wire 7:0 bus; wire 31:0 busA,busB,busC; reg clock; reg 0:40 virtual_addr;/最 高 有 效 位 為 第 0位Verilog語 言 向 量 域 選 擇對 上 例 中 向 量 , 可 以 指 定 它 的 某 一 位 或 若 干 個 相 鄰 位busA 7bus 2:0 /不 可 以 寫 成 bus0:2,高 位 應(yīng) 寫 在 范 圍 說 明 的 左 側(cè)virtual_addr 0:1可 變 的 向 量 域 選 擇+:width 從 起 始 位 開

6、始 遞 增 , 位 寬 為 width-:width 從 起 始 位 開 始 遞 減 , 位 寬 為 widthVerilog語 言 Verilog語 言reg255:0 data1;reg0:255 data2;reg7:0 byte;byte=data1 31-:8;從 第 31位 算 起 , 寬 度 為 8位 , 相 當(dāng) 于data131:24byte=data1 24+:8;byte=data2 31-:8;從 第 31位 算 起 , 寬 度 為 8位 , 相 當(dāng) 于data124:31byte=data2 24+:8;/起 始 位 可 以 是 變 量 , 但 寬 度 必 須 為 常

7、數(shù) for (j=0;j=31;j=j+1) byte=data1(j*8)+:8;data1 (byteNum*8)+:8=8b0; 5) 數(shù) 組Verilog中 允 許 聲 明 reg, integer, time, real, realtime及 其 向 量 類 型 的數(shù) 組 , 對 數(shù) 組 的 維 數(shù) 沒 有 限 制 , 線 網(wǎng) 數(shù) 組 也 可 用 于 連 接 實 例 的 端 口integer count 0:7;reg bool31:0;time chk_point 1:100;/由 100個 時 間 檢 查 變 量 組 成 的 數(shù) 組reg 4:0 port_id 0:7;/由 8

8、個 端 口 標 識 變 量 組 成 的 數(shù) 組 , 端 口 變 量 的 位 寬 為 5integer matrix 4:00:255;/二 維 的 整 數(shù) 型 數(shù) 組reg 63:0 array_4d 15:07:07:0255:0;/四 維 64位 寄 存 器 型 數(shù) 組wire 7:0 w_array17:05:0;/聲 明 8位 線 型 變 量 的 二 維 數(shù) 組Verilog語 言 count5=0;chk_point100=0;port_id3=0;matrix 10=33559; /第 1行 第 0列 的 整 數(shù) 型 單 元 置 為 33559array_4d000015:0=0;

9、 /把 四 維 數(shù) 組 中 索 引 號 為 0000的 寄 存 器 型 單 元 的 015位 置 為 0port_id=0; /非 法matrix1=0; /非 法 Verilog語 言 6) memory類 型通 過 擴 展 reg型 數(shù) 據(jù) 的 地 址 范 圍 生 成 格 式 : regn-1:0 存 儲 器 名 m-1:0;或 者 regn-1:0 存 儲 器 名 m:1;例 : reg7:0 memea255:0; 必 須 為 常 數(shù)表 達 式Parameter wordsize=16, memsize=256 ;regwordsize-1:0 memmemsize-1:0, wrei

10、tereg, readreg;Verilog語 言 注 意 : regn-1:0 rega; reg meman-1:0; rega=0; mema=0; mema3=0; Verilog語 言 7) 參 數(shù)使 用 關(guān) 鍵 字 parameter在 模 塊 內(nèi) 定 義 常 數(shù) , 不 能 像 變 量 那 樣 賦 值 , 但 每個 模 塊 實 例 的 參 數(shù) 值 可 以 在 編 譯 階 段 被 重 載 ( defparam)parameter cache_line_width=256;/定 義 高 速 緩 沖 器 寬 度parameter signed 15:0 WIDTH;/把 參 數(shù) WID

11、TH規(guī) 定 為 有 正 負 號 , 寬 度 為 16位局 部 參 數(shù) 使 用 localparam定 義 , 值 不 能 改 變 , 不 能 通 過 參 數(shù) 重 載 或有 序 參 數(shù) 列 表 或 命 名 參 數(shù) 賦 值 來 直 接 修 改例 : 狀 態(tài) 機 的 狀 態(tài) 編 碼loacalparam state1=4b0001, state2=4b0010, state3=4b0100, state4=4b1000; Verilog語 言 參 數(shù) 值 的 改 寫 (方 法 之 一 )舉 例 說 明 :module mod ( out, ina, inb);parameter cycle = 8,

12、 real_constant=2.039, file = “/user1/jmdong/design/mem_file.dat”;endmodulemodule test; mod mk(out,ina,inb); defparam mk.cycle=6, mk.file=“./my_mem.dat”; endmodule Verilog語 言 參 數(shù) 值 的 改 寫 (方 法 之 二 )舉 例 說 明 :module mod ( out, ina, inb);parameter cycle = 8, real_constant=2.039, file = “/user1/jmdong/des

13、ign/mem_file.dat”;endmodulemodule test; mod # (5, 3.20, “./my_mem.dat”) mk(out,ina,inb); endmodule Verilog語 言 模 塊 DUT的 邊 界輸 入 口 輸 出 口輸 出 /入 口netnet/register net/registernet inoutVerilog語 言 8) 端 口 net net可 以 將 端 口 看 成 是 由 相 互連 接 的 兩 個 部 分 組 成 。 輸 入 口 ( input)對 于 模 塊 內(nèi) 部 , 必 須 為 線 網(wǎng) 類 型 ; 從 模 塊 外 部 看

14、, 可 以 為 線 網(wǎng) 或 reg型輸 出 口 (output)從 模 塊 內(nèi) 部 看 , 可 以 是 線 網(wǎng) 或 reg型 ; 從 外 部 看 , 必 須 為 線 網(wǎng) 類 型輸 入 /輸 出 口 (inout)從 模 塊 內(nèi) 部 看 , 必 須 為 線 網(wǎng) 類 型 ; 從 外 部 看 , 也 必 須 為 線 網(wǎng) 類 型對 模 塊 調(diào) 用 時 , Verilog允 許 端 口 的 內(nèi) 、 外 具 有 不 同 的 位 寬 , 但 Verilog仿 真 器 會 對 此 警 告Verilog允 許 模 塊 實 例 的 端 口 保 持 未 連 接 狀 態(tài) , 如 調(diào) 試 端 口例 : fulladd4

15、 fa0 (SUM, ,A,B,C_IN);Verilog語 言 端 口 與 外 部 信 號 的 連 接定 義 端 口 列 表 中 的 sum, c_out, a, b,c_in具 有 完 全 一 致 的 順 序Verilog語 言 非 順 序 端 口 連 接Verilog語 言 m1( SR_latch) 激 勵 ( 根 層 )n1( nand) n2( nand) Q, Qbar,S,R q, qbar,set,resetVerilog語 言 8) 層 次 命 名 stimulusstimulus.qbar stimulus.qstimulus.reset stimulus.setstim

16、ulus.m1.Q stimulus.m1stimulus.m1.S stimulus.m1.Qbarstimulus.n1 stimulus.m1.RVerilog語 言 門 級 建 模1. 門 級 ( 低 級 抽 象 層 次 )電 路 用 邏 輯 門 來 描 述 直 觀 性 Verilog描 述 和 電 路 邏 輯 圖 之 間 一 一 對 應(yīng) Verilog語 言 通 過 提 供 預(yù) 定 義 的 邏 輯 門 原 語 來 支 持 用 戶 使 用 邏 輯 門 設(shè) 計 電 路 Verilog基 本 門 單 元 ( primitives) 大 多 數(shù) ASIC和 FPGA元 件 庫 是 用 這 些

17、 基 本 單 元 開 發(fā) 的 ?;?本 單 元 名 稱 功 能andornotbufxornandnorxnor Logical And Logical Or Inverter Buffer Logical Exclusive Or Logical And Inverted Logical Or Inverted Logical Exclusive Or Inverted門 級 建 模 門 級 建 模 門 級 建 模 Verilog的 條 件 基 本 單 元這 四 種 基 本 單 元 只 能 有 三 個 引 腳 : output, input, enable基 本 單 元 名 稱 功 能buf

18、if1 條 件 緩 沖 器 , 邏 輯 1 使 能bufif0 條 件 緩 沖 器 , 邏 輯 0 使 能notif1 條 件 反 相 器 , 邏 輯 1 使 能notif0 條 件 反 相 器 , 邏 輯 1 使 能門 級 建 模 門 級 建 模 門 級 建 模 門 級 建 模門 實 例 語 句 格 式gate_typeinstance_name(term1,term2,.,termN);instance_name為 可 選 項 ;gate_type為 前 面 列 出 的 某 種 門 類 型 ;各 term用 于 表 示 與 門 的 輸 入 /輸 出 端 口 相 連 的 線 網(wǎng) 或 寄 存

19、器 。同 一 門 類 型 的 多 個 實 例 能 夠 在 一 個 結(jié) 構(gòu) 形 式 中 定 義 。 語 法 如 下 :gate_typeinstance_name1(term11,term12,.,term1N),instance_name2(term21,term22,.,term2N), .instance_nameM(termM1,termM2,.,termMN); 門 級 建 模門 實 例 數(shù) 組 門 級 建 模 多 輸 入 門 ( and, nand, nor, or, xor, xnor)多 輸 入 門 實 例 語 句 的 語 法 如 下 :multiple_input_gate_t

20、ypeinstance_name(OutputA,Input1,Input2,.,InputN); 門 級 建 模 多 輸 出 門 ( buf, not)實 例 語 句 的 基 本 語 法 如 下 :multiple_output_gate_typeinstance_name(Out1,Out2,.OutN,InputA); 門 級 建 模多 路 選 擇 器i0i2i1i3 s1 s0 out 74253 門 級 建 模多 路 選 擇 器 門 級 描 述 門 級 建 模多 路 選 擇 器 激 勵 模 塊 ( 略 ) 門 級 建 模 門 延 遲 上 升 延 遲 : 在 門 的 輸 入 發(fā) 生 變

21、 化 的 情 況 下 ,門 的 輸 出 從 0, X, Z 變 化 為 1所 需 的 時 間下 降 延 遲 : 門 的 輸 出 從 1, X, Z 變 化 為 0所需 的 時 間關(guān) 斷 延 遲 : 門 的 輸 出 從 0, 1 , X 變 化 為 Z所需 的 時 間 任 何 值 變 化 到 不 確 定 值 X, 所 需 時 間 可 以 看 為 以 上 三 種 延 遲 值 中 最 小 的 那個 門 級 建 模Verilog中 門 延 遲 說 明 類 型例 : 門 級 建 模總 結(jié) : 門 級 建 模 最 小 /典 型 /最 大 延 遲 ( 對 前 面 每 類 延 遲 來 描述 ) 排 列 形 式

22、 ( 最 小 : 典 型 : 最 大 ) 門 級 建 模實 例 Dbac e out#4#5 Verilog描 述 測 試 激 勵 模 塊 門 級 建 模 模 塊 的 測 試被 測 模 塊激 勵 和 控 制信 號 輸 出 響 應(yīng)和 驗 證 測 試 模 塊 常 見 的 形 式 : module t; reg ; / 被 測 模 塊 輸 入 /輸 出 變 量 類 型 定 義 wire; / 被 測 模 塊 輸 入 /輸 出 變 量 類 型 定 義 initial begin fork join end / 產(chǎn) 生 測 試 信 號 Testedmd m(.in1(ina), .in2(inb), .

23、out1(outa), .out2(outb) );/ 被 測 模 塊 的 實 例 引用 initial begin . end / 記 錄 輸 出 和 響 應(yīng) endmodule 嵌 套 塊 模 塊 的 測 試 激 勵 信 號 的 描 述 : module t; reg a, b, sel; wire out;/引 用 多 路 器 實 例 mux2_m (out, a, b, sel);/加 入 激 勵 信 號 initial begin a=0; b=1; sel=0; #10 b=0; #10 b=1; sel=1; #10 a=1; #10 $stop; end 模 塊 的 測 試 觀

24、 察 被 測 模 塊 的 響 應(yīng) :$time 返 回 當(dāng) 前 的 仿 真 時 刻$monitor 只 要 在 其 變 量 列 表 中 有 某 一 個 或 某 幾 個 變 量 值 發(fā) 生 變 化 , 便 在 仿真 單 位 時 間 結(jié) 束 時 顯 示 其 變 量 列 表 中 所 有 變 量 的 值 。 initial begin $monitor ($time, , “out=%b a=%b sel=%b”, out,a,b,sel); end 模 塊 的 測 試 如 何 把 被 測 模 塊 的 輸 出 變 化 記 錄 到 數(shù) 據(jù) 庫 文 件 中 ?可 用 以 下 幾 個 系 統(tǒng) 任 務(wù) :$f

25、open(“”); /打 開 記 錄 數(shù) 據(jù) 變 化 的 數(shù) 據(jù) 文 件$fdisplay(,p1,p2, ,pn); /寫 文 件$fmonitor(,p1,p2, ,pn); /寫 文 件 $fclose (); /關(guān) 閉 文 件 %m /顯 示 層 次$strobe /選 通 顯 示 模 塊 的 測 試 值 變 轉(zhuǎn) 儲 文 件 ( VCD) :$dumpfile(“file.dump”); /打 開 VCD數(shù) 據(jù) 庫 用 于 記 錄$dumpvars(); /選 擇 需 要 記 錄 的 模 塊 實 例 或 模 塊 實 例 信 號$dumpflush; /將 VCD數(shù) 據(jù) 保 存 到 磁

26、盤$dumpoff; /停 止 記 錄 數(shù) 據(jù) 變 化$dumpon; /重 新 開 始 記 錄 數(shù) 據(jù) 變 化$dumplimit(); /規(guī) 定 VCD文 件 的 大 小 ( 字 節(jié) )$dumpall; /記 錄 所 有 指 定 信 號 的 變 化 值模 塊 的 測 試 下 面 的 Verilog 代 碼 段 可 以 代 替 測 試 文 件 中 的 系 統(tǒng) 任 務(wù)$monitor initial begin $dumpfile(“vlog.dump”) ; $dumpvars(0,top); end 模 塊 的 測 試0代 表 轉(zhuǎn) 儲 top下各 層 的 所 有 信 號 1.連 續(xù) 賦

27、值 語 句數(shù) 據(jù) 流 建 模 的 基 本 語 句 , 用 于 對 線 網(wǎng) 賦 值 。 必 須 以 關(guān) 鍵 詞 assign開始 , 語 法 如 下 :continuous_assign :=assign drive_strength delay3 list_of_net_assignments;list_of_net_assignments :=net_assignment ,net_assignmentnet_assignment :=net_value=expressiondrive_strength是 可 選 項 , 默 認 為 strong1和 strong0delay3也 可 選 ,

28、 用 于 指 定 賦 值 的 延 遲數(shù) 據(jù) 流 級 建 模 強 度 相 同 信 號 間 或 Strong0和 Strong1發(fā) 生 競 爭 , 結(jié) 果 為 X只 有 treg類 型 線 網(wǎng) 可 具 有 存 儲 強 度 , 為 large、 medium、 small模 塊 的 測 試 數(shù) 據(jù) 流 級 建 模連 續(xù) 賦 值 語 句 特 點1、 連 續(xù) 賦 值 語 句 左 側(cè) 必 須 是 一 個 標 量 或 向 量 線 網(wǎng) , 或 標 量 和 向 量 線 網(wǎng) 的拼 接 , 不 能 是 向 量 或 向 量 寄 存 器2、 連 續(xù) 賦 值 總 處 于 激 活 狀 態(tài) , 有 任 一 個 操 作 數(shù) 變

29、 化 , 表 達 式 都 會 被 重 新計 算 并 賦 給 左 邊 的 線 網(wǎng)3、 操 作 數(shù) 可 以 是 標 量 或 向 量 的 線 網(wǎng) 或 寄 存 器 , 也 可 以 是 函 數(shù) 或 調(diào) 用4、 賦 值 延 遲 用 于 控 制 對 線 網(wǎng) 賦 予 新 值 的 時 間 , 根 據(jù) 仿 真 單 位 進 行 說 明 ,對 于 描 述 電 路 中 的 時 序 非 常 有 用 數(shù) 據(jù) 流 級 建 模例 : 數(shù) 據(jù) 流 級 建 模 隱 式 連 續(xù) 賦 值在 線 網(wǎng) 聲 明 的 同 時 進 行 賦 值由 于 線 網(wǎng) 只 能 被 聲 明 一 次 , 因 此 對 線 網(wǎng) 的 隱 式 聲 明 賦 值 只 能

30、有 一 次 數(shù) 據(jù) 流 級 建 模 隱 式 線 網(wǎng) 聲 明如 果 一 個 信 號 被 用 在 連 續(xù) 賦 值 語 句 的 左 側(cè) , 則 Verilog編 譯 器 認 為 該 信號 是 一 個 隱 式 聲 明 的 線 網(wǎng)如 果 線 網(wǎng) 被 連 接 到 模 塊 的 端 口 上 , 則 Verilog編 譯 器 認 為 隱 式 聲 明 線 網(wǎng)的 寬 度 等 于 模 塊 端 口 的 寬 度 數(shù) 據(jù) 流 級 建 模2.延 遲 普 通 賦 值 延 遲 在 連 續(xù) 賦 值 語 句 中 說 明 延 遲 值 慣 性 延 遲 :任 何 小于 該 延 時 值 的 變 化都 不 能 被 傳 輸 下 去 ,如 果 是

31、 傳 輸 延 時 沒有 這 個 限 制 。 (對 于 慣 性 延 遲 )慣 性 延 時 ( inertial delay) 通 常 在 信 號 通 過 邏 輯 門 的 時 候 發(fā) 生 。脈 沖 寬 度 小 于 復(fù) 制 延 遲 的 輸 入 變 化 不 會 對 輸 出 產(chǎn) 生 影 響 。原 語 門 , 開 關(guān) , 連 續(xù) 賦 值 語 句 和 MIPD ( module input port delay) 的 延 遲 只 能 是 慣 性 延 遲 。 (對 于 傳 輸 延 遲 )傳 輸 延 時 ( Transport delay) 相 當(dāng) 于 信 號 通 過 了 一 條 擁 有 固 定 延 時 的傳

32、輸 線 數(shù) 據(jù) 流 級 建 模 隱 式 連 續(xù) 賦 值 延 遲用 隱 式 連 續(xù) 賦 值 語 句 來 說 明 對 線 網(wǎng) 的 賦 值 以 及 賦 值 延 遲 線 網(wǎng) 聲 明 延 遲在 聲 明 線 網(wǎng) 時 指 定 一 個 延 遲 , 對 該 線 網(wǎng) 的 任 何 賦 值 都 會 被 推 遲 指 定 的 時 間 數(shù) 據(jù) 流 級 建 模四 位 脈 沖 進 位 計 數(shù) 器 的 RTL級 建 模 3. 操 作 符 類 型操 作 符 類 型 符 號連 接 及 復(fù) 制 操 作 符一 元 操 作 符算 術(shù) 操 作 符邏 輯 移 位 操 作 符關(guān) 系 操 作 符相 等 操 作 符按 位 操 作 符 邏 輯 操 作

33、 符條 件 操 作 符 ! parameter five = 5; integer ans, int; reg 3: 0 rega, regb; reg 3: 0 num; initial begin rega = 3; regb = 4b1010; int = -3; /int = 11111111_1101 end initial fork #10 ans = five * int; / ans = -15 #20 ans = (int + 5)/ 2; / ans = 1 #30 ans = five/ int; / ans = -1 #40 num = rega + regb; / n

34、um = 1101 #50 num = rega + 1; / num = 0100 #60 num = int; / num = 1101 #70 num = regb % rega; / num = 1 #80 $finish; joinendmodule 注 意 integer是有 符 號 數(shù) , 而reg是 無 符 號 數(shù) 。 not reg 3: 0 rega, regb, regc; reg 3: 0 num; initial begin rega = 4b1001; regb = 4b1010; regc = 4b11x0; end initial fork #10 num =

35、rega / num = 0000 #20 num = rega / num = 1000 #30 num = rega | regb; / num = 1011 #40 num = regb / num = 10 x0 #50 num = regb | regc; / num = 1110 #60 $finish; joinendmodule 按 位 操 作 符 對 矢 量 中 相 對 應(yīng) 位 運 算 。 位 值 為 x時 不 一 定 產(chǎn) 生 x結(jié) 果 。當(dāng) 兩 個 操 作 數(shù) 位 數(shù) 不 同 時 , 位 數(shù) 少 的操 作 數(shù) 零 擴 展 到 相 同 位 數(shù) 。a = 4b1011;b =

36、8b01010011;c = a | b; / a零 擴 展 為 8b00001011 按 位 操 作 符 數(shù) 據(jù) 流 級 建 模 module logical (); parameter five = 5; reg ans; reg 3: 0 rega, regb, regc; initial begin rega = 4b0011; /邏 輯 值 為 “ 1” regb = 4b10 xz; /邏 輯 值 為 “ 1” regc = 4b0z0 x; /邏 輯 值 為 “ x” end initial fork #10 ans = rega / ans = 0 #20 ans = rega

37、 | 0; / ans = 1 #30 ans = rega / ans = 1 #40 ans = regb / ans = 1 #50 ans = regc | 0; / ans = x #60 ans=! regb; / ans = 0 #70$finish; joinendmodule! not reg 3: 0 rega, regb; reg 3: 0 bit; reg log; initial begin rega = 4b1011; regb = 4b0000; end initial fork #10 bit = rega; / num = 0100 #20 bit = reg

38、b; / num = 1111 #30 log = !rega; / num = 0 #40 log = !regb; / num = 1 #50 $finish; joinendmodule! logical not 邏 輯 反 bit-wise not 位 反邏 輯 反 的 結(jié) 果 為 一 位 1, 0或 x。位 反 的 結(jié) 果 與 操 作 數(shù) 的 位 數(shù) 相 同 數(shù) 據(jù) 流 級 建 模 數(shù) 據(jù) 流 級 建 模 reg 9: 0 num, num1; reg 7: 0 rega, regb; initial rega = 8b00001100; initial fork #10 num =

39、 rega 5 ; / num = 01_1000_0000 #10 regb = rega 5 ; / regb = 1000_0000 #20 num 3; / num = 00_0000_0001 #20 regb 3 ; / regb = 0000_0001 #30 num = 10b11_1111_0000; #40 rega = num 2; /rega = 1100_0000 #40 num1 = num 2;/num1=11_1100_0000 #50 rega 2; /rega = 1111_1100 #50 num1 2;/num1=00_1111_1100 joinend

40、module 邏 輯 右 移 ( 非 循 環(huán) ) 算 術(shù) 右 移3); /結(jié) 果 為 -2, 由 于 算 術(shù) 運 算 , 右 移 三 位 , 空 缺 位 補 1 數(shù) 據(jù) 流 級 建 模 module relationals (); reg 3: 0 rega, regb, regc; reg val; initial begin rega = 4b0011; regb = 4b1010; regc = 4b0 x10; end initial fork #10 val = regc rega ; / val = x #20 val = regb = rega ; / val = 1 #40 v

41、al = regb regc ; / val = 1 #50 $finish; joinendmodule 大 于= 大 于 等 于regcrega和 regc的關(guān) 系 取 決 于 x 關(guān) 系 操 作 符 數(shù) 據(jù) 流 級 建 模 注 意 邏 輯 等 與case等 的 差 別2b1x=2b0 x 值 為 0, 因 為 不 相 等2b1x=2b1x 值 為 x, 因 為 可 能 不相 等 , 也 可 能 相 等2b1x=2b0 x 值 為 0, 因 為 不 相 同2b1x=2b1x 值 為 1, 因 為 相 同= 賦 值 操 作 符 , 將 等 式 右 邊 表 達 式 的 值 拷 貝 到 左 邊

42、。= =邏 輯 等= = 0 1 x z0 1 0 x x1 0 1 x xx x x x xz x x x x= = =case等= = 0 1 x z0 1 0 0 01 0 1 0 0 x 0 0 1 0 z 0 0 0 1 a = 2b1x;b = 2b1x;if (a = b) $display( a is equal to b);else $display( a is not equal to b);a = 2b1x;b = 2b1x;if (a = b) $display( a is identical to b);else $display( a is not identica

43、l to b);Case等 只 能 用 于 行 為 描述 , 不 能 用 于 RTL描 述 。 相 等 操 作 符 數(shù) 據(jù) 流 級 建 模 ! = 邏 輯 不 等 module equalities1(); reg 3: 0 rega, regb, regc; reg val; initial begin rega = 4b0011; regb = 4b1010; regc = 4b1x10; end initial fork #10 val = rega = regb ; / val = 0 #20 val = rega != regc; / val = 1 #30 val = regb !

44、= regc; / val = x #40 val = regc = regc; / val = x #50 $finish; joinendmodule其 結(jié) 果 是 1b1、 1b0或1bx。 如 果 左 邊 及 右 邊 為 確 定 值并 且 不 相 等 , 則 結(jié) 果 為 1。 如 果 左 邊 及 右 邊 為 確 定 值并 且 相 等 , 則 結(jié) 果 為 0。 如 果 左 邊 及 右 邊 有 值 不 能確 定 的 位 , 但 值 確 定 的 位 相等 , 則 結(jié) 果 為 x。!=的 結(jié) 果 與 = =相 反 數(shù) 據(jù) 流 級 建 模 ! =不 相 同 (case不 等 ) module e

45、qualities2(); reg 3: 0 rega, regb, regc; reg val; initial begin rega = 4b0011; regb = 4b1010; regc = 4b1x10; end initial fork #10 val = rega = regb ; / val = 0 #20 val = rega != regc; / val = 1 #30 val = regb = regc; / val = 0 #40 val = regc = regc; / val = 1 #50 $finish; joinendmodule其 結(jié) 果 是 1 b1、

46、1 b0或1 bx。 如 果 左 邊 及 右 邊 的 值 相 同( 包 括 x、 z), 則 結(jié) 果 為 0。如 果 左 邊 及 右 邊 的 值 不 相同 , 則 結(jié) 果 為 1。!=的 結(jié) 果 與 = 相 反綜 合 工 具 不 支 持 數(shù) 據(jù) 流 級 建 模 ?: 條 件 module likebufif( in, en, out); input in; input en; output out; assign out = (en = 1) ? in : bz;endmodulemodule like4to1( a, b, c, d, sel, out); input a, b, c, d;

47、 input 1: 0 sel; output out; assign out = sel = 2b00 ? a : sel = 2b01 ? b : sel = 2b10 ? c : d; endmodule 條 件 操 作 符 數(shù) 據(jù) 流 級 建 模 registger = condition ? true_value:false_value;每 個 條 件 操 作 符 必 須 有 三 個 參 數(shù) , 缺 少 任 何 一 個 都 會 產(chǎn) 生 錯 誤 。最 后 一 個 操 作 數(shù) 作 為 缺 省 值 。若 condition為 真 , 則 register=true_value;若 cond

48、ition為 假 , 則 register=false_value;如 果 條 件 值 不 確 定 , 則 對 兩 個 結(jié) 果 逐 位 比 較 , true_value=false_value 則 該位 值 為 操 作 數(shù) 中 該 位 值 , true_value false_value, 則 取 x。例 如 : assign out = (sel = 0) ? a : b;若 sel為 0則 out =a; 若 sel為 1則 out = b。如 果 sel為 x或 z, 若 a = b =0, 則 out = 0; 若 ab, 則 out值 不 確 定 。數(shù) 據(jù) 流 級 建 模 級 聯(lián)從

49、不 同 矢 量 中 選 擇 位 并 用 它們 組 成 一 個 新 的 矢 量 。 module concatenation; reg 7: 0 rega, regb, regc, regd; reg 7: 0 new; initial begin rega = 8b0000_0011; regb = 8b0000_0100; regc = 8b0001_1000; regd = 8b1110_0000; end initial fork #10 new = regc 4: 3, regd 7: 5, regb 2, rega 1: 0; / new = 8b11111111 #20 $fini

50、sh; joinendmodule每 個 操 作 數(shù) 必 須 有 確 定 位寬類 似 錯 誤 的 例 子 : a7:0 = 4 b10; b7:0 = 2 5; c3:0 = 3b011, b0;級 聯(lián) 時 不 限 定 操 作 數(shù) 的 數(shù)目 。 在 操 作 符 符 號 中 , 用逗 號 將 操 作 數(shù) 分 開 。 例 如 : A, B, C, D 級 聯(lián) 操 作 符 數(shù) 據(jù) 流 級 建 模 復(fù) 制復(fù) 制 一 個 變 量 或 在 中 的 值前 兩 個 符 號 之 間 的 正 整 數(shù)指 定 復(fù) 制 次 數(shù) 。 復(fù) 制 數(shù) 據(jù) 流 級 建 模module replicate (); reg 3: 0

51、 rega; reg 1: 0 regb, regc; reg 7: 0 bus; initial begin rega = 4b1001; regb = 2b11; regc = 2b00; end initial fork #10 bus = 4 regb; / bus = 11111111 / regb is replicated 4 times. #20 bus = 2 regb, 2 regc ; / bus = 11110000. regc and regb are each / replicated, and the resulting vectors / are concatenated together #30 bus = 4 rega1, rega ; / bus = 00001001. rega is sign-extended #40 $finish; joinendmodule 數(shù) 據(jù) 流 級 建 模用 邏 輯 方 程 描 述 四 選 一 多 路 選 擇 器 數(shù) 據(jù) 流 級 建 模用 條 件 操 作 語 句 描 述 四 選 一 多 路 選 擇 器 四 選 一激 勵 模 塊

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!