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

正文內(nèi)容

wishbone協(xié)議中文版(參考版)

2025-06-09 17:25本頁面
  

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