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

正文內(nèi)容

第10章verilog操作符-文庫吧

2025-07-05 07:00 本頁面


【正文】 dmodule 大于 小于 = 大于等于 = 小于等于 ? 其結(jié)果是 1’b 1’b0或 1’bx。 無論 x為何值,regbregc rega和 regc的關(guān)系取決于 x 相等操作符 賦值操作符,將等式右邊表達(dá)式的值拷貝到左邊。 注意邏輯等與 case等的差別 = 邏輯等 = = = = 0 1 x z 0 1 0 x x 1 0 1 x x x x x x x z x x x x case等 = = = = = 0 1 x z 0 1 0 0 0 1 0 1 0 0 x 0 0 1 0 z 0 0 0 1 2‘b1x==2’b0x 值為 0,因?yàn)椴幌嗟? 2‘b1x==2’b1x 值為 x,因?yàn)榭赡懿幌嗟?,也可能相? 2‘b1x===2’b0x 值為 0,因?yàn)椴幌嗤? 2‘b1x==2’b1x 值為 1,因?yàn)橄嗤? a = 239。b1x。 b = 239。b1x。 if (a == b) $display( a is equal to b)。 else $display( a is not equal to b)。 a = 239。b1x。 b = 239。b1x。 if (a === b) $display( a is identical to b)。 else $display( a is not identical to b)。 Case等只能用于行為描述,不能用于 RTL描述。 相等操作符 邏輯等 邏輯不等 == ! = module equalities1()。 reg [3: 0] rega, regb, regc。 reg val。 initial begin rega = 439。b0011。 regb = 439。b1010。 regc = 439。b1x10。 end initial fork 10 val = rega == regb 。 // val = 0 20 val = rega != regc。 // val = 1 30 val = regb != regc。 // val = x 40 val = regc == regc。 // val = x 50 $finish。 join endmodule ? 其結(jié)果是 1’b 1’b0或 1’bx。 ? 如果左邊及右邊為確定值并且相等,則結(jié)果為 1。 ? 如果左邊及右邊為確定值并且不相等,則結(jié)果為 0。 ? 如果左邊及右邊有值不能確定的位,但值確定的位相等,則結(jié)果為 x。 ?!=的結(jié)果與 = =相反 值確定是指所有的位為 0或 1。不確定值是有值為 x或 z的位。 相等操作符 相同 (case等 ) 不相同 (case不等 ) === ! == module equalities2()。 reg [3: 0] rega, regb, regc。 reg val。 initial begin rega = 439。b0011。 regb = 439。b1010。 regc = 439。b1x10。 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。 join endmodule ? 其結(jié)果是 1’b 1’b0或 1’bx。 ? 如果左邊及右邊的值相同(包括 x、 z),則結(jié)果為 1。 ?如果左邊及右邊的值不相同,則結(jié)果為 0。 ?!==的結(jié)果與 === 相反 綜合工具不支持 條件操作符 條件 ?: module likebufif( in, en, out)。 input in。 input en。 output out。 assign out = (en == 1) ? in : 39。bz。 endmodule module like4to1( a, b, c, d, sel, out)。 input a, b, c, d。 input [1: 0] sel。 output out。 assign out = sel == 239。b00 ? a : sel == 239。b01 ? b : sel == 239。b10 ? c : d。 endmodule 如果條件值為 x或 z,則結(jié)果可能為 x或 z 條件操作符 條件操作符的語法為: LHS = condition ? true_expression:false_expression registger = condition ? true_value:false_value; 其意思是: if condition is TRUE, then LHS=true_expression, else LHS = false_expression 每個(gè)條件操作符必須有三個(gè)參數(shù),缺少任何一個(gè)都會(huì)產(chǎn)生錯(cuò)誤。 最后一個(gè)操作數(shù)作為缺省值。 上式中,若 condition為真則 register等于 true_value;若 condition為假則 register等于 false_value。一個(gè)很有意思的地方是,如果條件值不確定,且 true_value和false_value不相等,則輸出不確定值。 例如: assign out = (sel == 0) ? a : b。 若 sel為 0則 out =a;若 sel為 1則 out = b。如果 sel為 x或 z,若 a = b =0,則 out = 0;若a≠b,則 out值不確定。 級(jí)聯(lián)操作符 級(jí)聯(lián) { } 可以從不同的矢量中選擇位并用它們組成一個(gè)新的矢量。 用于位的重組和矢量構(gòu)造 module concatenation。 reg [7: 0] rega, regb, regc, regd。 reg [7: 0] new。 initial begin rega = 839。b0000_0011。 regb = 839。b0000_0100。 regc = 839。b0001_1000。 regd = 839。b1110_0000。 end initial fork 10 new = {regc[ 4: 3], regd[ 7: 5], regb[ 2], rega[ 1: 0]}。 // new = 839。b11111111 20 $finish。 join endmodule 在級(jí)聯(lián)和復(fù)制時(shí),必須指定位數(shù),否則將產(chǎn)生錯(cuò)誤。 下面是類似錯(cuò)誤的例子: a[7:0] = {4{ 180。b10}}。 b[7:0] = {2{ 5}}。 c[3:0] = {3180。b011, 180。b0}。 級(jí)聯(lián)時(shí)不限定操作數(shù)的數(shù)目。在操作符符號(hào) { }中,用逗號(hào)將操作數(shù)分開。例如 : {A, B, C, D} 復(fù)制 復(fù)制 { {} } 復(fù)制一個(gè)變量或在 { }中的值 module replicate ()。 reg [3: 0] rega。 reg [1: 0] regb, regc。 reg [7: 0] bus。 initial begin rega = 4?b1001。 regb = 239。b11。 regc = 239。b00。 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{ rega[1]}}, rega }。 // bus = 00001001. rega is signextended 40 $finish。 join endmodule 前兩個(gè) { 符號(hào)之間的正整數(shù)指定復(fù)制次數(shù)。 復(fù)習(xí) 解答 ~ 進(jìn)行 1的補(bǔ)碼操作,將矢量中的每一位取反 !將一個(gè)操作數(shù)歸約為一位 true或 false結(jié)果 amp。 將操作數(shù)從低到高的對(duì)應(yīng)位的進(jìn)行與操作 amp。amp。 將每個(gè)操作數(shù)歸約為一位 true或 false,然后對(duì)歸約結(jié)果進(jìn)行與操作 要復(fù)制的操作數(shù)必須指定位數(shù),例如 {3{‘b1}}是非法的,因此’ b1沒有指定位數(shù)。而 {3{1‘b1}是合法的 ~ 和!有什么不同? amp。amp。 和 amp。 有什么不同? 用復(fù)制操作符復(fù)制一個(gè)數(shù)據(jù)時(shí),對(duì)數(shù)據(jù)有什么要求? 問題: 第 11章 行為建模 學(xué)習(xí)內(nèi)容: ? 行為建模的基本概念 ? Verilog中高級(jí)編程語言結(jié)構(gòu) ? 如何使用連續(xù)賦值 RTL描述方式是行為描述方式的子集。在本章中的綜合部分將詳細(xì)介紹哪些行為級(jí)結(jié)構(gòu)同樣可以用于 RTL描述。 注: 行為描述 ? 行為級(jí)描述是對(duì)系統(tǒng)的高抽象級(jí)描述。在這個(gè)抽象級(jí),注重的是整個(gè)系統(tǒng)的功能而不是實(shí)現(xiàn)。 ? Verilog有高級(jí)編程語言結(jié)構(gòu)用于行為描述,包括: wait, while, if then, case和 forever ? Verilog的行為建模是用一系列以高級(jí)編程語言編寫的并行的、動(dòng)態(tài)的過程塊來描述系統(tǒng)的工作。 在每一個(gè)時(shí)鐘上升沿, 若 Clr不是低電平, 置 Q為 D值, 置 Qb為 D值的反 DFF 無論何時(shí) Clr變低 置 Q為 0, 置 Qb為 1 過程 (procedural)塊 ? 過程塊是行為模型的基礎(chǔ)。 ? 過程塊有兩種: – initial塊,只能執(zhí)行一次 – always塊,循環(huán)執(zhí)行 ? 過程塊中有下列部件 – 過程賦值語句:在描述過程塊中的數(shù)據(jù)流 – 高級(jí)結(jié)構(gòu)(循環(huán),條件語句):描述塊的功能 – 時(shí)序控制:控制塊的執(zhí)行及塊中的語句。 過程賦值 (procedural assignment) ? 在過程塊中的賦值稱為過程賦值。 ? 在過程賦值語句中表達(dá)式 左邊 的信號(hào)必須是 寄存器類型 (如 reg類型) ? 在過程賦值語句等式 右邊 可以是任何有效的表達(dá)式, 數(shù)據(jù)類型也沒有限制 。 ? 如果一個(gè)信號(hào)沒有聲明則 缺省為 wire類型 。使用過程賦值語句給 wire賦值會(huì)產(chǎn)生錯(cuò)誤。 module adder (out, a, b, cin)。 input a, b, cin。 output [1:0] out。 wire a, b, cin。 reg half_sum。 reg [1: 0] out。 always @( a or b or cin) begin half_sum = a ^ b ^ cin 。 // OK half_carry = a amp。 b | a amp。 !b amp。 cin | !a amp。 b amp。 cin 。 // ERROR! out = {half_carry, half_ sum} 。 end endmodule half_c
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1