Forum Discussion
Hi,
Based on my understanding, you have done a HLS flow which included Avalon Slave and Avalon MM in your platform designer, am I right?
As mentioned earlier, you would like to find the information about the DMAIF, but I could not found any information about the DMAIF.
Is the DMAIF is a DMA controller?
Could you explain more on it?
Thanks
- 孝東0006 years ago
New Contributor
こんにちわ。 返信ありがとうございます。
私は、FPAG開発経験が無い人です。コメント助かります。
私が実施したのは以下の手順です。
手順
1.xxxx.c を高位合成しました。(HLS) -> xxxxBlock
xxxx.cは、DMAIFとレジスタを装備します。
関数の引数は、アドレスPointerをAvalon-MMで指定しました。
関数の引数は、パラメータをAvalon-Slaveで指定しました。
2.DE10-NanoのGSRDを用意しました。そのDIR以下に、xxxxBlock を格納しました。
3.Platform Designer(Quartus Prime 18.1 Lite Edition)を起動しました。
xxxxBlock を hps_0 の f2h_sdram0 につなぎました。
私はこの文章を書いていて、気が付きました。
今
[xxxxBlock] -DMA IF-> [hps_0]
理想
[xxxxBlock] -DMA IF->[DMA Controller] -DMA IF-> [hps_0]
[xxxxBlock]にDMAを行わせるために、
私は、 [xxxxBlock] と [DMA Controller]を組み込む必要がありますか?
- EBERLAZARE_I_Intel6 years ago
Regular Contributor
Hi,
Please allow me some time to check our document for information regarding this.
Are you trying to move data from xxxBlock to HPS via DMA?
Regards.
- 孝東0006 years ago
New Contributor
こんにちわ。返信ありがとうございます。
”Are you trying to move data from xxxBlock to HPS via DMA?”
Yes,I am.
私の希望。
xxxBlock は、画像処理を行います。
xxxBlock は、DMAで画像データを入力します。(DMA read)
xxxBlock は、データを加工します。そして、転送先アドレスも変更します。
xxxBlock は、DMAで画像データを出力します。(DMA Write)
状況
1.私は、Qurtus Prime HLSを使いました。
component xxxBlock(
ihc::mm_master<unsigned int , ihc::aspace<1>,ihc::awidth<32>,ihc::dwidth<64>,ihc::latency<0>,ihc::maxburst<8>,ihc::waitrequest<true> > &a,
ihc::mm_master<unsigned int , ihc::aspace<2>,ihc::awidth<32>,ihc::dwidth<64>,ihc::latency<0>,ihc::maxburst<8>,ihc::waitrequest<true> > &b,
hls_avalon_slave_register_argument unsigned int mode
2. 私は、Qurtus Prime Platform Designer を使いました。xxxBlockIPをつなぎました。
xxxBlock xxxBlock_inst (
// Interface: clock (clock end)
.clock ( ), // 1-bit clk input
// Interface: reset (reset end)
.resetn ( ), // 1-bit reset_n input
// Interface: clock2x (clock end)
.clock2x ( ), // 1-bit clk input
// Interface: irq (interrupt end)
.done_irq ( ), // 1-bit irq output
// Interface: a (conduit sink)
.a ( ), // 64-bit data input
// Interface: b (conduit sink)
.b ( ), // 64-bit data input
// Interface: avmm_1_rw (avalon start)
.avmm_1_rw_address ( ), // 32-bit address output
.avmm_1_rw_byteenable ( ), // 8-bit byteenable output
.avmm_1_rw_readdatavalid( ), // 1-bit readdatavalid input
.avmm_1_rw_read ( ), // 1-bit read output
.avmm_1_rw_readdata ( ), // 64-bit readdata input
.avmm_1_rw_write ( ), // 1-bit write output
.avmm_1_rw_writedata ( ), // 64-bit writedata output
.avmm_1_rw_waitrequest ( ), // 1-bit waitrequest input
.avmm_1_rw_burstcount ( ), // 4-bit burstcount output
// Interface: avmm_2_rw (avalon start)
.avmm_2_rw_address ( ), // 32-bit address output
.avmm_2_rw_byteenable ( ), // 8-bit byteenable output
.avmm_2_rw_readdatavalid( ), // 1-bit readdatavalid input
.avmm_2_rw_read ( ), // 1-bit read output
.avmm_2_rw_readdata ( ), // 64-bit readdata input
.avmm_2_rw_write ( ), // 1-bit write output
.avmm_2_rw_writedata ( ), // 64-bit writedata output
.avmm_2_rw_waitrequest ( ), // 1-bit waitrequest input
.avmm_2_rw_burstcount ( ), // 4-bit burstcount output
現在は、
[xxxxBlock] -DMA IF-> [hps_0] 直接つないでいます。
私が質問させてください。
Interface: a (conduit sink)は exported です。これは問題ですか?
Interface: b (conduit sink)は exported です。これは問題ですか?
もしも問題でしたら、何を接続するのでしょうか?