現在、VHDLでプロジェクトを行っています。このプロジェクトでは、キーを押した場合に100msまたは1000msで更新する必要があるカウンタがあります。時分割(期間)vhdlでの選択
例:
If Key3=0 then
c=c+1 (100ms)
elsif key3=1 then
c=c+1 (1000ms)
私はVHDLでそれを行う方法を知っているように思います。
私はプロセス(クロック、Key3)を使用する必要がありますが、私は期間に基づいてカウンタを増やす方法がわかりません。
ありがとうございます!
最近、「時間」タイプに基づいた定数と範囲の生成に関して、Vivadoの問題が発生しました。上で説明したように、これは完全に離れて最適化されます。ザイリンクスでは、「time」タイプのオブジェクトはサポートされていないことを認識しています。 AR57964(http://www.xilinx.com/support/answers/57964.html)を参照してください。 – PlayDough
@Playただし、あなたがリンクしたARは、Time ISがVivadoでサポートされているが、貧弱です。したがって、この手法は、Vivadoユーザの場合はザイリンクスによって推奨されていません(他の人が64ビットを使用する場合は32ビット算術を使用し、他の場合はSynplicityに他の問題があります)。しかし、最も高いレベルでコードを最も明確に表現することは、通常の習慣でなければなりません。ツールのサポートが不十分な場所から逸脱している。 –
十分です。時間はサポートされていません。しかし、あなたが指摘しているように、私たちは使用するツールによって制限されています。代わりに、 '定数Clock_Period:real:= 100.0e-9;'のようなものです。実際の値はうまくサポートされています。 – PlayDough