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

正文內(nèi)容

wishbone協(xié)議中文版(文件)

 

【正文】 沒(méi)有準(zhǔn)備好,于是將STB_O置低表示插入等待周期。 在時(shí)鐘上升沿4,從設(shè)備檢測(cè)到主設(shè)備的寫(xiě)操作,將DAT_I()采樣。 在時(shí)鐘上升沿6,主設(shè)備檢測(cè)到ACK_I為高,于是發(fā)起第四次操作,更新DAT_O(),同時(shí)將CTI_O置為3’b111表示本次操作為最后一次操作。對(duì)于粒度為8比特的數(shù)據(jù)總線,當(dāng)數(shù)據(jù)總線寬度為8,地址每次增加1;當(dāng)數(shù)據(jù)總線寬度為16,地址每次增加2;當(dāng)數(shù)據(jù)總線寬度為32,地址每次增加4。常見(jiàn)的折疊尺寸為4和8,因此Wishbone標(biāo)準(zhǔn)中明確定義了支持疊4和疊8操作,示例如表4所示。 圖20給出了一個(gè)數(shù)據(jù)總線為32位粒度為8的疊4地址增加突發(fā)讀操作示例。 在時(shí)鐘上升沿1,從設(shè)備檢測(cè)到主設(shè)備的讀操作,將數(shù)據(jù)放到DAT_O(),同時(shí)置高ACK_O。 在時(shí)鐘上升沿3,主設(shè)備檢測(cè)到ACK_I為高,將DAT_I()采樣完成第二次操作,并發(fā)起第三次操作。 在時(shí)鐘上升沿5,主設(shè)備檢測(cè)到ACK_I為高,將DAT_I()采樣完成第四次操作。 遵守Wishbone規(guī)范的IP的文檔中必須寫(xiě)明: 如果主設(shè)備支持RTY_I/ERR_I,必須給出當(dāng)RTY_I/ERR_I有效時(shí),主設(shè)備是如何響應(yīng)的;如果從設(shè)備支持RTY_O/ERR_O,必須給出從設(shè)備在什么條件下才能置高RTY_O/ERR_O。 接口的數(shù)據(jù)總線粒度、寬度,地址總線寬度。 數(shù)據(jù)的傳輸順序,如果不規(guī)定接口的數(shù)據(jù)傳輸順序,該項(xiàng)為未定義。這里給出一個(gè)Wishbone從設(shè)備的一個(gè)例子,如圖21所示。always (posedge CLK_I or posedge RST_I ) begin if(RST_I) begin DAT_O=839。 endendassign ACK_O=STB_I。該模塊端口定義如下: module rng(clk,reset,loadseed_i,seed_i,number_o)。 wire loadseed=WE_Iamp。h00。h00。 assign DAT_O[7:0] =SEL_I[0]?rand_number[7:0] :839。 assign DAT_O[23:16]=SEL_I[2]?rand_number[23:16]:839。//隨機(jī)數(shù)生成器的莉化 rng unit_rng(.clk(CLK_I),.reset(RST_I),.loadseed_i(loadseed),.seed_i(seed),.number_o(rand_number))。 Wishbone主設(shè)備接口與RAM的連接示例如圖22。圖22的右圖表示RAM讀操作。 圖23 Wishbone主設(shè)備接口與ROM的連接 WISHBONE兼容的RAM和Flash仿真模型 在Or1200的驗(yàn)證中我們將使用到WISHBONE兼容的RAM和Flash模型,因此,我們?cè)谶@里給出所使用的RAM和Flash的源碼。//RAM為2MB,因此地址寬度aw = 19//地址不能大于2M。 assign adr = {839。//SRAM讀邏輯assign wb_dat_o[7:0] = mem[adr+3]。 if (wb_sel_i[1]) mem[adr+2] = 1 wb_dat_i[15:8]。assign wb_ack_o = wb_cyc_i amp。主設(shè)備每讀32比特的數(shù)據(jù)需要4個(gè)時(shí)鐘周期。 //2M字節(jié)wire [31:0] adr。wire wb_err。b00}。//讀模型,數(shù)據(jù)被一次賦值assign wb_dat_o[7:0] = wb_adr_i[23:0] 65535 ? mem[adr+3] : 839。assign wb_dat_o[23:16] = wb_adr_i[23:0] 65535 ? mem[adr+1] : 839。 // delay邏輯,該邏輯的目的是每次發(fā)生讀操作,都在4個(gè)周期后產(chǎn)生應(yīng)答信號(hào)wb_ack_oalways (posedge wb_clk_i or posedge wb_rst_i) if (wb_rst_i) begin delay = 1 239。 end else if (delay amp。 wb_cyc_i amp。 else if (wb_ack_o || wb_err_o || (wb_adr_i != prev_adr) || ~wb_stb_i) begin delay = 1 239。 wb_stb_i amp。 (wb_adr_i == prev_adr)。d0) amp。 else wb_err_o = 1 wb_err amp。在圖中,數(shù)據(jù)的粒度是32比特,每次操作中數(shù)據(jù)總是同時(shí)全部有效,因此可以省略SEL_O()信號(hào)。系統(tǒng)復(fù)位后,一個(gè)或者多個(gè)主設(shè)備通過(guò)置高CYC_O請(qǐng)求使用總線,仲裁器(后文將討論)選擇其中一個(gè)主設(shè)備X(X在0和N之間),只將該主設(shè)備對(duì)應(yīng)的GNTX信號(hào)置高,而將其它GNT信號(hào)置低以通知INTERCON哪一個(gè)主設(shè)備可以使用總線。 從設(shè)備是如何被選擇的呢 39。而從設(shè)備的DAT_O()輸出則通過(guò)選擇器送到各個(gè)主設(shè)備的輸入端,這個(gè)選擇器的輸入為共享地址總線。arbiter2M2S arbiter2M2S(.CLK(clk_i),.RST(rst_i),.CYC0(wb0_cyc_i),.CYC1(wb1_cyc_i),.GNT0(GNT0),.GNT1(GNT1),.CYC(CYC))。address_decoder2S address_decoder2S(.addr_i(shared_address),.ACMP0(ACMP0),.ACMP1(ACMP1))。//共享地址信號(hào)assign shared_address=GNT1?wb1_addr_i:wb0_addr_i。//從各主設(shè)備到各從設(shè)備的共享數(shù)據(jù)總線wire [31:0] shared_data_m2s=GNT1?wb1m_data_i:wb0m_data_i。//從各從設(shè)備到各主設(shè)備的共享數(shù)據(jù)總線wire [31:0] shared_data_s2m=ACMP1?wb1s_data_i:wb0s_data_i。//從各主設(shè)備到各從設(shè)備的共享選擇信號(hào)wire [3:0] shared_sel=GNT1?wb1_sel_i:wb0_sel_i。//從各主設(shè)備到各從設(shè)備的共享寫(xiě)使能信號(hào)wire shared_we=GNT1?wb1_we_i:wb0_we_i。//從各主設(shè)備到各從設(shè)備的共享選通信號(hào)wire shared_stb=GNT1?wb1_stb_i:wb0_stb_i。b1。assign wb1_ack_o=shared_ack。wire shared_rty=ACMP0?wb0_rty_i:wb1_rty_i。比如在PCI總線中,每一個(gè)從設(shè)備都必須具有32位的地址輸入,并對(duì)這32位的地址進(jìn)行譯碼以確定如何響應(yīng)主設(shè)備的請(qǐng)求。這樣做的好處是:地址譯碼速度快,地址譯碼邏輯少,從設(shè)備可自由定義地址總線寬度。而地址總線的最低2位被直接連接到IP核,IP核再根據(jù)這兩位譯碼出當(dāng)前操作選中的是具體哪個(gè)寄存器。對(duì)于圖中所示IP核,我們假設(shè)其只有4個(gè)地址,對(duì)應(yīng)4組寄存器。在部分地址譯碼總線規(guī)范中,從設(shè)備只需要譯碼自己所使用的地址空間。assign wb1_rty_o=shared_rty。assign wb0_err_o=shared_err。//從各從設(shè)備到各主設(shè)備的應(yīng)答信號(hào)wire shared_ack=ACMP0?wb0_ack_i:wb1_ack_i。b0。assign wb1_we_o=shared_we。assign wb1_sel_o=shared_sel。assign wb1m_data_o=shared_data_s2m。assign wb1s_data_o=shared_data_m2s。assign wb1_addr_o=shared_address。assign wb1_cyc_o=CYC。//地址譯碼器wire ACMP0,ACMP1。……//這里忽略了端口定義從設(shè)備Y對(duì)應(yīng)的譯碼輸出信號(hào)與共享總線上的STB_I信號(hào)相與,如果STB_I信號(hào)和從設(shè)備Y對(duì)應(yīng)的譯碼輸出信號(hào)同時(shí)為高,從設(shè)備Y才發(fā)起對(duì)主設(shè)備操作的響應(yīng)。例如,如果主設(shè)備0被中可以使用總線,則器ADR()、DAT_O()、SEL_O()、WE_O和STB_O信號(hào)將被送到各個(gè)從設(shè)備。 圖24 Wishbone點(diǎn)到點(diǎn)連接示例十一、Wishbone共享總線連接示例 Wishbone共享總線連接與點(diǎn)到點(diǎn)連接同樣重要。 endmodule十、Wishbone點(diǎn)到點(diǎn)連接示例 Wishbone點(diǎn)到點(diǎn)連接在ASIC和FPGA設(shè)計(jì)中非常常見(jiàn)。 always (posedge wb_clk_i or posedge wb_rst_i) if (wb_rst_i) wb_err_o = 1 139。 wb_stb_i amp。 (delay == 239。 // delay ... can range from 3 to 0 prev_adr = 1 wb_adr_i。 wb_stb_i) delay = 1 delay 239。 (wb_adr_i == prev_adr) amp。 prev_adr = 1 3239。 assign wb_dat_o[31:24] = wb_adr_i[23:0] 65535 ? mem[adr+0] : 839。assign wb_dat_o[15:8] = wb_adr_i[23:0] 65535 ? mem[adr+2] : 839。//FLASH的初始化initial $readmemh(../src/, mem, 0)。//assign adr = {839。reg [31:0] prev_adr。 wb_dat_i, wb_dat_o, wb_adr_i, wb_sel_i, wb_we_i, wb_cyc_i, wb_stb_i, wb_ack_o, wb_err_o)。 ~wb_err_o。 if (wb_sel_i[3]) mem[adr+0] = 1 wb_dat_i[31:24]。 wb_stb_i amp。assign wb_dat_o[23:16] = mem[adr+1]。b00}。 wb_stb_i amp。……parameter aw = 19。 圖22的左圖表示RAM寫(xiě)操作。 表6 從設(shè)備的Wishbone文檔描述 規(guī)范 功能 隨機(jī)數(shù)生成器,32比特從設(shè)備支持的總線周期類(lèi)型 從設(shè)備讀寫(xiě)從設(shè)備塊讀寫(xiě)從設(shè)備RMW操作數(shù)據(jù)端口寬度數(shù)據(jù)端口粒度數(shù)據(jù)端口最大操作數(shù)尺寸數(shù)據(jù)傳輸順序32832大端或者小端支持的信號(hào)及其對(duì)應(yīng)WISHBONE信號(hào)列表align = center 信號(hào)名 WISHBONE等效 ACK_O ACK_O CLK_I CLK_I DAT_I[7:0] DAT_I() DAT_O[7:0] DAT_O() RST_I RST_I STB_I STB_I WE_I WE_I SEL_I[3:0] SEL_I() 九、Wishbone對(duì)RAM/ROM的支持 WISHBONE與RAM和ROM的互聯(lián) 遵守Wishbone規(guī)范的IP可以與任何類(lèi)型的RAM和ROM互聯(lián),只是對(duì)于不同的RAM和ROM,接口的復(fù)雜度不同,工作效率也不同。 assign DAT_O[31:24]=SEL_I[3]?rand_number[31:24]:839。 assign DAT_O[15:8] =SEL_I[1]?rand_number[15:8] :839。 wire [31:0] rand_number。h00。h00。(|SEL_I)。 我們的目的是將其包裝成WISHBONE兼容的從模塊,其Verilog RTL代碼如下: //module Rng_wbc(input CLK_I, input RST_I, input [31:0] DAT_I, input STB_I,input WE_I, input [3:0] SEL_I, output [31:0] DAT_O,output ACK_O)。 表5 從設(shè)備的Wishbone文檔描述規(guī)范功能8比特從設(shè)備支持的總線周期類(lèi)型從設(shè)備讀寫(xiě)從設(shè)備塊讀寫(xiě)從設(shè)備RMW操作數(shù)據(jù)端口寬度數(shù)據(jù)端口粒度數(shù)據(jù)端口最大操作數(shù)尺寸數(shù)據(jù)傳輸順序888大端或者小端支持的信號(hào)及其對(duì)應(yīng)WISHBONE信號(hào)列表align=center信號(hào)名WISHBONE等效ACK_OACK_OCLK_ICLK_IDAT_I[7:0]DAT_I()DAT_O[7:0]DAT_O()RST_IRST_ISTB_ISTB_IWE_IWE_I 一個(gè)32比特RTL級(jí)隨機(jī)數(shù)生成器從設(shè)備 下面我們舉一個(gè)實(shí)用一點(diǎn)的例子,一個(gè)隨機(jī)數(shù)生成器。 end else if(STB_Iamp。在寫(xiě)周期,當(dāng)STB_I和WE_I同時(shí)有效,數(shù)據(jù)DAT_I[7:0]在時(shí)鐘CLK_I的上升沿被寫(xiě)到觸發(fā)器中。 對(duì)CLK_I的要求,包括對(duì)頻率的要求、對(duì)邊沿的要求,對(duì)門(mén)控時(shí)鐘的要求。 數(shù)據(jù)組織方式是大端還是小端。 如果接口支持標(biāo)簽,必須給出標(biāo)簽名字、類(lèi)型和標(biāo)簽的使用方法。如果信號(hào)名與規(guī)范中定義的信號(hào)名不同,必須給出對(duì)照表。
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1