猪狩/PR Controller
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[猪狩/研究]]
*PR Controller(PRC)について [#x9b04e10]
本研究では、Xilinx製の一部のFPGAに搭載されている動的部分再構成(Dynamic Partial Reconfiguration, DPR)を用い、特定のアプリケーション用のアクセラレータを必要な場合にのみ実装し、使用するシステムを実装する。&br;
本設計のPRCでは、Xilinxが提供するDMA Controllerなどと同じように、MicroBlaze(MB)からMemory Mapped I/Oに割り当てられたレジスタにデータを書き込む(読み込む)ことにより、回路の一部を再構成するなどの機能を実行するように設計する。
**PRCの設計 [#af24fb15]
PRCは「LogiCORE IP XPS Central DMA Controller (DS579)」をベースに設計を行った。&br;
これは、PRにおいてPartial Bitstreamデータとアプリケーション用データのDMA転送が重要な役割を持ち、本設計のPRCにおいてDMA ControllerのDMA転送機能がベースとなるからである。&br;
本設計のPRCの全体図及び、PRC内部のブロック図を下記に示す。&br;
CENTER:&ref(猪狩/PR Controller/PRsystem4.png,80%);
CENTER:&ref(猪狩/PR Controller/PR_Controller.png,80%);
**PRCの機能 [#ya9386df]
***PRMの構成・状態に関する機能 [#qdf2386d]
-&color(red){PRMの構成を入れ替える機能 (PRM Configuration, PRMC)};
&br;再構成用データをICAP送る。
++MBからXIo_Out32関数で、Memory Mapped RegisterのPRMCR/SA/SALNGに指定のデータを書き込む。
++再構成可能であれば、SA/SALNGで指定された再構成用データをPartial Bit Memからバーストリードし、ICAPへ送る。
++再構成が終了したら、MBへ割り込み信号を送る。
-&color(red){PRMの構成・状態を調べる機能 (PRM Search, PRMS)};
&br;Memory Mapped RegisterのPRMSRを読み出す。
++MBからXIo_Out32関数で、PRMSRのデータを読み出す。
***PRMの動作に関する機能 [#ub702dd8]
-&color(red){PRMを初期化する機能 (PRM Initialize, PRMI)};
&br;PRM内のレジスタを初期化する。
++Memory Mapped RegisterのRSTに0x000000Aを書き込む。
-&color(red){PRMを動作させる機能 (PRM Run, PRMR)};
&br;アプリケーション入力用データをPRMへ送り、PRMから出力されたデータをアプリケーション出力用メモリに書き込む。
++MBからXIo_Out32関数で、Memory Mapped RegisterのPRMCR/SA/DA/SALNG/DALNGに指定のデータを書き込む。
++指定されたPRMが動作可能ならば、SA/SALNGで指定されたアプリケーション入力用データをApplicaiton InData Memからバーストリードし、PRMへ送る。
++PRMから出力されたデータをDA/DALNGで指定されたApplication OutData Memへバーストライトする。
++動作が終了したら、MBへ割り込み信号を送る。
**PRC Register Descriptions [#se04a289]
|Register Name|Base Address + Offset (hex)|Access|
|Software Reset Register (RST)|C_BASEADDR + 0|Write|
|PRM Control Register (PRMCR)|C_BASEADDR + 4|R/W|
|Source Address (SA)|C_BASEADDR + 8|R/W|
|Destination Address (DA)|C_BASEADDR + C|R/W|
|SA Length (SALNG)|C_BASEADDR + 10|R/W|
|DA Length (DALNG)|C_BASEADDR + 14|R/W|
|PRM Status Register (PRMSR)|C_BASEADDR + 18|Read|
|Reconfiguration Tiem Register (RTR)|C_BASEADDR + 1C|Read|
***Software Reset Register (RST) [#od2075c1]
|Bits|Name|Core Access|Reset Value|Description|
|0-31|RST|Write|N/A|Software Reset&br;A write of 0x0000000A causes reset of the PRM Controller. A write of any other value has undefined effect and returns a bus error. A read of this register returns zero.|
***PRM Control Register (PRMCR) [#w74bf643]
|Bits|Name|Core Access|Reset Value|Description|
|0|IorP|R/W|'0'|ICAP or PRM:&br;'0' = Read data send to ICAP.&br;'1' = Read data send to PRM.|
|1-31||||Reserved|
***Source Address (SA) [#l1e3caa5]
|Bits|Name|Core Access|Reset Value|Description|
|0-31|SA|Write|0|Source Address: Source address for the current PRM operation.|
***Destination Address (DA) [#n7d338ed]
|Bits|Name|Core Access|Reset Value|Description|
|0-31|DA|Write|0|Destination Address: Destination address for the current DMA operation.|
***SA Length (SALNG) [#e6a59664]
|Bits|Name|Core Access|Reset Value|Description|
|0-31|SALNG|R/W|0|Length of the Burst Read Transfer for PRM:|
***DA Length (DALNG) [#e6a59664]
|Bits|Name|Core Access|Reset Value|Description|
|0-31|DALNG|R/W|0|Length of the Burst Write Transfer for PRM:|
***PRM Status Register (PRMSR) [#t9446b6b]
|Bits|Name|Core Access|Reset Value|Description|
|0|RECONF|Read|'0'|PRM Reconfigure:&br;'0' = Reconfiguring operation is not in progress.&br;'1' = Reconfiguring operation is in progress.|
|1|PRMEN|Read|'0'|PRM Enable:&br;'0' = PRM is not enable.&br;'1' = PRM is enable.|
|2|PRMBSY|Read|'0'|PRM Busy:&br;'0' = PRM is not busy.&br;'1' = PRM is busy.|
|3-31|PRMTYPE|Read|'0'|PRM Type:&br;'0' = PRM Type is 0.&br;'1' = PRM Type is 1.&br;'2' = PRM Type is 2.&br;'3' = PRM Type is 3.&br;'4' = PRM Type is 4.&br;'5' = PRM Type is 5.|
***Reconfiguration Tiem Register (RTR) [#bd76cee3]
|Bits|Name|Core Access|Reset Value|Description|
|0-31|RTR|Read|0|The number clock cycle for partial reconfiguration|
終了行:
[[猪狩/研究]]
*PR Controller(PRC)について [#x9b04e10]
本研究では、Xilinx製の一部のFPGAに搭載されている動的部分再構成(Dynamic Partial Reconfiguration, DPR)を用い、特定のアプリケーション用のアクセラレータを必要な場合にのみ実装し、使用するシステムを実装する。&br;
本設計のPRCでは、Xilinxが提供するDMA Controllerなどと同じように、MicroBlaze(MB)からMemory Mapped I/Oに割り当てられたレジスタにデータを書き込む(読み込む)ことにより、回路の一部を再構成するなどの機能を実行するように設計する。
**PRCの設計 [#af24fb15]
PRCは「LogiCORE IP XPS Central DMA Controller (DS579)」をベースに設計を行った。&br;
これは、PRにおいてPartial Bitstreamデータとアプリケーション用データのDMA転送が重要な役割を持ち、本設計のPRCにおいてDMA ControllerのDMA転送機能がベースとなるからである。&br;
本設計のPRCの全体図及び、PRC内部のブロック図を下記に示す。&br;
CENTER:&ref(猪狩/PR Controller/PRsystem4.png,80%);
CENTER:&ref(猪狩/PR Controller/PR_Controller.png,80%);
**PRCの機能 [#ya9386df]
***PRMの構成・状態に関する機能 [#qdf2386d]
-&color(red){PRMの構成を入れ替える機能 (PRM Configuration, PRMC)};
&br;再構成用データをICAP送る。
++MBからXIo_Out32関数で、Memory Mapped RegisterのPRMCR/SA/SALNGに指定のデータを書き込む。
++再構成可能であれば、SA/SALNGで指定された再構成用データをPartial Bit Memからバーストリードし、ICAPへ送る。
++再構成が終了したら、MBへ割り込み信号を送る。
-&color(red){PRMの構成・状態を調べる機能 (PRM Search, PRMS)};
&br;Memory Mapped RegisterのPRMSRを読み出す。
++MBからXIo_Out32関数で、PRMSRのデータを読み出す。
***PRMの動作に関する機能 [#ub702dd8]
-&color(red){PRMを初期化する機能 (PRM Initialize, PRMI)};
&br;PRM内のレジスタを初期化する。
++Memory Mapped RegisterのRSTに0x000000Aを書き込む。
-&color(red){PRMを動作させる機能 (PRM Run, PRMR)};
&br;アプリケーション入力用データをPRMへ送り、PRMから出力されたデータをアプリケーション出力用メモリに書き込む。
++MBからXIo_Out32関数で、Memory Mapped RegisterのPRMCR/SA/DA/SALNG/DALNGに指定のデータを書き込む。
++指定されたPRMが動作可能ならば、SA/SALNGで指定されたアプリケーション入力用データをApplicaiton InData Memからバーストリードし、PRMへ送る。
++PRMから出力されたデータをDA/DALNGで指定されたApplication OutData Memへバーストライトする。
++動作が終了したら、MBへ割り込み信号を送る。
**PRC Register Descriptions [#se04a289]
|Register Name|Base Address + Offset (hex)|Access|
|Software Reset Register (RST)|C_BASEADDR + 0|Write|
|PRM Control Register (PRMCR)|C_BASEADDR + 4|R/W|
|Source Address (SA)|C_BASEADDR + 8|R/W|
|Destination Address (DA)|C_BASEADDR + C|R/W|
|SA Length (SALNG)|C_BASEADDR + 10|R/W|
|DA Length (DALNG)|C_BASEADDR + 14|R/W|
|PRM Status Register (PRMSR)|C_BASEADDR + 18|Read|
|Reconfiguration Tiem Register (RTR)|C_BASEADDR + 1C|Read|
***Software Reset Register (RST) [#od2075c1]
|Bits|Name|Core Access|Reset Value|Description|
|0-31|RST|Write|N/A|Software Reset&br;A write of 0x0000000A causes reset of the PRM Controller. A write of any other value has undefined effect and returns a bus error. A read of this register returns zero.|
***PRM Control Register (PRMCR) [#w74bf643]
|Bits|Name|Core Access|Reset Value|Description|
|0|IorP|R/W|'0'|ICAP or PRM:&br;'0' = Read data send to ICAP.&br;'1' = Read data send to PRM.|
|1-31||||Reserved|
***Source Address (SA) [#l1e3caa5]
|Bits|Name|Core Access|Reset Value|Description|
|0-31|SA|Write|0|Source Address: Source address for the current PRM operation.|
***Destination Address (DA) [#n7d338ed]
|Bits|Name|Core Access|Reset Value|Description|
|0-31|DA|Write|0|Destination Address: Destination address for the current DMA operation.|
***SA Length (SALNG) [#e6a59664]
|Bits|Name|Core Access|Reset Value|Description|
|0-31|SALNG|R/W|0|Length of the Burst Read Transfer for PRM:|
***DA Length (DALNG) [#e6a59664]
|Bits|Name|Core Access|Reset Value|Description|
|0-31|DALNG|R/W|0|Length of the Burst Write Transfer for PRM:|
***PRM Status Register (PRMSR) [#t9446b6b]
|Bits|Name|Core Access|Reset Value|Description|
|0|RECONF|Read|'0'|PRM Reconfigure:&br;'0' = Reconfiguring operation is not in progress.&br;'1' = Reconfiguring operation is in progress.|
|1|PRMEN|Read|'0'|PRM Enable:&br;'0' = PRM is not enable.&br;'1' = PRM is enable.|
|2|PRMBSY|Read|'0'|PRM Busy:&br;'0' = PRM is not busy.&br;'1' = PRM is busy.|
|3-31|PRMTYPE|Read|'0'|PRM Type:&br;'0' = PRM Type is 0.&br;'1' = PRM Type is 1.&br;'2' = PRM Type is 2.&br;'3' = PRM Type is 3.&br;'4' = PRM Type is 4.&br;'5' = PRM Type is 5.|
***Reconfiguration Tiem Register (RTR) [#bd76cee3]
|Bits|Name|Core Access|Reset Value|Description|
|0-31|RTR|Read|0|The number clock cycle for partial reconfiguration|
ページ名: