Cyclone V ACPの実験その3

FPGA

前回の実験で、ACPを有効にすることができました。では、ACPを有効にするために必要とされている設定を個別に解除した場合、本当にACPが無効になるのかを確認しました。

ACPの設定解除

1. AxUSER[0]=0に設定

//PP_AXI_MASTER_CONFIG = 0x010f010f;
PP_AXI_MASTER_CONFIG = 0x000f000f;

結果

ACPは無効になりました。

2. AxCACHE[3:0]=0に設定

//PP_AXI_MASTER_CONFIG = 0x010f010f;
PP_AXI_MASTER_CONFIG = 0x01000100;

結果

ACPは無効になりました。

3. SCUを無効に設定

//(*(volatile unsigned int  *)(0xfffec000)) = 1;
(*(volatile unsigned int  *)(0xfffec000)) = 0;

結果

ACPは無効になりました。

4. コヒーレント・メモリのSharableを無効に設定

.shareable  = ALT_MMU_TTB_S_NON_SHAREABLE,
//.shareable  = ALT_MMU_TTB_S_SHAREABLE,

結果

ACPは無効になりました。

5. ACTLRレジスタのSMPビットを解除

//  actlr |= 0x40;  // set SMP bit(bit6)
actlr |= 0x00;

結果

ACPは有効でした。

まとめ

少なくともこの実験では、ACTLRのSMPビットが設定されていなくてもACPが有効でした。このテストは非常に簡単な動作しか行っていないので、より複雑な動作状況下ではACTLRの設定が必要なのかも知れません。

タイトルとURLをコピーしました