XG-SitcpをKC705の評価ボードで試している者です。
XGのIP編集について質問がございます。
XG psc pmaのIPの極性の変更をしようとしました。
しかしIP自身はサブシステムIPで、うまくかいくぐって変更する必要が
あるようで、Xilinxのサイト案内の通りにIPの編集を試しました。
しかしながら、P.103の手順の5-a時点でつまずいております。
”AMD Customer Community
そもそも編集の仕方が間違っていますでしょうか。
また、これとは異なる方法でIPを編集することはできるのでしょうか。
ご教示いただきますようよろしくお願いいたします。
pdf中5-1に相当する、KC705のバージョンに関わる修正のことです。
ドキュメント中の5.1.の内容ですが、生成したIPのソースディレクトリ(ip\ten_gig_eth_pcs_pma_0\synth)の中にある「ten_gig_eth_pcs_pma_0_block.v」に記述されている当該信号のwire定義文で、0を1に書き換えるというものです。
ご回答ありがとうございます。
仰る通り確かに変更はできますが、テキストで変更し保存しただけでは、変更はされません。
tclで相当数のコマンドを投げないと、実際には変更されないようです(通常はユーザーが変更できないように制限してあるIPの為。)
確かにここからはvivadoの使い方になるかとは思いますので、この質問はcloseいたします。
ありがとうございました。
新しいVivadoでten_gig_eth_pcs_pmaを作成するとten_gig_eth_pcs_pma_block.vが生成されません。
この場合は、IP作成時にAdditional transceiver control and status portsにチェックを入れて、
トランシーバの制御信号やステータスをポートに出すことでポラリティを修正できます。
Vivado2021.2でAdditional transceiver control and status portsにチェックを入れると以下のポートができるので、
以下の様に定数を入力します。
//transceiver control and status ports
.gt0_eyescanreset (1'b0 ), // input wire gt0_eyescanreset
.gt0_eyescandataerror ( ), // output wire gt0_eyescandataerror
.gt0_txbufstatus ( ), // output wire [1 : 0] gt0_txbufstatus
.gt0_rxbufstatus ( ), // output wire [2 : 0] gt0_rxbufstatus
.gt0_eyescantrigger (1'b0 ), // input wire gt0_eyescantrigger
.gt0_rxcdrhold (1'b0 ), // input wire gt0_rxcdrhold
.gt0_txprbsforceerr (1'b0 ), // input wire gt0_txprbsforceerr
.gt0_txpolarity (gt0_txpolarity ), // input wire gt0_txpolarity
.gt0_rxpolarity (gt0_rxpolarity ), // input wire gt0_rxpolarity
.gt0_rxprbserr ( ), // output wire gt0_rxprbserr
.gt0_txpmareset (1'b0 ), // input wire gt0_txpmareset
.gt0_rxpmareset (1'b0 ), // input wire gt0_rxpmareset
.gt0_txresetdone ( ), // output wire gt0_txresetdone
.gt0_rxresetdone ( ), // output wire gt0_rxresetdone
.gt0_rxdfelpmreset (1'b0 ), // input wire gt0_rxdfelpmreset
.gt0_rxlpmen (1'b0 ), // input wire gt0_rxlpmen
.gt0_dmonitorout ( ), // output wire [7 : 0] gt0_dmonitorout
.gt0_rxrate (3'd0 ), // input wire [2 : 0] gt0_rxrate
.gt0_txprecursor (5'd0 ), // input wire [4 : 0] gt0_txprecursor
.gt0_txpostcursor (5'd0 ), // input wire [4 : 0] gt0_txpostcursor
.gt0_txdiffctrl (4'b1110 ) // input wire [3 : 0] gt0_txdiffctrl
※ 設定値はten_gig_eth_pcs_pma_blockの値を使用しています。
Vivado2021.2では.「(プロジェクト名).gen\sources_1\ip\ten_gig_eth_pcs_pma\synth」にできるようです。
「out of context per IP」では修正してもsynthesisが実行されないため、IP作成時に「Global」を選択して、
IPを作成した後にten_gig_eth_pcs_pma_block.vを修正してからRun Synthesisを実行して下さい。
追加の情報ありがとうございます。
おかげさまで10Gで動作するようになりました。
ありがとうございました。