ACB-BF592を使わないで、Talkthroughができるようになった。
単純なTalkthroughなら入力と出力を接続することでいけると思うが、firフィルタではパラレル変換後のデータを使うので、今回はシリアル-パラレル、パラレル-シリアル変換をやってTalkthroughができた。
MicroBoardとUMB-SSM2603でTalkthrough
talkthrough回路図
最初は下のようなエラーが出て、なかなかデバッグまで進まなかった。
ネットで検索するとヒットするも、解決方法がわからなかったが、エラーメッセージの中に、こうしろと書いてあった。
デザインツールのバージョンをあげると、エラーにはならないのかも知れないが、ここまでエラーをはくのなら、ツールを修正しておいてほしいのだが。
ERROR:Place:1136 - This design contains a global buffer instance,
<nReset_IBUF_BUFG>, driving the net, <nReset_IBUF_BUFG>, that is driving the
following (first 30) non-clock load pins.
< PIN: u100/state_pb_rstpot.A3; >
....
< PIN: u100/data_rec_buff_13_dpot.A3; >
< PIN: u100/data_rec_buff_22_dpot.A3; >
This is not a recommended design practice in Spartan-6 due to limitations in
the global routing that may cause excessive delay, skew or unroutable
situations. It is recommended to only use a BUFG resource to drive clock
loads. If you wish to override this recommendation, you may use the
CLOCK_DEDICATED_ROUTE constraint (given below) in the .ucf file to demote
this message to a WARNING and allow your design to continue.
< PIN "nReset_IBUF_BUFG.O" CLOCK_DEDICATED_ROUTE = FALSE; >
ERROR:Pack:1654 - The timing-driven placement phase encountered an error.
上記エラーの場合は、ucfファイルに
PIN "nReset_IBUF_BUFG.O" CLOCK_DEDICATED_ROUTE = FALSE;を追加した。
その後、いろいろ修正しているうちにnReset_IBUF_BUFG.Oがあることが、エラーとなったので、削除した。
次のようなエラーも出たが、同様にucfファイルに
NET "BCLK" CLOCK_DEDICATED_ROUTE = FALSE;を追加することでOKとなった。
ERROR:Place:1108 - A clock IOB / BUFGMUX clock component pair have been found
that are not placed at an optimal clock IOB / BUFGMUX site pair. The clock
IOB component <BCLK> is placed at site <D17>. The corresponding BUFG
component <BCLK_BUFGP/BUFG> is placed at site <BUFGMUX_X2Y9>. There is only a
select set of IOBs that can use the fast path to the Clocker buffer, and they
are not being used. You may want to analyze why this problem exists and
correct it. If this sub optimal condition is acceptable for this design, you
may use the CLOCK_DEDICATED_ROUTE constraint in the .ucf file to demote this
message to a WARNING and allow your design to continue. However, the use of
this override is highly discouraged as it may lead to very poor timing
results. It is recommended that this error condition be corrected in the
design. A list of all the COMP.PINs used in this clock placement rule is
listed below. These examples can be used directly in the .ucf file to
override this clock rule.
< NET "BCLK" CLOCK_DEDICATED_ROUTE = FALSE; >
ERROR:Pack:1654 - The timing-driven placement phase encountered an error.
以下は現在のucfファイル内容。
最近気がついたが、このブログもテキストファイルがアップできるようになったようなので、他のファイルはもう少し整理してからアップすることにしよう。
いよいよ次はfirフィルタの作成に移るが、また時間がかかるだろうな。
#
# pin constraints
#
NET CLK_40M LOC = "V10"; # clock C10:100M V10:40M K15:66.7M
NET MUTE LOC = "H12";
NET CSB LOC = "G13";
NET SCLK LOC = "E16";
NET SDIN LOC = "K12" | PULLUP;
NET nReset LOC = "V4" | IOSTANDARD = LVCMOS33 | SLEW=FAST | CLOCK_DEDICATED_ROUTE = FALSE; # RESET SW5
#NET LED1 LOC = "P4"; # Running check
NET PBDAT LOC = "D18";
NET PBLRC LOC = "C18";
NET BCLK LOC = "D17" | CLOCK_DEDICATED_ROUTE = FALSE;
NET RECLRC LOC = "G14";
NET RECDAT LOC = "F16";