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

正文內(nèi)容

網(wǎng)絡(luò)處理器中微引擎的設(shè)計(jì)與實(shí)現(xiàn)學(xué)位論文(參考版)

2025-06-26 01:38本頁(yè)面
  

【正文】 其中代碼覆蓋率是從軟件編程的角度來(lái)分析設(shè)計(jì)代碼是否被充分的驗(yàn)證;功能覆蓋率則是從驗(yàn)證計(jì)劃角度強(qiáng)調(diào)所有規(guī)定的功能點(diǎn)是否都測(cè)試。通過(guò)以上兩種方式既滿(mǎn)足了附加的有效性的要求,同時(shí)又充分保證了跳轉(zhuǎn)方式的全面性。對(duì)于轉(zhuǎn)發(fā)微引擎來(lái)說(shuō),附加的有效性主要針對(duì)的是跳轉(zhuǎn)指令,所以對(duì)于分支跳轉(zhuǎn)指令需要添加更嚴(yán)格的約束。第三,對(duì)附加的有效性要求的滿(mǎn)足。全部由合法指令組成的指令序列不一定是合法的,主要原因在于,不同的處理器有著不同的指令集,而大部分指令集中都存在一些有著特殊關(guān)系的指令,比如兩條指令需要成對(duì)的出現(xiàn),或者某條指令之后不能僅跟部分類(lèi)型的指令。對(duì)于其他三十多種類(lèi)型的指令,其約束添加過(guò)程與這條指令類(lèi)似,不再一一贅述。MOV指令的源操作數(shù)和目的操作數(shù)寄存器來(lái)源可以為任意核內(nèi)寄存器,但是仍有以下幾點(diǎn)限制:1)源操作數(shù)為立即數(shù)時(shí)的操作碼和為寄存器時(shí)的操作碼不同;2)源寄存器的尋址方式為間接尋址時(shí),指令49到52位的寄存器索引號(hào)只有兩種可能1110和1111;同理目的寄存器尋址方式為間接尋址時(shí),存在同樣的限制;3)取操作數(shù)的大小SIZE的方式為間接尋址時(shí),相應(yīng)SIZE_VALUE為零,否則從00到11。首先,對(duì)指令合法性要求的滿(mǎn)足。所謂有效性是指隨機(jī)生成的測(cè)試激勵(lì)必須符合處理器的設(shè)計(jì)規(guī)格,并且滿(mǎn)足一定的測(cè)試要求,它是測(cè)試程序最基本的要求。對(duì)于隨機(jī)生成的測(cè)試指令流來(lái)說(shuō),有效性是我們必須滿(mǎn)足的最基本和最重要的要求。比如時(shí)鐘信號(hào)復(fù)位,微引擎寄存器初始化,設(shè)定微引擎工作狀態(tài)等等;2)針對(duì)隨機(jī)生成的指令難以覆蓋到的情況。本文的測(cè)試激勵(lì)的生成采用手工編寫(xiě)與隨機(jī)生成相結(jié)合的方式。其中主代理中含有序列發(fā)生器,驅(qū)動(dòng)和監(jiān)視器,從代理只含有監(jiān)視器。UVC組件之間通過(guò)事務(wù)交易級(jí)建模(Transaction Level ModelingTLM)接口通信。 ,一個(gè)基本的UVC驗(yàn)證平臺(tái)由事務(wù)數(shù)據(jù)(transaction)、激勵(lì)序列(sequence)、序列發(fā)生器(sequencer)、序列驅(qū)動(dòng)器(driver)、監(jiān)視器(monitor)以及測(cè)試用例(test)構(gòu)成,各部件之間相互聯(lián)系,互相通信完成對(duì)DUT的各種功能的測(cè)試。為提高驗(yàn)證質(zhì)量,UVM提出了覆蓋率導(dǎo)向驗(yàn)證和約束隨機(jī)化驗(yàn)證等新驗(yàn)證技術(shù)來(lái)提高覆蓋率,并采用斷言(System Verilog Assertion,SVA)來(lái)加速上述過(guò)程。 UVM與數(shù)字電路設(shè)計(jì) 相對(duì)于之前的驗(yàn)證方法學(xué),UVM方法學(xué)更多關(guān)注驗(yàn)證平臺(tái)如何配置,以及在系統(tǒng)驗(yàn)證中的可重用具體方法和思路。UVM(Unicersal Verification Methdology,通用驗(yàn)證方法學(xué))起源于OVM(Open Verification Methdology),是由三大EDA公司Synopsys、Candence和Mentor聯(lián)合驗(yàn)證業(yè)界于2011年2月正式推出的新一代驗(yàn)證方法學(xué)。同時(shí)它有利于直接用批處理的方式來(lái)跑仿真,可極大的提高的驗(yàn)證效率和驗(yàn)證正確性。由于微引擎模塊級(jí)別的驗(yàn)證 DUT比較復(fù)雜,若每次都要通過(guò)查看波形的方法來(lái)檢查DUT是否正確執(zhí)行,驗(yàn)證效率很低。 驗(yàn)證平臺(tái)和待測(cè)設(shè)計(jì)的基本結(jié)構(gòu)另一種是采用自檢查(selfchecking)方式,這種方式只有一個(gè) RTL 級(jí)實(shí)現(xiàn)模型,它通過(guò)功能單元將測(cè)試激勵(lì)轉(zhuǎn)化為預(yù)期的正確輸出,在驗(yàn)證過(guò)程中或驗(yàn)證結(jié)束之后判斷中間狀態(tài)和輸出是否與預(yù)期的結(jié)果一致。其中參考模型不需要可綜合,通常使用高級(jí)語(yǔ)言(如C語(yǔ)言)實(shí)現(xiàn)。激勵(lì)生成模塊在上文已經(jīng)提到,采取手工編寫(xiě)和隨機(jī)生成兩種方式相結(jié)合。本階段產(chǎn)生的大量測(cè)試向量能夠驗(yàn)證微引擎的主要功能;第二階段,首先分析研究各個(gè)模塊代碼覆蓋率統(tǒng)計(jì)情況,并查看微引擎verilog代碼中未被覆蓋到的語(yǔ)句和分支等;然后根據(jù)上述情況中涉及到的功能點(diǎn),手工編寫(xiě)少量有針對(duì)性的測(cè)試激勵(lì)進(jìn)行驗(yàn)證,最終使代碼覆蓋率達(dá)到要求。第一階段,通過(guò)測(cè)試激勵(lì)自動(dòng)生成器來(lái)生成大量的偽隨機(jī)微碼指令測(cè)試激勵(lì)進(jìn)行驗(yàn)證。同時(shí)SystemVerilog還能結(jié)合驗(yàn)證方法學(xué),來(lái)加速芯片驗(yàn)證過(guò)程提高驗(yàn)證質(zhì)量,因此本文采用SystemVerilog作為驗(yàn)證語(yǔ)言進(jìn)行微引擎的功能驗(yàn)證。對(duì)于傳統(tǒng)的驗(yàn)證平臺(tái),采用硬件描述語(yǔ)言搭建,而硬件描述語(yǔ)言適合用于寄存器傳輸級(jí)的設(shè)計(jì),已經(jīng)無(wú)法滿(mǎn)足搭建更抽象和更高級(jí)的驗(yàn)證平臺(tái)的要求。 接著詳細(xì)設(shè)計(jì)了微引擎的四級(jí)流水線,分別是P0:指令PC值產(chǎn)生;P1:取指;P2:指令譯碼、取操作數(shù);P3:指令執(zhí)行、寫(xiě)回。 其次對(duì)微引擎的結(jié)構(gòu)進(jìn)行了設(shè)計(jì),采用類(lèi)超標(biāo)量結(jié)構(gòu),共有4個(gè)RISC核,一個(gè)周期可以同時(shí)處理多條指令。本文所采用的FPGA板為Xilinx FPGA Virtex6 XC6VLX550T。微引擎設(shè)計(jì)實(shí)現(xiàn)的最后一步是器件編程和下板調(diào)試。在將設(shè)計(jì)映射到器件結(jié)構(gòu)上之后進(jìn)行布局布線,從而在選定芯片上實(shí)現(xiàn)微引擎的設(shè)計(jì)。綜合完成后,本文采用Xilinx公司的FPGA對(duì)微引擎設(shè)計(jì)進(jìn)行驗(yàn)證。綜合是將行為描述的電路轉(zhuǎn)換為基本邏輯單元組成的邏輯連接(網(wǎng)表)的過(guò)程。一旦發(fā)現(xiàn)代碼設(shè)計(jì)中的錯(cuò)誤,作好記錄并及時(shí)返回設(shè)計(jì)修改代碼。 微引擎設(shè)計(jì)實(shí)現(xiàn)方法本文采用Verilog硬件描述語(yǔ)言對(duì)P1600網(wǎng)絡(luò)處理器微引擎模塊進(jìn)行功能描述,建立功能驗(yàn)證模型,然后進(jìn)行功能仿真驗(yàn)證,使用的是Mentor公司的Questasim軟件。 P2級(jí)分支執(zhí)行原理圖(4)指令執(zhí)行寫(xiě)回部件這一部件實(shí)現(xiàn)了微引擎的數(shù)據(jù)通路,完成了指令的執(zhí)行,包括ALU、MAX、MINTERM、PRI_ENC等運(yùn)算,這里不再贅述。每次執(zhí)行將Sreg4_t_p3[7:0]寄存器值減1。若結(jié)果為NOP1,置位Jump_cancel_p1_valid_p2;若結(jié)果為NOP2,同時(shí)置位Jump_cancel_p1_valid_p2和Jump_cancel_p2_valid_p2。參數(shù)來(lái)源一Jump_valid確認(rèn)信號(hào)與Jump_nop_num[1:0],來(lái)源二為預(yù)先保存在PC_STACK的Pc_stack_data_p2[15:14],然后由Jump_use_ret_nop_valid選擇NOP參數(shù)來(lái)源。3)若執(zhí)行Call/Callstack,即Pc_stack_wr_en有效時(shí),把當(dāng)前指令地址Pc_p2[10:0]+3nop_num存入PC_STACK寄存器低11位,把供Return指令使用的NOP參數(shù)Jump_ ret_nop_num[1:0]存入PC_STACK寄存器高2位。若為0,取Jump_label [10:0],若為1,取Pc_stack [10:0]。:1)由寄存器PC_STACK硬連線得到Sreg5_pc_stack_p3 [10:0]的值,同時(shí)也取得指令譯碼信號(hào)Jump_label [10:0]。分支指令的執(zhí)行包含分支地址的產(chǎn)生和分支地址寫(xiě)回。一起寄存輸出的還有A操作數(shù)的可能的四個(gè)控制位A_bit0_p2[4:0]、A_bit1_p2[4:0]、A_bit2_p2[4:0]、A_bit3_p2[4:0]。下面以取A操作數(shù)舉例,:1)信號(hào)A_reg_sel[2:0]和A_reg_num[3:0]從寄存器堆中選出寄存器操作數(shù)A_reg[31:0];用指令有效信號(hào)A_immd_xx_valid(xx分別為3214)分別對(duì)譯碼產(chǎn)生的5種長(zhǎng)度的立即數(shù)和寄存器操作數(shù)A_reg[31:0]進(jìn)行選擇,得到A_tmp[31:0];最后由A操作數(shù)取反信號(hào)Neg_A和ALU指令確認(rèn)信號(hào)Alu_valid相與后選擇輸出最終的A操作數(shù)A_oprand[31:0]。主要完成的功能是根據(jù)指令譯碼產(chǎn)生的源操作數(shù)地址信號(hào)從硬件資源中取出操作數(shù)A_operand_p2[31:0]和B_operand_p2[31:0]以及Size_p2[3:0]。另外Neg_A信號(hào)用于ALU運(yùn)算時(shí)取反A操作數(shù)。4)特殊的,對(duì)于FBITS執(zhí)行單元,需要四個(gè)地址控制位。由信號(hào)A_addr_sel選擇最后的寄存器地址得到A_addr[8:0];3)9位地址取前4位信號(hào)A_reg_num[3:0]送入寄存器堆選擇相應(yīng)的操作數(shù),后5位信號(hào)A_reg_bit[4:0]與全零信號(hào)A_all_zero[4:0]經(jīng)操作碼選擇輸出控制信號(hào)A_bit0[4:0],提供執(zhí)行移位操作起始地址。1)A操作數(shù)的立即數(shù)有5種A_immd_xx,指令直接譯碼得到,同時(shí)還有相應(yīng)的立即數(shù)確認(rèn)信號(hào)A_immd_xx_valid,供下一步取出A操作數(shù)。主要供本級(jí)進(jìn)行操作數(shù)讀取,供下級(jí)進(jìn)行指令的執(zhí)行和目的結(jié)果的寫(xiě)回。因此P2級(jí)可以分為指令譯碼和取操作數(shù)兩個(gè)階段。 P1級(jí)取指令原理圖(3)譯碼取操作數(shù)部件這一部件主要完成的功能是對(duì)P1級(jí)預(yù)取到的73位指令進(jìn)行譯碼,從指令中分解出源信息、目的信息和控制信息,然后根據(jù)源信息從寄存器和存儲(chǔ)器中取出相應(yīng)的操作數(shù),目的信息和控制信息輸出到流水線的后一級(jí)使用。同時(shí)保存Pc_p0[10:0]到P1級(jí)的PC地址寄存器Pc_p1[10:0]中,每當(dāng)流水線時(shí)鐘上升沿到來(lái)時(shí),傳遞給下一級(jí)P2的PC地址寄存器Pc_p2[10:0]。 P1級(jí)接口信號(hào)圖1)每條指令73位。圖3. 9 P0級(jí)接口信號(hào)圖(2)指令預(yù)取部件這一部件通過(guò)P0級(jí)產(chǎn)生的PC地址,在微引擎指令存儲(chǔ)器中取出相應(yīng)的指令,實(shí)現(xiàn)流水級(jí)中指令的預(yù)取。3)正常情況流水線每周期取一條指令,順序執(zhí)行PC+1,輸出PC地址 Pc_p0[10:0]和讀指令使能信號(hào)Rd_inst_en_p0。1)初始化復(fù)位后,指令指針為零;若執(zhí)行完當(dāng)前幀的Result,根據(jù)Halt_valid_p2信號(hào)清零PC。:1) P0:指令PC值產(chǎn)生;2) P1:取指;3) P2:指令譯碼、取操作數(shù);4) P3:指令執(zhí)行、寫(xiě)回;: 流水線時(shí)序 四級(jí)流水線 流水線相關(guān)部件設(shè)計(jì)(1)PC產(chǎn)生部件這一部件主要實(shí)現(xiàn)流水級(jí)中預(yù)取指令的PC產(chǎn)生功能。根據(jù)源操作數(shù)和控制信息進(jìn)行移動(dòng)操作,并產(chǎn)生mask位,用于寫(xiě)回時(shí)按位寫(xiě)回。每當(dāng)輸出后由信號(hào)Mul_reset_p2決定是否復(fù)位寄存器ENC_PRI[7:0]相應(yīng)的判決位,若為1,輸出后置相應(yīng)1為0。 end指令確認(rèn)信號(hào)Mul_valid_p2[5:0]決定PRI_ENC模塊執(zhí)行;Movmul將選中的操作數(shù)送到唯一的目的寄存器ENC_PRO[7:0];Jmul根據(jù)選中的操作數(shù)值即跳轉(zhuǎn)地址Jmul_addr_p2[10:0]輸出。 else if(ENC_PRO[1]) Jmul_addr[10:0]= label1。 else if(ENC_PRO[3]) Jmul_addr[10:0]= label3。 else if(ENC_PRO[5]) Jmul_addr[10:0]= label5。若ENC_PRI[7:0]的bit7為1,則選中從左到右的第一個(gè)操作數(shù)輸出;若ENC_PRI[7:0]的bit7為0而bit6為1,則選中從左到右的第二個(gè)操作數(shù),依次類(lèi)推,即從最高位開(kāi)始,選第一個(gè)1:beginif (ENC_PRO[7]) Jmul_addr[10:0]= label7。4)優(yōu)先級(jí)編碼單元PRI_ENC PRI_ENC運(yùn)算單元,PRI_ENC優(yōu)先級(jí)編碼模塊處理指令Movmul和Jmul。 最后,內(nèi)部寄存器MAX_CNT[3:0]記錄比較數(shù)的序列號(hào),每當(dāng)讀取新的MAX_I[7:0],計(jì)數(shù)器加1。當(dāng)比較最小值時(shí),若MAX_I不小于MAX_O,不更新MAX_O和MAX_O_INDEX。當(dāng)比較最大值時(shí),若MAX_I不大于MAX_O,不更新MAX_O和MAX_O_INDEX。根據(jù)Max_cmp_sel_p2決定比較最大值還是最小值。根據(jù)Max_index_rst_p2決定是否復(fù)位MAX_O_INDEX寄存器的值。3)序列大小比較單元MAX該模塊的功能是從一系列任意長(zhǎng)度的數(shù)中找出最大值或最小值。最后16位結(jié)果全部輸出到Mint_o_p3[15:0],同時(shí)也輸出到DST目的寄存器中,輸出到DST的內(nèi)容受Mint_ctr_p2和SIZE_p2控制。然后,輸出依據(jù)運(yùn)算的操作碼類(lèi)型Mint_oper_p2[3:0]不同,一共有十二種預(yù)定義的運(yùn)算,輸出結(jié)果可為116位。 ALU執(zhí)行單元原理圖2)小項(xiàng)運(yùn)算單元MINT該模塊執(zhí)行Mintern運(yùn)算,它包含多個(gè)參數(shù)且精確到位,用戶(hù)可選擇至多12個(gè)預(yù)定義的運(yùn)算。最終產(chǎn)生32為計(jì)算結(jié)果Alu_out[31:0]和相關(guān)標(biāo)志位信號(hào)。1)邏輯算術(shù)運(yùn)算單元ALU,該執(zhí)行單元實(shí)現(xiàn)指令的And、Xor、Add、Sub、Addc、Subb、Decode、Encode、NumOnes運(yùn)算。可以作為移動(dòng)指令、ALU指令、Mintern、SetMaxMin等指令的源操作數(shù)或目的操作數(shù)寄存器??梢宰鳛镸ov、MovBits、Mov4Bits、Get、ALU 指令、Mintern、SetMaxMin指令的源操作數(shù)或目的操作數(shù)寄存器。另外,8個(gè)24位寄存器HREG專(zhuān)門(mén)用于存放轉(zhuǎn)發(fā)微引擎處理之后的關(guān)鍵字/消息的頭部信息, PutHdr等指令可以通過(guò)字節(jié)、位尋址訪問(wèn)HREG。Pukey、Copy指令把源操作數(shù)寫(xiě)入輸出存儲(chǔ)器中。輸出存儲(chǔ)器存放轉(zhuǎn)發(fā)微引擎作出的一系列決定,供搜索微引擎下一步的查找。結(jié)果/消息的前16位是控制位,同時(shí)將它們寫(xiě)入結(jié)果控制(Result control)模塊。流水線運(yùn)行時(shí),每個(gè)時(shí)鐘周期從指令存儲(chǔ)器中取出一條指令。首先Host寫(xiě)指令數(shù)據(jù)到WDATA[1]~WDATA[3]寄存器和寫(xiě)指令地址到WDATA_CMD寄存器,然后信息被寫(xiě)到指令存儲(chǔ)器。具有73位的數(shù)據(jù)讀/寫(xiě)總線,11位的地址總線。轉(zhuǎn)發(fā)微引擎可分為以下功能模塊:指令存儲(chǔ)器、輸入出入存儲(chǔ)器(寄存器)、內(nèi)部寄存器堆、功能執(zhí)行單元。 微引擎功能模塊設(shè)計(jì) 微引擎內(nèi)部主要由指令執(zhí)行部件和與之相配合的數(shù)據(jù)寄存器、指令存儲(chǔ)器構(gòu)成。7) Resolve微引擎訪問(wèn)統(tǒng)計(jì)計(jì)數(shù)(Statistics)模塊。5) Resolve微引擎向Search2微引擎?zhèn)魉蛶髁靠刂茀?shù)。3) Resolve微引擎向Search1微引擎?zhèn)魉偷母呒?jí)學(xué)習(xí)(High Learn)信息。 轉(zhuǎn)發(fā)微引擎總體結(jié)構(gòu)框圖微引擎頂層接口描述如下:1)
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1