數(shù)據(jù)流描述方式采用什么語(yǔ)句?
數(shù)據(jù)流描述最基本的語(yǔ)句是assign連續(xù)賦值語(yǔ)句。
連續(xù)賦值語(yǔ)句是Verilog數(shù)據(jù)流建模的基本語(yǔ)句,用于對(duì)線網(wǎng)進(jìn)行賦值,等價(jià)于門(mén)級(jí)描述,是從更高的抽象角度來(lái)對(duì)電路進(jìn)行描述。連續(xù)賦值語(yǔ)句必須以關(guān)鍵詞assign開(kāi)始。
連續(xù)賦值語(yǔ)句的左值可以是一下類(lèi)型之一:標(biāo)量線網(wǎng)、向量線網(wǎng)、矩陣中的一個(gè)元素(該矩陣可以是標(biāo)量線網(wǎng)類(lèi)型的,也可以是向量線網(wǎng)類(lèi)型的)、向量線網(wǎng)的某一位、向量線網(wǎng)的部分位以及上述各種類(lèi)型的拼接體。但是,不能是向量或向量寄存器。
連續(xù)賦值語(yǔ)句總是處于激活狀態(tài)。只要任意一個(gè)操作數(shù)發(fā)生變化,表達(dá)式就會(huì)被立即重新計(jì)算,并且將結(jié)果賦給等號(hào)左邊的線網(wǎng)。操作數(shù)可以是標(biāo)量或向量的線網(wǎng)或寄存器,也可以是函數(shù)的調(diào)用。賦值延遲用于控制對(duì)線網(wǎng)賦予新值的時(shí)間,根據(jù)仿真時(shí)間單位進(jìn)行說(shuō)明。賦值延遲類(lèi)似于門(mén)延遲,對(duì)于描述實(shí)際電路中的時(shí)序是非常重要的。
驅(qū)動(dòng)和賦值的概念有什么區(qū)別?
驅(qū)動(dòng)(Driving)和賦值(Assigning)。?線網(wǎng)是被驅(qū)動(dòng)的,該值不被保持,在任意一個(gè)仿真步進(jìn)上都需要重新計(jì)算;寄存器是被賦值的,且該值在仿真過(guò)程中被保持,直到下一個(gè)賦值的出現(xiàn)。寄存器型數(shù)據(jù)保持最后一次的賦值,而線型數(shù)據(jù)需要持續(xù)的驅(qū)動(dòng)。wire使用在連續(xù)賦值語(yǔ)句中,而reg使用在過(guò)程賦值語(yǔ)句(initial ,always)中。wire若無(wú)驅(qū)動(dòng)器連接,其值為z,reg默認(rèn)初始值為不定值 x 。
行為描述主要用哪兩種語(yǔ)言?
所謂行為描述,是指用語(yǔ)言描述電路的行為。行為描述的語(yǔ)句有兩種:initial和always語(yǔ)句。
initial語(yǔ)句在0仿真時(shí)間執(zhí)行,而且只執(zhí)行一次;always語(yǔ)句同樣在0仿真時(shí)間開(kāi)始執(zhí)行,但是它將一直循環(huán)執(zhí)行。這樣的特點(diǎn)單單從它們的命名上就能看得出來(lái):一個(gè)是initial,就是初始化一次的意思;另一個(gè)是always,就是總在運(yùn)行的意思。
邏輯運(yùn)算“L=AB+BC+AC”對(duì)應(yīng)的行為級(jí)描述:
過(guò)程賦值語(yǔ)句是什么?
與數(shù)據(jù)流描述的連續(xù)賦值對(duì)應(yīng)的是行為描述的過(guò)程賦值的語(yǔ)句。
過(guò)程賦值語(yǔ)句的更新對(duì)象是寄存器、整數(shù)、實(shí)數(shù)或時(shí)間變量等。這些類(lèi)型的變量在被賦值后,其值將保持不變,直到被其他過(guò)程賦值語(yǔ)句賦予新值。過(guò)程賦值語(yǔ)句只有在執(zhí)行到的時(shí)候才會(huì)起作用。過(guò)程賦值語(yǔ)句只能在initial或always語(yǔ)句內(nèi)進(jìn)行賦值,只能對(duì)變量數(shù)據(jù)類(lèi)型賦值,同時(shí)initial和always中只能使用過(guò)程賦值語(yǔ)句。過(guò)程賦值語(yǔ)句的左值可以是以下類(lèi)型之一:reg、整形數(shù)、實(shí)型數(shù)、時(shí)間寄存器變量或存儲(chǔ)器單元、述各種類(lèi)型的位選、上述各種類(lèi)型的域選、面三種類(lèi)型的拼接。
過(guò)程性賦值語(yǔ)句包括兩種類(lèi)型的賦值語(yǔ)句:阻塞賦值(=)和非阻塞賦值(<=)。
模塊實(shí)例的端口對(duì)應(yīng)方式有哪些?
在使用這個(gè)模塊時(shí)(模塊例化),我們有兩種方法例化, 按位置例化和按名稱例化。
按位置例化:例化時(shí),需要所有的參數(shù)順序必須和模塊本身的順序一致;例化時(shí),只要寫(xiě)端口名字即可。
按名稱例化:必須指定當(dāng)前例化的端口名稱,端口的順序可以自由排序,不一定和模塊本身的順序相同。
簡(jiǎn)述RTL級(jí)和行為級(jí)設(shè)計(jì)的區(qū)別?
RTL級(jí),register transfer level,指的是用寄存器這一級(jí)別的描述方式來(lái)描述電路的數(shù)據(jù)流方式;而行為級(jí),Behavior級(jí),指的是僅僅描述電路的功能而可以采用任何verilog語(yǔ)法的描述方式。鑒于這個(gè)區(qū)別,RTL級(jí)描述的目標(biāo)就是可綜合,而行為級(jí)描述的目標(biāo)就是實(shí)現(xiàn)特定的功能而沒(méi)有可綜合的限制。