Verilog-Code für Frequenzteiler
On Februar 17, 2021 by adminKönnen Sie mir bitte helfen, wie Sie einen Verilog-Code für Frequenzteilerschaltungen erstellen, der 50 Hz Taktsignal aus 50 MHz Signal unter Verwendung von 16-Bit Synchronzähler. Ich habe versucht, es zu tun, aber es hat nicht funktioniert!
module divier_16 (clk_in, clk_out); input clk_in; wire w; wire [0:15]temp; output clk_out; count_16 c1 (clk_in, w); count_16 c2 (w, temp); assign clk_out= temp[6];
Kommentare
- Verwenden 16 Bit von was?
- Und was haben Sie versucht? Könnten Sie Ihren Code posten?
- 16-Bit-Synchronzähler
- Können Sie zwei davon verwenden?
- Gut. Dann zuerst durch 1000 teilen, dann durch weitere 1000 teilen.
Antwort
Leider reichen 16 Bit nicht aus, um ein 50-MHz-Signal in ein 50-Hz-Signal umzuwandeln. Dies liegt daran, dass Sie den Takt durch 1 Million teilen müssen. $$ 2 ^ {16} = 65536 $$ Daher reicht es bei weitem nicht aus. A. Ein Zähler mit mindestens 20 Bits würde ausreichen, weil: $$ 2 ^ {20} = 1048576 $$
Um das Signal umzuwandeln, zählen Sie einfach auf 1 Million Taktzyklen und ändern dann den Status des Ausgangssignals
Beispiel:
always @(posedge clk_in) begin count_20 <= count_20 + 1; if(count_20 == 1000000) begin count<=0; clk_out <= !clk_out; end end
Bearbeiten: Es stellt sich heraus, dass ^^ zu einem 25-Hz-Signal führen würde, also müssen Sie nur zählen bis 500000, was 19 Bit benötigt. Die Frage ist dann, wo Das 20. Bit kommt von dem Sehen, dass Sie durch 1 Million teilen müssen. Nun, das clk_out-Bit dient als das 20. Bit.
Kommentare
- Eine andere Lösung besteht darin, mehrere dieser 16-Bit-Zähler zu verwenden. Sie würden mindestens 16 davon benötigen (16 * 65536 = 2 ² ⁰ = 1048576)
- Ich habe möglicherweise einen Fehler gemacht, ich denke, meine Lösung würde dazu führen in 25Hz?
- Sie würden nur zwei benötigen, das würde Ihnen 32 Bit geben
- @Makoto Ja, Sie müssen bis 500_000 zählen, und zweitens – höchstwahrscheinlich wird es eine Warnung geben Ich denke, Sie haben
clk_out <= !clk_out
gemeint. - yep wird es ändern
Schreibe einen Kommentar