一個8比特從設備
前文曾經指出,Wishbone總線規范是"輕量級(Lightweight)"規范,它實現起來非常簡單緊湊,接口需要的互聯邏輯非常少。這里給出一個Wishbone從設備的一個例子,如圖21所示。該從設備由一個與門和8個D觸發器構成。在寫周期,當STB_I和WE_I同時有效,數據DAT_I[7:0]在時鐘CLK_I的上升沿被寫到觸發器中。
圖21 一個簡單的Wishbone從設備
該從設備的RTL代碼如下:
moduleslave8bit( inputCLK_I,//這里使用了Verilog2001語法 inputRST_I, input[7:0]DAT_I, inputSTB_I,inputWE_I, outputreg[7:0]DAT_O,outputACK_O); always@(posedgeCLK_IorposedgeRST_I) begin if(RST_I) begin DAT_O<=8'h00; ???????????????????????????end ???????????????????else?if(STB_I&WE_I) ???????????????????????????begin ??????????????????????????????????DAT_O<=DAT_I; ???????????????????????????end ???????????end ?????????? ????assign?ACK_O=STB_I; endmodule
該從設備的Wishbone文檔如表5。
表5從設備的Wishbone文檔
一個32比特RTL級隨機數生成器從設備
下面我們舉一個實用一點的例子,一個隨機數生成器。隨機數生成理論和隨機數生成器隨機數生成理論和隨機數生成器模塊的RTL代碼見附錄2。該模塊端口定義如下:
module rng(clk,reset,loadseed_i,seed_i,number_o);
number_o為隨機數輸出,當loadseed_I有效時,種子seed_I被送入number_o成為隨機數的第一個值。
我們的目的是將其包裝成WISHBONE兼容的從模塊,其Verilog RTL代碼如下:
moduleRng_wbc( inputCLK_I, inputRST_I, input[31:0]DAT_I, inputSTB_I,inputWE_I, input[3:0]SEL_I, output[31:0]DAT_O,outputACK_O); assignACK_O=STB_I; wireloadseed=WE_I&STB_I&(|SEL_I); wire[31:0]seed; assignseed[7:0]=SEL_I[0]?DAT_I[7:0]:8'h00; assignseed[15:8]=SEL_I[1]?DAT_I[15:8]:8'h00; assignseed[23:16]=SEL_I[2]?DAT_I[23:16]:8'h00; assignseed[31:24]=SEL_I[3]?DAT_I[31:24]:8'h00; wire[31:0]rand_number; assignDAT_O[7:0]=SEL_I[0]?rand_number[7:0]:8'h00; assignDAT_O[15:8]=SEL_I[1]?rand_number[15:8]:8'h00; assignDAT_O[23:16]=SEL_I[2]?rand_number[23:16]:8'h00; assignDAT_O[31:24]=SEL_I[3]?rand_number[31:24]:8'h00; //隨機數生成器的莉化 rngunit_rng(.clk(CLK_I),.reset(RST_I), .loadseed_i(loadseed),.seed_i(seed), .number_o(rand_number)); endmodule
該從設備的Wishbone文檔如表6。
表6從設備的Wishbone文檔
-
觸發器
+關注
關注
14文章
2003瀏覽量
61349 -
Wishbone
+關注
關注
0文章
16瀏覽量
10444
原文標題:【博文連載】Wishbone總線從設備接口示例
文章出處:【微信號:ChinaAET,微信公眾號:電子技術應用ChinaAET】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
wishbone總線
基于WISHBONE總線的FLASH閃存接口設計
基于Wishbone總線的UART IP核設計
![基于<b class='flag-5'>Wishbone</b>總線的UART IP核設計](https://file1.elecfans.com//web2/M00/A5/E7/wKgZomUMOrWAAGUWAAAOdRCQZ4Q309.jpg)
基于WISHBONE總線的FLASH閃存接口設計
![基于<b class='flag-5'>WISHBONE</b>總線的FLASH閃存接口設計](https://file.elecfans.com/web2/M00/49/00/pYYBAGKhtDKAbkqgAAAM_gQfa4w690.jpg)
設計復用的RTL指導原則
HLS系列 – High Level Synthesis(HLS) 從一個最簡單的fir濾波器開始2
用Elaborated Design優化RTL的代碼
![用Elaborated Design優化<b class='flag-5'>RTL</b>的<b class='flag-5'>代碼</b>](https://file.elecfans.com/web1/M00/CB/A6/pIYBAF-Pog6AY-zGAABBojHfwyo780.png)
評論