-1

ストップウォッチを作るプロジェクトに取り組んでいます。そのためには、7 セグメント ディスプレイで別の数字を使用する必要があります。しかし、試してみると、すべての数字が同じように動作します。制約には次のコードを使用しました。

set_property PACKAGE_PIN W7 [get_ports {clk_out[6]}] 
set_property IOSTANDARD LVCMOS33 [get_ports {clk_out[6]}] 
set_property PACKAGE_PIN W6 [get_ports {clk_out[5]}]  
set_property IOSTANDARD LVCMOS33 [get_ports {clk_out[5]}] 
set_property PACKAGE_PIN U8 [get_ports {clk_out[4]}] 
set_property IOSTANDARD LVCMOS33 [get_ports {clk_out[4]}] 
set_property PACKAGE_PIN V8 [get_ports {clk_out[3]}]  
set_property IOSTANDARD LVCMOS33 [get_ports {clk_out[3]}] 
set_property PACKAGE_PIN U5 [get_ports {clk_out[2]}] 
set_property IOSTANDARD LVCMOS33 [get_ports {clk_out[2]}] 
set_property PACKAGE_PIN V5 [get_ports {clk_out[1]}] 
set_property IOSTANDARD LVCMOS33 [get_ports {clk_out[1]}]  
set_property PACKAGE_PIN U7 [get_ports {clk_out[0]}] 
set_property IOSTANDARD LVCMOS33 [get_ports {clk_out[0]}] 

別々の数字を使用するにはどうすればよいですか? 例を挙げて説明していただけると大変助かります。前もって感謝します。

4

2 に答える 2

0

まず、7sgment ディスプレイのデータシートに慣れることから始めます。あなたがする必要があるのは、各桁を個別に実行することです(たとえば、次のカウンターへのオーバーフローカレーを使用して各桁ごとに別のカウンターを実行します)、リスト60hz xディスプレイ数= xで振動するステートマシンを作成します。したがって、1 つは時間をカウントする時計で、もう 1 つはディスプレイ上の 1 桁あたり 60hz のリストで動作する 2 つの時計です。

次に、統計マシンには、各桁の状態 (正しいピンアウトをアクティブにする) と、到達不能状態がエラーによって入力された場合に最初の状態に戻る望ましい「その他」の状態が必要です。

これで始められるはずです。

よろしく、セバスチャン

PSここにあなたと同様の質問がありますが、タイマー用です: https://stackoverflow.com/questions/36033688/if-statement-with-two-unsigned-conditions-in-vhdl-not-working

于 2016-04-19T07:21:26.603 に答える
0

@Brian Drummond と @user1155120 が本当にあなたの質問に答えてくれました。表示は時分割です。このシーケンスを何度も何度も繰り返す必要があるため、一度に 1 桁しか動かしていないことを人間の目では認識できません。

  • U2 を有効にして、単位列の 7 セグメント出力を駆動します。
  • 次に、U4 を有効にして、10 の列の 7 セグメント出力を駆動します。
  • 次に、V4 を有効にして、100 の列の 7 セグメント出力を駆動します。
  • 次に、W4 を有効にして、1000 列の 7 セグメント出力を駆動します。

したがって、U2、U4、V4、W4、U2 などを駆動する VHDL コードと、7 セグメント出力を各桁に適切に駆動するその他の VHDL コードが必要になります。

于 2016-04-16T12:11:51.430 に答える