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

正文內(nèi)容

第六章verilog的數(shù)據(jù)類(lèi)型及邏輯系統(tǒng)(參考版)

2025-08-04 13:21本頁(yè)面
  

【正文】 or or1( out, a1, b1)。 and and1( a1, a, SEL)。 input a, b, sel。 module MUX2_1 (out, a, b, sel)。 編寫(xiě)與大小無(wú)關(guān)的源代碼 Verilog是對(duì)大小寫(xiě)敏感的語(yǔ)言,如 sel和 SEL是不同的標(biāo)識(shí)符 ? Verilog 關(guān)鍵字均使用小寫(xiě),如 input, output ? 標(biāo)識(shí)符中大小寫(xiě)都可以使用,但 Sel和 sel是不同的標(biāo)識(shí)符 ? 仿真時(shí)使用 u選項(xiàng)進(jìn)入大小寫(xiě)不敏感模式。 在命令行中用 +define+選項(xiàng)給宏一個(gè)值。 SN7432 u5 (c_out, tmp, half_c)。 SN7408 u3 (tmp, c_in, half_sum)。 `uselib dir=/libs/FAST_LIB/ SN7486 u1 (half_sum, a, b)。 output c_out, sum。也就是說(shuō)如果不能在 `uselib指定的位置找到元件,仿真器不會(huì)再按命令行中 v或 y選項(xiàng)去尋找。 +libext+選項(xiàng)指定有效的文件擴(kuò)展名。 . . . endmodule module dff(...)。 庫(kù)文件掃描 每一個(gè) v選項(xiàng)指定一個(gè)庫(kù)文件 verilog test. v design. v v library_file. v module and2(...)。使用選項(xiàng)大大壓縮編譯時(shí)間及內(nèi)存空間。 仿真器中沒(méi)有缺省地使用 .v作擴(kuò)展名 使用 v或 y選項(xiàng)指定庫(kù)時(shí),只編譯那些設(shè)計(jì)中用到的模塊。 output cout, sum。 文件名的擴(kuò)展名是可選的 可以用兩種抽象級(jí)描述庫(kù)單元 ? 結(jié)構(gòu)級(jí) – 用 Verilog基本單元或 UDP – 用于描述組合邏輯或簡(jiǎn)單的時(shí)序邏輯 ? 行為級(jí) – 用過(guò)程塊或賦值語(yǔ)句 – 用于描述大的或復(fù)雜的元件,如 RAM或 ROM 元件庫(kù)建模(續(xù)) 庫(kù)單元的特點(diǎn): ? 每個(gè)庫(kù)單元的描述在編譯指導(dǎo) `celldefine和 `endcelldefine之間 ? 每個(gè)庫(kù)單元的描述有兩部分: – 功能描述 – 時(shí)序描述 `celldefine `timescale 1ns / 100ps module full_adder( cout, sum, a_in, b_in, c_in)。 庫(kù)中每個(gè)元件都包括功能及工具專(zhuān)用的時(shí)序及工藝信息。 ? VHDL: VHSIC HDL,類(lèi)似 Ada的高級(jí) VLSI設(shè)計(jì)語(yǔ)言 Verilog模型庫(kù) ? ASIC和 FPGA開(kāi)發(fā)商開(kāi)發(fā)并提供工藝專(zhuān)用庫(kù) ? 設(shè)計(jì)人員以庫(kù)中的元件建立網(wǎng)表 ? 仿真器在編譯時(shí)掃描模型庫(kù)尋找實(shí)例化模塊 合成庫(kù)可以支持多種工具,例如它可以包含下列工具所需要的信息 ? 仿真器(如 VerilogXL和 NC Verilog) ? 綜合器(如 Ambit) ? 時(shí)序分析器(如 Pearl) ? 故障仿真( VerifaultXL) 開(kāi)發(fā)商提供了大量的 Verilog庫(kù)。在編譯或仿真時(shí)標(biāo)注這些延時(shí) ? 在 specify塊中描述,可以由 SDF文件中的時(shí)序檢修改或代替。因此使用 specparam節(jié)省了大量存儲(chǔ)器。 ? 模塊延時(shí)在每次實(shí)例化時(shí)都復(fù)制一份。 endspecify SDF文件中的時(shí)序信息覆蓋specify塊中的時(shí)序信息 注意: 復(fù)習(xí) 問(wèn)題: ? 哪一種延時(shí)說(shuō)明是最精確的? ? 怎樣防止一個(gè)結(jié)構(gòu)化零延時(shí)反饋? ? 為什么不能在 specify塊中使用模塊參數(shù) (parameter)? ? Verilog仿真時(shí)在哪里說(shuō)明一個(gè)線(xiàn)延時(shí)? ? Verilog仿真時(shí)在哪里說(shuō)明時(shí)序檢查? 解答: ? 在 specify塊中說(shuō)明的延時(shí)信息是最精確的。 ( ck = o1) = (2: 3: 4, 4: 5: 6)。 在上面 IOPATH延時(shí)的例子中包括: 在上面 IOPATH延時(shí)的例子中,實(shí)例 需要一個(gè)如下面所示的specify塊用于反標(biāo)注。 ? 限定敏感邊沿的 IOPATH,從時(shí)鐘到輸出,用最好、典型和最壞值描述其上升和下降延時(shí)。 ? 條件 iopath, input到 output;用上升、下降和關(guān)斷的最好、典型、最壞值說(shuō)明 IOPATH延時(shí) IOPATH延時(shí)是器件從輸入端口到輸出端口的一個(gè)合法路徑上的延時(shí)。 延時(shí)分上升、下降和關(guān)斷延時(shí),每種延時(shí)又有最好、典型和最壞值。 內(nèi)部連接延時(shí) 內(nèi)部連接延時(shí)是對(duì)器件之間連接線(xiàn)延時(shí)的估算。這些數(shù)據(jù)包括: SDF允許不同工具共享延時(shí)數(shù)據(jù)。教程不對(duì) SDF做詳細(xì)介紹。 SDF(Stand Delay Format)文件 ? 增量或絕對(duì)延時(shí),如模塊路徑,器件、內(nèi)部連接和端口 (包括輸入端口延時(shí)) ? 時(shí)序檢查,如 setup, hold, recovery, skew, width period ? 時(shí)序約束,如 path ? 條件或無(wú)條件模塊路徑延時(shí) ? 設(shè)計(jì)、實(shí)例、類(lèi)型或庫(kù)的專(zhuān)用數(shù)據(jù) ? 比例、環(huán)境、工藝及用戶(hù)定義基本單元 標(biāo)準(zhǔn)延時(shí)格式( SDF)是一種標(biāo)準(zhǔn)的,與工具無(wú)關(guān)的表示時(shí)序數(shù)據(jù)的文本格式。 ? 用等于操作符( = =或! =)與一個(gè)標(biāo)量常量進(jìn)行比較 ? 用相同操作符 (===或! ==)與一個(gè)標(biāo)量常量進(jìn)行比較 ? 若條件表達(dá)式計(jì)算值為 x或 z則認(rèn)為條件成立。在時(shí)序檢查中設(shè)置條件。amp。 $width( posedge clk, 25)。amp。 $hold( posedge clk, data amp。amp。 // create timing checks specify $setup( data, posedge clk amp。 buf b1( q, q_int)。 output q, qb。 時(shí)序檢查 — 條件時(shí)序檢查 module dff (data, clk, rst, q, qb)。 end endmodule notifier初始值為 X;第一個(gè)產(chǎn)生時(shí)序 violation時(shí),其值變?yōu)?。 // stimulus and response checking goes here always ( notifier) begin rst = 1。 reg ck, d, rst。 $setup( d, posedge ck , 2, FLAG)。 reg FLAG。 input ck, d, rst。 ? 有兩種方法使 notifier影響輸出值 ? 將 notifier作為 UDP的一個(gè)輸入端口 ? 在高級(jí)行為模塊中,不需要為 notifier聲明一個(gè)端口也可以對(duì)其進(jìn)行操作。 時(shí)序檢查中的通知 (notifier)(續(xù)) ? 可以說(shuō)明并使用一個(gè) notifier來(lái)顯示時(shí)序不滿(mǎn)足 (violation) $setuphold( ref_event, data_event, s_limit, h_limit, NOTIFY)。 ? $period( ctrl_event, limit, notifier)。 ? $recrem( reference_event, data_event, rec_limit, rem_limit, notifier)。 ? 覆蓋: $recovery(reference_event, data_event, limit, notifier)。 ? 保持時(shí)間: $hold( clk_event, data_event, limit, notifier)。 $setuphold( posedge clk, data, 4, 3)。 ? 系統(tǒng)任務(wù) $hold在時(shí)鐘沿到數(shù)據(jù)變化的時(shí)差小于時(shí)限則報(bào)告一個(gè)violation,如 $hold( posedge clk, data, 3)。 Verilog時(shí)序檢查 ? 使用時(shí)序檢查以驗(yàn)證設(shè)計(jì)的時(shí)序 ? 時(shí)序檢查完成下列工作: – 確定兩個(gè)指定事件之間的時(shí)差 – 比較時(shí)差與指定的時(shí)限 – 如果時(shí)差超過(guò)指定時(shí)限則產(chǎn)生時(shí)序不能滿(mǎn)足的報(bào)告。若 en脈沖在時(shí)間 t+9結(jié)束, q則可能完成驅(qū)動(dòng),也可能沒(méi)有,處于未知狀態(tài)。 ? 脈沖寬度小于 reject_value的信號(hào)將被濾掉,而小于 error_value的值會(huì)使輸出產(chǎn)生不定狀態(tài)。 ? 只聲明一個(gè)值時(shí), error_value和 reject_value相同,如 PATHPULSE$ = 3。 specparam PATHPULSE$ = 3, PATHPULSE$en$q = ( 2, 9 ) , PATHPULSE$clr$q = 1 。 (data = q) = 10。 路徑脈沖控制 使用 specparam參數(shù) PATHPULSE$控制模塊路徑對(duì)脈沖的處理。 對(duì)于傳輸延遲,輸入上每個(gè)變化都會(huì)反映到輸出上。 條件有一些限制,但許多仿真器并不遵循 IEEE標(biāo)準(zhǔn)的限制。 所有輸入狀態(tài)都應(yīng)說(shuō)明。條件值為 X或 Z則認(rèn)為條件成立。 SDPD說(shuō)明語(yǔ)法: if condition 路徑延時(shí)說(shuō)明 。 SDPD就是用于說(shuō)明這種情況。 if (!b) (a= x) = (5: 7: 9)。 if (!a) (b= x) = (5: 7: 8)。 xor (x, a, b)。 input a, b。 endspecify endmodule 使用 specparam定義參數(shù)的例子: 狀態(tài)依賴(lài)路徑延時(shí) SDPD 狀態(tài)依賴(lài)路徑延時(shí)在說(shuō)明的條件成立時(shí)賦予路徑一個(gè)延時(shí)。 (B = O) = bo。 specify specparam ao = 2, bo = 3, co = 1。 nor n1 (1, A, B)。 output O。 specparam參數(shù)和模塊中parameter定義的參數(shù)作用范圍不同,并且 specparam定義的參數(shù)不能重載。 // 并行連接 // 從 a 到 o 的全路徑延時(shí)說(shuō)明 (a[7: 0] * o[7: 0]) = 。 // 從 r 到 o1 和 o2 的上升、下降延時(shí)說(shuō)明 (r * o1, o2) = (1, 2)。 (b = qb) = 15。 (b = q) = 15。 (a, b * q, qb) = 15。 等價(jià)于: (a = q) = 15。 specparam只能在 specify塊內(nèi)聲明參數(shù)并使用;而parameter也只能在 specify外聲明參數(shù)并使用。 – 設(shè)計(jì)的功能描述中的延時(shí),如 delay在綜合時(shí)不起作用 ? specify塊由 specify開(kāi)始, 到 endspecify結(jié)束,并且在模塊內(nèi)部 ? 使用關(guān)鍵字 specparam在 specify中進(jìn)行參數(shù)聲明。 Specify塊 ? specify塊定義了模塊的時(shí)序部分 – 時(shí)序信息和功能在不同的塊中描述,這樣功能驗(yàn)證獨(dú)立于時(shí)序驗(yàn)證。如果沒(méi)有延時(shí)說(shuō)明,則 基本單元 的延時(shí)為 0。 延時(shí)說(shuō)明定義的是門(mén)或模塊的 固有延時(shí) 。 – 如果只說(shuō)明了上升和下降延時(shí),則 1X和 X0使用下降延時(shí), XZ使用上升和下降延時(shí)的最小延時(shí) – 如果只說(shuō)明了一個(gè)延時(shí),則所有轉(zhuǎn)換使用這個(gè)延時(shí)。 // min: typ: max for rise, fall, and turnoff 精確延時(shí)控制(續(xù)) ? 上升延時(shí)是輸出轉(zhuǎn)換為 1時(shí)的延時(shí) ? 下降延時(shí)是輸出轉(zhuǎn)換為 0時(shí)的延時(shí) ? 關(guān)斷延時(shí)輸出轉(zhuǎn)換為三態(tài)時(shí)的延時(shí) ? 到 X的轉(zhuǎn)換延時(shí)是最小延時(shí),而從 X到其它值的轉(zhuǎn)換使用最壞延時(shí) – 如果說(shuō)明了上升、下降和關(guān)斷延時(shí),則 1X的轉(zhuǎn)換延時(shí)使用上升和關(guān)斷延時(shí)的最小值。 // min: typ: max for rise, fall user_module (1:2:3, 2:3:4) ( …… ) 。 or ( ::) o1( out, in1, in2)。 ? 在路徑延時(shí)中說(shuō)明所有 12個(gè)延時(shí)值 (0 ?1, 1 ?0, 0 ?Z, Z ?1, 1 ?Z, Z ?0, 0 ?X, X ?1, 1 ?X, X ?0, X ?Z, Z ?X) (C = Q) = (5, 12, 17, 10, 6, 22, 11, 8, 9, 17, 12, 16)。 // rise, fall (a = b) = (5, 4, 7)。 // rise, fall bufif0 ( 3,3,7) (o
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1