新千葉 ガーベージ・コレクション

FPGA マガジンやインターフェースで書けなかったこと等をちょぼちょぼ書いてます。@ryos36

PJTAG

PJTAG through EMIO gives critical warning - Community Forums

PJTAG を EMIO にだすとき、 vivado が間違ったコードを吐き出すみたい。

##################################################​##########################
# PJTAG constraints                                                        #
##################################################​##########################
set_output_delay -clock [get_clocks PJTAG_TCK] -clock_fall -min -6.000 [get_ports PJTAG_TDO]
set_output_delay -clock [get_clocks PJTAG_TCK] -clock_fall -max 15.000 [get_ports PJTAG_TDO]
set_output_delay -clock [get_clocks PJTAG_TCK] -clock_fall -min 6.000 [get_ports PJTAG_TDO]
set_output_delay -clock [get_clocks PJTAG_TCK] -clock_fall -max 15.000 [get_ports PJTAG_TDO]

同じような行が続く。
おそらく、後続する行が前の行を打ち消しているに違いない。その上、Vivado で Make External (だったかな?)をつかうと PJTAG_tdo とかいうのをつくる。tcl は大文字と小文字を区別する。

この min と max は ARM の資料にある。
http://infocenter.arm.com/help/topic/com.arm.doc.dui0499jj/pge1418217063134_00003.html

セットアップが 15ns でホールドが 6ns だそうだ。つじつまが合っている?
値が一致したからと言ってつじつまが合っているかはちゃんと xdc を読みこなさないとわからない。(いいかげんにしちゃだめよ>わたし)
入出力タイミング制約
う~ん。なんかいろいろつじつまが合わない、、、COMAX が 3のような、、、でもセットアップタイムはあっている気がする。
他の資料はないか?

なので、必要な記述はたぶん次の感じじゃないかな。

##################################################​##########################
# PJTAG constraints                                                        #
##################################################​##########################
set_output_delay -clock [get_clocks PJTAG_tck] -clock_fall -min -6.000 [get_ports PJTAG_tdo]
set_output_delay -clock [get_clocks PJTAG_tck] -clock_fall -max 15.000 [get_ports PJTAG_tdo]

だ(と思う)。小文字にしないと Vivado が生成したのとつじつまあわなくなる。で、xdc に JTAG の clock をちゃんと書いておく。

set_output_delay -clock [get_clocks PJTAG_tck] -clock_fall -min -6.000 [get_ports PJTAG_tdo]
set_output_delay -clock [get_clocks PJTAG_tck] -clock_fall -max 15.000 [get_ports PJTAG_tdo]
create_clock -period 1000 -name PJTAG_tck [get_ports PJTAG_tck]

う~ん。うまくいってない気がする。1000ns だから 1Mbps。おせーな。100ns 位にした方がいいかも。などと vivado をいじっていたら合成できなくなった。うまくいった人、回答をくれ。