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

正文內(nèi)容

語法詳細(xì)講解強(qiáng)制激勵(lì)(已修改)

2025-10-09 10:13 本頁面
 

【正文】 語法詳細(xì)講解 強(qiáng)制激勵(lì) 在一個(gè)過程塊中 , 可以用兩種不同的方式對(duì)信號(hào)變量或表達(dá)式進(jìn)行連續(xù)賦值 。 ? 過程連續(xù)賦值往往是不可以綜合的 , 通常用在測(cè)試模塊中 。 ? 兩種方式都有各自配套的命令來停止賦值過程 。 ? 兩種不同方式均不允許賦值語句間的時(shí)間控制 。 assign和 deassign 適用于對(duì)寄存器類型的信號(hào) ( 例如: RTL級(jí)上 的節(jié)點(diǎn)或測(cè)試模塊中在多個(gè)地方被賦值的信號(hào) ) 進(jìn)行賦值 。 initial begin 10 assign = `init_state。 20 deassign 。 end force 和 release 用于寄存器類型和網(wǎng)絡(luò)連接類型(例如:門級(jí)掃描寄存器的輸出)的強(qiáng)制賦值,強(qiáng)制改寫其它地方的賦值。 initial begin 10 force =0。 20 release 。 end 在以上兩個(gè)例子中,在 10到 20 這個(gè)時(shí)間段內(nèi),網(wǎng)絡(luò)或寄存器類型的信號(hào)被強(qiáng)制賦值,而別處對(duì)該變量的賦值均無效。 force的賦值優(yōu)先級(jí)高于 assign。 如果先使用 assign, 再使用 force對(duì)同一信號(hào)賦值,則信號(hào)的值為 force所賦 的值, 語法詳細(xì)講解 強(qiáng)制激勵(lì) 語法詳細(xì)講解 字符串 語法詳細(xì)講解 強(qiáng)制激勵(lì) 語法詳細(xì)講解 強(qiáng)制激勵(lì) 當(dāng)執(zhí)行 release后,則信號(hào)的值為 assign所賦 的值。 如果用 force對(duì)同一個(gè)信號(hào)賦了幾次值,再執(zhí)行 release, 則所有賦的值均不再存在。 可以對(duì)信號(hào)的某(確定)位、某些(確定)位或拼接的信號(hào),使用 force和 release賦值;但不能對(duì)信號(hào)的可變位使用 force和 release 來賦值。 不能對(duì)寄存器類型的信號(hào)某位或某些位使用 assign 和deassign 來賦值。 語法詳細(xì)講解 強(qiáng)制激勵(lì) 語法詳細(xì)講解 建立時(shí)鐘 雖然有時(shí)在設(shè)計(jì)中會(huì)包含時(shí)鐘,但時(shí)鐘通常用在測(cè)試模塊中。下面 三個(gè)例子分別說明如何在門級(jí)和行為級(jí)建立不同波形的時(shí)鐘模型。 [例 1] 簡(jiǎn)單的對(duì)稱方波時(shí)鐘 : 語法詳細(xì)講解 建立時(shí)鐘 reg clk。 always begin period/2 clk=0。 period/2 clk=1。 end reg go。 wire clk。 nand (period/2) ul (clk,clk,go)。 initial begin go=0。 (period/2) go=1。 end 注:在有些仿真器中,如果設(shè)計(jì)所用的時(shí)鐘是由與其相同抽象級(jí)別的時(shí)鐘模型產(chǎn)生的,則仿真器的性能就能得到提高。 [例 2]簡(jiǎn)單的帶延遲的對(duì)稱方波時(shí)鐘: 語法詳細(xì)講解 建立時(shí)鐘 reg clk。 initial begin clk=0。 (period) forever (period/2) clk=!clk end reg go。 wire clk。 nand (period/2) ul (clk,clk,go)。 initial begin go=0。 (period) go=1。 end 注:這兩個(gè)時(shí)鐘模型有些不同,行為描述的模型延遲期間一直是低電平,而門級(jí)描述的模型開始延遲有半個(gè)周期是不確定的。 語法詳細(xì)講解 建立時(shí)鐘 [例 3]. 帶延遲、頭一個(gè)脈沖不規(guī)則的、占空比不為 1的時(shí)鐘: 語法詳細(xì)講解 建立時(shí)鐘 reg clk。 initial begin (period+1) clk=1。 (period/21) forever begin (period/4) clk=0。 (3*period/4) clk=1。 end end reg go。 wire clk。 nand (3*period/4,period/4) ul(clk,clk,go)。 initial begin (period/4+1) go=0。 (5*period/41) go=1。 end 注:這兩個(gè)時(shí)鐘模型也有些不同,行為描述的模型一開始就有確定的電平,而門級(jí)描述的模型有延遲開始時(shí)電平是不確定的。 語法詳細(xì)講解 怎樣使用任務(wù) mocule bus_ctrl_tb reg [7:0] data。 reg data_valid, data_rd。 cpu ul(data_valid,data,data_rd)。 initial begin cpu_driver(8?b0000_0000)。 cpu_driver(8?b1010_1010)。 cpu_driver(8?b0101_0101)。 end task cpu_driver。 語法詳細(xì)講解怎樣使用任務(wù) 語法詳細(xì)講解 怎樣使用任務(wù) input [7:0] data_in。 begin 30 data_valid=1。 wait(data_rd==1)。 20 data=data_in。 wait(data_rd==0)。 20 data=8?hzz。 30 data_valid=0。 end endtask 語法詳細(xì)講解怎樣使用任務(wù) 語法詳細(xì)講解 怎樣使用任務(wù) endmodule 在測(cè)試模塊中使用任務(wù)可以提高程序代碼的效率,可以進(jìn)行多次重復(fù)操作。 語法詳細(xì)講解怎樣使用任務(wù) wait wait wait wait data1 data2 data3 data4 cpu_data clk data_valid data_read read_cpu_state 語法詳細(xì)講解 存儲(chǔ)建模 目標(biāo) 學(xué)會(huì)使用 Verilog進(jìn)行存儲(chǔ)建模。 學(xué)會(huì)在 Verilog中進(jìn)行雙向口建模。 語法詳細(xì)講解存儲(chǔ)建模 存儲(chǔ)設(shè)備建模必須注意以下兩個(gè)方面的問題: 聲明存儲(chǔ)容量的大小。 提供對(duì)內(nèi)容的訪問權(quán)限,例如: 只讀 讀寫 同步讀寫 多次讀,同時(shí)進(jìn)行一次寫 多次同步讀寫,同時(shí)提供一些方法保證一致性 語法詳細(xì)講解 存儲(chǔ)設(shè)備建模 `timescale 1ns/10ps module myrom(read_data,addr,read_en_)。 input read_en_。 input [3:0] addr。 output [3:0] read_data。 reg [3:0] read_data。 reg [3:0] mem [0:15]。 initial $readmemb(“my_rom_data”,mem)。 always @ (addr or read_en_) if(!read_en_) read_data=mem[addr]。 endmodule 語法詳細(xì)講解 簡(jiǎn)單 ROM建模 my_rom_data 0000 0101 1100 0011 1101 0010 0011 1111 1000 1001 1000 0001 1101 1010 0001 1101 ROM的數(shù)據(jù)存儲(chǔ)在另外的一個(gè)獨(dú)立的文件中 語法詳細(xì)講解 簡(jiǎn)單 ROM建模 上面所示的 ROM模型中使用二維的存儲(chǔ)寄存器來定義存儲(chǔ)容量。ROM中的數(shù)據(jù)保存在一個(gè)獨(dú)立的文件中,如上面的右邊所示。這是一種保存 ROM數(shù)據(jù)的通用的方法,它可以使數(shù)據(jù)和 ROM模型分開。 語法詳細(xì)講解 簡(jiǎn)單 RAM建模 `timescale 1ns/1ns module mymem(data,addr,read,write)。 inout [3:0] data。 inout [3:0] addr。 input read, write。 reg [3:0] memory [0:15]。 //4 bits, 16 words //read assign data=read? memory[addr]:4?bz。 //write always @ (posedge write) memory[addr]=data。 endmodule RAM模型比 ROM模型稍微復(fù)雜,因?yàn)樗仨毦哂凶x寫能力,而進(jìn)行讀寫時(shí)通常使用相同的數(shù)據(jù)總線,這就需要新技術(shù)來處理雙向總線。當(dāng)讀出口沒有被激活時(shí), RAM模型不再激勵(lì)總線,如果此時(shí)的總線寫入變量也沒有被激活,則總線進(jìn)入高阻狀態(tài),這就避免了 RAM中的讀寫競(jìng)爭(zhēng)。 上述模型是可綜合的,但是許多工具只產(chǎn)生一系列的寄存器,這一般就需要更大的空間,從而比實(shí)際的存儲(chǔ)器的價(jià)格更昂貴。 語法詳細(xì)講解 簡(jiǎn)單 RAM建模 例: module scalable_ROM(mem_word,address)。 parameter addr_bits=8。 //size of address bus parameter wordsize=8。 //width of a word parameter words=(1addr_bits)。 //size of mem output [wordsize:1] mem_word。 //word of memory input [addr_bits:1] address。 //address bus reg [wordsize:1] mem [0:words1]。 //mem declaration //output one word of memory wire [wordsize:1] mem_word=mem[address]。 endmodule 語法詳細(xì)講解 容量可變的存儲(chǔ)器建模 語法詳細(xì)講解 容量可變的存儲(chǔ)器建模 上述的例子演示了怎樣通過設(shè)置字長(zhǎng)和地址位數(shù)來定義一個(gè)只讀存儲(chǔ)設(shè)備。 在上例中,存儲(chǔ)字的范圍從 0開始的,而不是從 1開始,這是因?yàn)閮?nèi)存是直接通過地址線定位的,同樣地,也可以用下面的方法來定義內(nèi)存和定位: reg [wordsize:1] mem [1:words]。 //memory starts at word 1 //address must be incremented to address all words in memory wire [wordsize:1] mem_word=mem[address+1]。 可以通過使用一個(gè)循環(huán)或系統(tǒng)任務(wù)來載入存有數(shù)據(jù)的整個(gè)存儲(chǔ)器。 ? 使用循環(huán)把值賦給存儲(chǔ)數(shù)組。 for(i=0。imemsize。i=i+i) // initialize memory mema[i]={wordsize{1?b1}}。 ? 調(diào)用 $readmem系統(tǒng)任務(wù)。 //load memory data form a file $readmemb(“”,mem)。 語法詳細(xì)講解 載入存儲(chǔ)設(shè)備 語法詳細(xì)講解 怎樣使用雙向口 使用 inout關(guān)鍵字聲明雙向口 。 inout [7:0] databus。
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號(hào)-1