簡體   English   中英

如何在Verilog中更改時鍾?

[英]How to change clock in Verilog?

module task_A(input [15:0]sw, input clk,output reg [3:0] an= 4'b1111,output reg[7:0] seg);
reg [2:0] num = 3'd0;
wire Z,Z1,Z2;
clk_1_47hz(clk,Z1);
clk_762hz(clk,Z2);
reg count=0;
assign Z= (count<5)?(Z1):(Z2);
always @ (posedge Z)
begin
num <= (sw[15:0]==16'b1111111111111111)?((num==5 | num==0)?(3'd1):(num+1)):(0);
count <=count+1;
case(num)
    3'd0 : begin seg <= 8'b11111111 ; an <= 4'b1111; end
    3'd1 : begin seg <= 8'b10000111 ; an <= 4'b0111; end //t
    3'd2 : begin seg <= 8'b10001000 ; an <= 4'b1011; end //a
    3'd3 : begin seg <= 8'b11001111 ; an <= 4'b1101; end //l
    3'd4 : begin seg <= 8'b11111001 ; an <= 4'b1101; end //l
    3'd5 : begin seg <= 8'b10010001 ; an <= 4'b1110; end //y
    
    endcase
    end
endmodule

我希望在 7 段顯示器顯示一次“計數”后更改時鍾。 所以我用count來檢查。 但時鍾根本沒有改變。 我可以知道如何糾正它嗎?

count被聲明為 1 位信號,它總是小於 5。

reg count=0;

為了實現您的目標,請將其聲明為 3 位或更多位信號。
並且您可能還需要為count設置一個限制,並停止它,如果您想在 'tally' 顯示一次后永遠切換到Z2時鍾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM