LoginSignup
7
6

More than 3 years have passed since last update.

VivadoでRTLモジュールを使う場合のリセットの極性

Last updated at Posted at 2019-12-27

RTLで書いた小規模な回路はIPにするのではなくRTLモジュールとして配置するほうが便利でしょう。

モジュールは、IPとは異なり、インタフェースの仕様をGUIで設定できないので、想定しているのとは異なるブロックデザインのシンボルが作られる場合があります。

例えば、下の図のusb_resetというポートは正論理の信号なのですが丸が付いてしまっています。
image.png

単に表示上の問題だけではなく、Vivadoはどこかでリセットの論理が逆だとWarningを出してくるかもしれません。

設計したとおりのリセット極性をVivadoに認識させるためには、モジュールのVHDLのarchtecture ~ beginの間にattributeを書くとうまくいきます。

architecture Behavioral of misc is
    ・・・(中略)・・・
    ATTRIBUTE X_INTERFACE_INFO : STRING;
    ATTRIBUTE X_INTERFACE_PARAMETER : STRING;
    ATTRIBUTE X_INTERFACE_PARAMETER OF usb_reset: SIGNAL IS "XIL_INTERFACENAME usb_reset, POLARITY ACTIVE_HIGH, INSERT_VIP 0";
    ATTRIBUTE X_INTERFACE_INFO OF usb_reset: SIGNAL IS "xilinx.com:signal:reset:1.0 usb_reset RST";begin

このようにすると、usb_resetという信号が正論理として認識され、丸が消えました。
image.png

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6