ISEのログを見るとステートマシンが推論された様子がありません。そのあたりが原因かもしれないと思い、ステートマシンの部分をvariableで書き直したりして、ステートマシンを推論したというメッセージを確認したら、何とかちゃんとした状態遷移をするようになりました。
[WRITE]
#003367: AD fa000000, CBE 8(mw ), FRAME# H, DEVSEL# L, IRDY# L, TRDY# L, STOP# L, stat 0, app 0
#003368: AD 87654321, CBE f(---), FRAME# L, DEVSEL# L, IRDY# H, TRDY# L, STOP# L, stat 0, app 0
#003369: AD 87654321, CBE f(---), FRAME# L, DEVSEL# H, IRDY# H, TRDY# L, STOP# L, stat 1, app 0
#00336a: AD 87654321, CBE f(---), FRAME# L, DEVSEL# H, IRDY# H, TRDY# L, STOP# L, stat 3, app 0
#00336b: AD 87654321, CBE f(---), FRAME# L, DEVSEL# H, IRDY# H, TRDY# L, STOP# L, stat 4, app 0
#00336c: AD 87654321, CBE f(---), FRAME# L, DEVSEL# H, IRDY# H, TRDY# L, STOP# L, stat 4, app 3
#00336d: AD 87654321, CBE f(---), FRAME# L, DEVSEL# H, IRDY# H, TRDY# H, STOP# H, stat 4, app 5
#00336e: AD 87654321, CBE f(---), FRAME# L, DEVSEL# L, IRDY# L, TRDY# L, STOP# L, stat 5, app 0
#00336f: AD 87654321, CBE f(---), FRAME# L, DEVSEL# L, IRDY# L, TRDY# L, STOP# L, stat 6, app 0
[READ]
#0067e7: AD fa000000, CBE 9(mr ), FRAME# H, DEVSEL# L, IRDY# L, TRDY# L, STOP# L, stat 0, app 0
#0067e8: AD fa000000, CBE f(---), FRAME# L, DEVSEL# L, IRDY# H, TRDY# L, STOP# L, stat 0, app 0
#0067e9: AD fa000000, CBE f(---), FRAME# L, DEVSEL# H, IRDY# H, TRDY# L, STOP# L, stat 1, app 0
#0067ea: AD fa000000, CBE f(---), FRAME# L, DEVSEL# H, IRDY# H, TRDY# L, STOP# L, stat 3, app 0
#0067eb: AD fa000000, CBE f(---), FRAME# L, DEVSEL# H, IRDY# H, TRDY# L, STOP# L, stat 4, app 0
#0067ec: AD deadbeef, CBE f(---), FRAME# L, DEVSEL# H, IRDY# H, TRDY# L, STOP# L, stat 4, app 3
#0067ed: AD deadbeef, CBE f(---), FRAME# L, DEVSEL# H, IRDY# H, TRDY# H, STOP# H, stat 4, app 5
#0067ee: AD deadbeef, CBE f(---), FRAME# L, DEVSEL# L, IRDY# L, TRDY# L, STOP# L, stat 5, app 0
#0067ef: AD deadbeef, CBE f(---), FRAME# L, DEVSEL# L, IRDY# L, TRDY# L, STOP# L, stat 6, app 0
VHDLにしても、verilogにしても、その文法や意味論そのものは生成される回路の正当性を保障してくれなくて、結局、回路要素マクロでしかないので仕方ありません。
0 件のコメント:
コメントを投稿