Terasic DE0-nanoの最高動作クロックを探ってみた
設定
Platform Designer 構成
Nios2、PLL、オンチップメモリの最低限の構成
- nios2_gen2
- altpll
- inclk0 50MHz
- areset,locked端子を削除
- c0 output clock frequecnyを順番に設定
- onchip_memory
- Total memory size 32768
- sysid_qsys
- jtag_uart
Quartus Prime
トップモジュールにCLKとRESET端子のみ設けて、nios2インタスを作成する単純な構成
module top(
CLK,
KEY_0
);
input CLK;
input KEY_0; //RESET
display_qsys u0 (
.clk_clk (CLK), // clk.clk
.reset_reset_n (KEY_0) // reset.reset_n
);
endmodule
Timing Analyzer
タイミング制約ありのときの設定
create_clock -period 20.000 [get_ports {CLK}]
derive_pll_clocks
derive_clock_uncertainty
結果
100MHz
- タイミング制約なし:Hello worldする。
- タイミング制約あり:試していない
150MHz
- タイミング制約なし:System ID Not found
- タイミング制約あり:Hello worldする。
200MHz
- タイミング制約なし:System ID Not found
- タイミング制約あり:Hello worldする。
300MHz
- タイミング制約なし:試していない
- タイミング制約あり:System ID Not found
考察
DE0-Nanoに搭載のCycloneIV EP4CE22F17C6N FPGAのカタログスペックは
PLL Output frequency 472.5MHz
Clock Tree Performance for Cyclone IV Devices 500MHz (Device:EP4CE22 Performance:C6)
であるので、300MHzは動くことを期待したけども、搭載のSDRAMコントローラが100MHzまでであることと、
DE0nanoのNios2サンプルコードも100MHzになっているので、実用限界はそういうことかも。
設定次第で改善の余地ある?
https://forums.intel.com/s/question/0D50P00003yyPJaSAM/maximum-clock-speed-for-cyclone-iv?language=en_US
##追記
300MHz版で、PLL設定をOperating Mode:With no compesation
にしてみたけど変化なし。
##追記の追記
こんなことしなくても、マクニカにデバイス毎の動作周波数の資料が掲載されてた。
https://service.macnica.co.jp/support/faq/126137
ドキュメントによるとCyncloneIV(EP4CGX30CF19C6)ではNiosII/fで160MHz,NiosII/eでは170MHzであるから、200MHzで動いても保証外と判断したほうがよさそう。