2017-02-18 6 views
0

私はいくつかのVHDLコードを理解しようとしていると私は理解した上で、この部分こだわっている:私にとってvhdlのパイプラインとrising_edgeの違いは?

... 
accumulated_x <= input_x; 
... 
    if accumulated_x = '0' and input_x = '1' then 

を、それは同じです:私はこのようにそれを交換する際に

if rising_edge(input_x) then 

しかし、 、それは動作しませんし、それは同じではないことを意味する、なぜ?

+1

あなたはより多くのコンテキストを提供する必要があります。 '...'の後ろに隠して何おそらく関連しています。 – mkrieger1

答えて

0

rising_edgeは、1つの極限的に短い瞬間(正式には、デルタサイクル)に対して真です。あなたの二行

accumulated_x <= input_x; 
if accumulated_x = '0' and input_x = '1' then 

は、タイトルに「パイプライン」の使用によって暗示として、このif条件は全体の時計のためにtrueになります(、クロックドプロセス内であることを野生の推測を取る

サイクル。違いだ

。何という違いがデザインするための手段とすることは、我々が持っている情報を与えられたと言うことは不可能である。

0

rising_edgeは合成ツールに特定の意味を持ちます。これは、この信号が設計上のクロックであることを示すために使用されます。

herehere(私は既にドメインクロックを持っており、シンセサイザーでエラーが発生していると仮定しているので、2番目のリンクを追加しました)いくつかの良い説明があります。

関連する問題