GHDLシミュレータはエラーなしでvhdl属性をサポートしていませんか?

2
pico 2019-06-04 12:52.

いくつかのvivadoRTLを作成し、エンティティのポートにいくつかのvhdl属性を追加して、次のようにザイリンクスVivadoツールへのインターフェイスを定義しました。

library ieee;
use     ieee.std_logic_1164.all;

entity vivado_rtl_island is

port(
    -- Clocks
    i_m50_clk                    :in   std_logic;
    i_m50_rst                    :in   std_logic;                                           

    -- APB Command Inteface
    s_paddr                  :in  std_logic_vector(31 downto 0);   
    s_psel                   :in  std_logic;                       
    s_penable                :in  std_logic;                       
    s_pwrite                 :in  std_logic;                       
    s_pwdata                 :in  std_logic_vector(31 downto 0);   
    s_pready                 :out std_logic;                       
    s_prdata                 :out std_logic_vector(31 downto 0);   
    s_pread                  :out std_logic;
    s_pslverr                :out std_logic
);

end entity;

architecture rtl of vivado_rtl_island is
  -- Define APB Interface for "Vivado IP Integrator"
  ATTRIBUTE X_INTERFACE_INFO:              STRING;
  ATTRIBUTE X_INTERFACE_INFO of s_paddr:   SIGNAL is "xilinx.com:interface:apb:1.0 APB_S PADDR";
  ATTRIBUTE X_INTERFACE_INFO of s_psel:    SIGNAL is "xilinx.com:interface:apb:1.0 APB_S PSEL";
  ATTRIBUTE X_INTERFACE_INFO of s_penable: SIGNAL is "xilinx.com:interface:apb:1.0 APB_S PENABLE";
  ATTRIBUTE X_INTERFACE_INFO of s_pwrite:  SIGNAL is "xilinx.com:interface:apb:1.0 APB_S PWRITE";
  ATTRIBUTE X_INTERFACE_INFO of s_pwdata:  SIGNAL is "xilinx.com:interface:apb:1.0 APB_S PWDATA";
  ATTRIBUTE X_INTERFACE_INFO of s_pready:  SIGNAL is "xilinx.com:interface:apb:1.0 APB_S PREADY";
  ATTRIBUTE X_INTERFACE_INFO of s_prdata:  SIGNAL is "xilinx.com:interface:apb:1.0 APB_S PRDATA";
  ATTRIBUTE X_INTERFACE_INFO of s_pslverr: SIGNAL is "xilinx.com:interface:apb:1.0 APB_S PSLVERR";
begin

 end architecture;

そこで、GHDLを使用して上記のrtlを次のようにコンパイルしようとします。

$ ghdl -a --std=08 --ieee=synopsys --work=work  vivado_rtl_island.vhd

GHDLは次のエラーを生成します。

vivado_rtl_island.vhd:28:33: no "s_paddr" for attribute specification
vivado_rtl_island.vhd:29:33: no "s_psel" for attribute specification
vivado_rtl_island.vhd:30:33: no "s_penable" for attribute specification
vivado_rtl_island.vhd:31:33: no "s_pwrite" for attribute specification
vivado_rtl_island.vhd:32:33: no "s_pwdata" for attribute specification
vivado_rtl_island.vhd:33:33: no "s_pready" for attribute specification
vivado_rtl_island.vhd:34:33: no "s_prdata" for attribute specification
vivado_rtl_island.vhd:35:33: no "s_pslverr" for attribute specification

ただし、これをmodelsimでコンパイルしても、エラーは発生しません。

これらの属性を追加できるようにGHDLでこの問題を回避する方法を知っている人はいますか?シミュレーターはそれらを無視し、生成してエラーを発生させませんか?

3 answers

5
user1155120 2019-06-05 09:25.

IEEE Std 1076-2008 7.2属性仕様、パラグラフ9を参照してください。

エンティティ宣言、アーキテクチャ、構成、またはパッケージの属性の属性仕様は、その宣言の宣言部分内にすぐに表示されるものとします。同様に、デザインユニット、サブプログラム、ブロックステートメント、またはパッケージのインターフェイスオブジェクトの属性の属性指定は、そのデザインユニット、サブプログラム、ブロックステートメント、またはパッケージの宣言部分内にすぐに表示されます。同様に、デザインユニット、サブプログラム、ブロックステートメント、またはパッケージのインターフェイスオブジェクトの属性の属性指定は、そのデザインユニット、サブプログラム、ブロックステートメント、またはパッケージの宣言部分内にすぐに表示されます。..。

設計単位は、エンティティ宣言(3.2エンティティ宣言)、プライマリユニット(13.1設計単位)です。このセマンティック制限は、すべてのIEEE Std 1076リビジョン(5.2属性仕様にある-2008より前の-1987から-2008)で適用されています。Modelsimが仕様を「コンパイル」するのは間違っています。

ザイリンクスのVivado合成は、歴史的にModelsimの動作を利用しています。ここでおかしいのは、Vivadoが上記の7.2の最初の引用文のセマンティック要件に一貫して準拠していないことです。これは、以前のリビジョンでも見られますが、2番目のリビジョンでは見られません。エンティティ宣言部分でエンティティの属性を宣言できますが、Vivadoでは少なくとも歴史的に必要なアーキテクチャ宣言部分のポートで属性を指定できます。

ghdlを使用してもすべてが失われるわけではありません。分析中に渡すことができるコマンドライン引数があり、サードパーティのツールが依存するModelsimの動作に一致するようにさまざまなルールを緩和します。

ghdl -a --std=08 --ieee=synopsys -frelaxed-rules --work=work vivado_rtl_island.vhdl
vivado_rtl_island.vhdl:28:33:warning: attribute for port "s_paddr" must be specified in the entity [-Wspecs]
vivado_rtl_island.vhdl:29:33:warning: attribute for port "s_psel" must be specified in the entity [-Wspecs]
vivado_rtl_island.vhdl:30:33:warning: attribute for port "s_penable" must be specified in the entity [-Wspecs]
vivado_rtl_island.vhdl:31:33:warning: attribute for port "s_pwrite" must be specified in the entity [-Wspecs]
vivado_rtl_island.vhdl:32:33:warning: attribute for port "s_pwdata" must be specified in the entity [-Wspecs]
vivado_rtl_island.vhdl:33:33:warning: attribute for port "s_pready" must be specified in the entity [-Wspecs]
vivado_rtl_island.vhdl:34:33:warning: attribute for port "s_prdata" must be specified in the entity [-Wspecs]
vivado_rtl_island.vhdl:35:33:warning: attribute for port "s_pslverr" must be specified in the entity [-Wspecs]

コマンドラインフラグ-frelaxed-rulesを追加すると、エラーが警告に変換されます。

デフォルトのghdlの動作は、標準リビジョン-2008で変更されています。--std=08デフォルトの標準準拠を指定しない場合は、 `--std = 93(-1993)--std=93cを含み-frelaxed-rules、それ以外の場合は互換性があることに注意してください。緩和されたルールが含まれている-2008リビジョンはありません。

セマンティック制限の背後にある理由は、主要な(当時-1987年の)ベンダーが、ポート宣言に直接アクセスせずにポートにユーザー属性を指定することを実装できないことに起因します。そのベンダーはVHDL製品を提供しなくなっている可能性がありますが、制限は残っています。

Modelsimのさまざまなインスタンスが、市場シェアの影響によって標準を効果的に操作しようとしていることがわかります(コマンドライン-pendanticerrors引数によって、多くの警告がエラーに変更されます)。

ghdlの開発は、標準への厳密な準拠が(--std=93cデフォルトにもかかわらず)標準であり、コマンドライン引数がエラーの代わりに警告を有効にすることを除いて、彼らの先導に従います。

この理由は、VHDLを実装している人は、最大の市場シェアを持つベンダーをリバースエンジニアリングするのではなく、標準からそうする傾向があるためです。

-frelaxed-rulesの説明は、ghdlのドキュメントでは完全ではない場合があります。言及は、VHDL標準のセクションおよび他のセクションにあります。

ザイリンクスはこの問題を認識しています。Modelsimは間違いなく、それらが標準とどこが異なるかを知っており、現在、VHDL標準の改訂プロセスにベンダーが参加していません。

ghdlソースツリーを調べるghdl-0.35は2017年12月14日にリリースされ、Issue 525は2018年2月7日に修正され(src / vhdl / sem_specs.adbを参照)、アーキテクチャ宣言部分にポート属性を追加し-frelaxed-rulesて提供します。--std=08(ghdl-0.36開発サイクル中)に関係なく現在の機能。

参照してください問題838 OPはこの答えが有効である旨のセカンドオピニオンを求めてここgithubの上、異なっGHDLよりポート上のザイリンクスVivadoとModelSimのサポート属性を。

1
mfro 2019-06-04 21:56.

どうやら、VHDL2008を使用しています。

VHDL 2008では、エンティティポート属性をエンティティ定義に含める必要があります。つまり、end entityステートメントの前に属性を移動する必要があります。

0
pico 2019-06-13 00:27.

このようにGHDLでコンパイルします。

ghdl.exe -a -frelaxed-rules --std=08 --ieee=synopsys --work=work ./vivado_rtl_island.vhd

ポート属性をArchitectureブロックに移動します...そうすると、ザイリンクスVivadoとGHDLの両方で一貫して機能します。

MORE COOL STUFF

Reba McEntire は、彼女が息子の Shelby Blackstock と共有する「楽しい」クリスマスの伝統を明らかにしました:「私たちはたくさん笑います」

Reba McEntire は、彼女が息子の Shelby Blackstock と共有する「楽しい」クリスマスの伝統を明らかにしました:「私たちはたくさん笑います」

Reba McEntire が息子の Shelby Blackstock と共有しているクリスマスの伝統について学びましょう。

メーガン・マークルは、自然な髪のスタイリングをめぐってマライア・キャリーと結ばれました

メーガン・マークルは、自然な髪のスタイリングをめぐってマライア・キャリーと結ばれました

メーガン・マークルとマライア・キャリーが自然な髪の上でどのように結合したかについて、メーガンの「アーキタイプ」ポッドキャストのエピソードで学びましょう.

ハリー王子は家族との関係を修復できるという「希望を持っている」:「彼は父親と兄弟を愛している」

ハリー王子は家族との関係を修復できるという「希望を持っている」:「彼は父親と兄弟を愛している」

ハリー王子が家族、特にチャールズ王とウィリアム王子との関係について望んでいると主張したある情報源を発見してください。

ワイノナ・ジャッドは、パニックに陥った休暇の瞬間に、彼女がジャッド家の家長であることを認識しました

ワイノナ・ジャッドは、パニックに陥った休暇の瞬間に、彼女がジャッド家の家長であることを認識しました

ワイノナ・ジャッドが、母親のナオミ・ジャッドが亡くなってから初めての感謝祭のお祝いを主催しているときに、彼女が今では家長であることをどのように認識したかを学びましょう.

セントヘレナのジェイコブのはしごを登るのは、気弱な人向けではありません

セントヘレナのジェイコブのはしごを登るのは、気弱な人向けではありません

セント ヘレナ島のジェイコブズ ラダーは 699 段の真っ直ぐ上る階段で、頂上に到達すると証明書が発行されるほどの難易度です。

The Secrets of Airline Travel Quiz

The Secrets of Airline Travel Quiz

Air travel is far more than getting from point A to point B safely. How much do you know about the million little details that go into flying on airplanes?

Where in the World Are You? Take our GeoGuesser Quiz

Where in the World Are You? Take our GeoGuesser Quiz

The world is a huge place, yet some GeoGuessr players know locations in mere seconds. Are you one of GeoGuessr's gifted elite? Take our quiz to find out!

バイオニック読書はあなたをより速く読むことができますか?

バイオニック読書はあなたをより速く読むことができますか?

BionicReadingアプリの人気が爆発的に高まっています。しかし、それは本当にあなたを速読術にすることができますか?

黒人女性が5年間受けた同じ郡で不正選挙の保護観察に宣告された白人裁判官

黒人女性が5年間受けた同じ郡で不正選挙の保護観察に宣告された白人裁判官

ラス・ケーシー現在、刑務所に座っている黒人女性が、彼女が犯したのと同じ犯罪で有罪となったテキサス州の裁判官について読んでいます。彼女はおそらく、裁判官が彼女に懲役5年を宣告したのと同じ郡で5年の保護観察を宣告されたことに気づいたでしょう。

Meh Car月曜日:トヨタアバロンの静かな虚空を見よ

Meh Car月曜日:トヨタアバロンの静かな虚空を見よ

通常、私が月曜日にMeh Carに選んだ車は、もともとmehになるように設計されていませんでした。Mehnessはちょうど彼らに起こったようなものです。

それにふたを置きます。実際、すべてに蓋をしてください。14ドルで12個のシリコンストレッチキッチン蓋を手に入れよう. [エクスクルーシブ]

それにふたを置きます。実際、すべてに蓋をしてください。14ドルで12個のシリコンストレッチキッチン蓋を手に入れよう. [エクスクルーシブ]

Tomorrow's Kitchen シリコンストレッチ蓋 12個パック | $14 | アマゾン | プロモーション コード 20OFFKINJALids は基本的にキッチンの靴下です。常に迷子になり、二度と閉じられない孤立したコンテナーが残ります。しかし、蓋が伸びて、残った容器、鍋、フライパン、さらには大きなスライスされた果物のすべてに適合するとしたらどうでしょうか? その非常に特殊な蓋を失うことを二度と心配する必要はありません。

あなたの最高のワシントン DC ハックを教えてください

あなたの最高のワシントン DC ハックを教えてください

このコラムでは、ロサンゼルスやラスベガスなど、いくつかの産業都市をハッキングしました。今こそ、軍産複合都市の時代です。

米国のフィギュア スケートは、チーム イベントでの最終決定の欠如に「苛立ち」、公正な裁定を求める

米国のフィギュア スケートは、チーム イベントでの最終決定の欠如に「苛立ち」、公正な裁定を求める

ロシアのフィギュアスケーター、カミラ・バリエバが関与したドーピング事件が整理されているため、チームは2022年北京冬季オリンピックで獲得したメダルを待っています。

Amazonの買い物客は、わずか10ドルのシルクの枕カバーのおかげで、「甘やかされた赤ちゃんのように」眠れると言っています

Amazonの買い物客は、わずか10ドルのシルクの枕カバーのおかげで、「甘やかされた赤ちゃんのように」眠れると言っています

何千人ものAmazonの買い物客がMulberry Silk Pillowcaseを推奨しており、現在販売中. シルクの枕カバーにはいくつかの色があり、髪を柔らかく肌を透明に保ちます。Amazonで最大46%オフになっている間にシルクの枕カバーを購入してください

パデュー大学の教授が覚醒剤を扱った疑いで逮捕され、女性に性的好意を抱かせる

パデュー大学の教授が覚醒剤を扱った疑いで逮捕され、女性に性的好意を抱かせる

ラファイエット警察署は、「不審な男性が女性に近づいた」という複数の苦情を受けて、12 月にパデュー大学の教授の捜査を開始しました。

コンセプト ドリフト: AI にとって世界の変化は速すぎる

コンセプト ドリフト: AI にとって世界の変化は速すぎる

私たちの周りの世界と同じように、言語は常に変化しています。以前の時代では、言語の変化は数年または数十年にわたって発生していましたが、現在では数日または数時間で変化する可能性があります。

SF攻撃で91歳のアジア人女性が殴られ、コンクリートに叩きつけられた

犯罪擁護派のオークランドが暴力犯罪者のロミオ・ロレンゾ・パーハムを釈放

SF攻撃で91歳のアジア人女性が殴られ、コンクリートに叩きつけられた

認知症を患っている 91 歳のアジア人女性が最近、47 番街のアウター サンセット地区でロメオ ロレンゾ パーハムに襲われました。伝えられるところによると、被害者はサンフランシスコの通りを歩いていたところ、容疑者に近づき、攻撃を受け、暴行を受けました。

Precios accesibles, nuestro aprendizaje desde la perspectiva iOS

Precios accesibles, nuestro aprendizaje desde la perspectiva iOS

Cómo mejoramos la accesibilidad de nuestro componente de precio, y cómo nos marcó el camino hacia nuevos saberes para nuestro sistema de diseño. Por Ana Calderon y Laura Sarmiento Leer esta historia en inglés.

ℝ

“And a river went out of Eden to water the garden, and from thence it was parted and became into four heads” Genesis 2:10. ? The heart is located in the middle of the thoracic cavity, pointing eastward.

Language