2017-03-08 4 views
-2

クロックロジックで3つの信号を生成したい。3つの信号を持つカウンタ

行っていた何
8s 
7s ----- create working signal 
6s 
5s 
4s 
3s 
2s 
1s ----- create timeout signal 
0s ----- create finish signal 

always @(posedge CLK_1K or posedge signal_count) begin 
    slot_count = 0; 
    data_finish = 0; 
    timeout = 0; 
    working = 0; 
    if (signal_count) begin 
     slot_count <= 1; 
     counter <= 8; 
    end else if (counter > 0) begin 
     counter = counter - 1; 
     if (counter == 7) begin 
      working = 1; 
     end else if (counter == 1) begin 
      timeout = 1; 
     end else if(counter == 0) begin 
      data_finish = 1; 
     end 
    end 
end 

:シミュレータで

  • テストは正常です。
  • デバイスにダウンロード機能しない...

私は、次の何をすべきでしょうか?ありがとうございました....

+1

もっと具体的になりますか?あなたのコードはシミュレーションでは動作しますが、デバイスでは動作しませんか?または、合成エラーが表示されますか? –

答えて

1

最初にコーディングのフィードバックがあります。ブロッキング割り当てとノンブロッキング割り当てを混在させないでください。あなたは完全にそれをすることができますが、物事は混乱することがあります。あなたの場合、counterはノンブロッキング(< =)として割り当てられ、ブロック(=)として割り当てられます。私はあなたがブロックするものとしてすべてを取り除くことができると推測しています。

私は非常に簡単な質問を頂くでしょう。クロック名は1Kを示し、1KHzになります。あなたは彼らが働いていないことを知るためにアウトプットをどのように測定していますか? 1Kでは、ライトが点滅するのを見られないかもしれません...あなたがOスコープまたはLAを持っていて、それが動作していないことが証明されたと仮定して、次に行うことをやります。

counterはどれくらいですか?それは少なくとも4ビット幅ですか?良くなります。

ボード上で次の項目を確認してください。 oスコープがある場合は、入力クロックが実際に動作していることを確認してください。次に、合成PIN割り当てファイルを確認します。デバイスの右のピンにクロックを割り当てていることを確認してください。

次に、signal_countは効果的にデザインをリセットします。 reset(signal_count)も右のピンに割り当てられていることを確認し、ボタンを押したときなどには実際に動かす必要があります。

次に、実際にデバイスを正しくプログラミングしていることを確認します。 doneピンはありますか?トラブルシューティングのステップ、あなたは仕事をするelsesデザインを持っていますか?自分のボードではなくボード上で動作する場合は、ハードウェアが疑わしいと指摘しているか、または不足しているジャンパーや電源を指しています。

最後に、新しいプログラムを作成します。以下に示すように、非常にシンプルにしてください。
そのオシロスコープを取り出して、動作している信号が期待どおりに振動することを示します。 workingの初期状態は定義されていないため、実際のボードでは半分の周波数で発振するはずですので、これは書き込まれたとおりにはシミュレートされません。もしそうなら、あなたは時計があることを知っています。

always @ (posedge CLK_1K) 
begin 
    working <= ~working; 
end 

ITは、発振し

assign working = 1'b1 

にプログラムを変更したときに、デバイスのロード信号がハイになっていることを確認していない場合。そうでない場合は、問題は、あなたのソースではありませんが、何かもっと悪いのピンアサイン、悪いピン、悪い供給などのような...

は、その後、次の

にこの意志を変えますあなたのシグナルカウントが動作していることを証明する振動を止めてください。

このテストの結果に応じて、そこから検討します。

関連する問題