the picture indicates what I want the output signal is: the high signal double and the low signal keep same.En Verilog, comment doubler le signal élevé et maintenir le signal faible même
J'ai écrit le code comme:
integer x=0, count_valid=1, count_down=0;
reg valid_1, valid_reg;
[email protected](posedge clk)
begin
if(tag==1) begin
if(valid) begin
count_valid <= count_valid +1;
x<=x+1;
valid_reg <= 1;
end
else begin
x<=0;
count_down <= count_down+1;
if(count_valid>0) begin
valid_reg <= 1;
count_valid <= count_valid -1;
end
else if(count_down>0) begin
valid_reg <= 0;
count_down <= count_down-1;
end
end
end
else begin
valid_reg <= valid;
if (valid) x<=x+1;
else x<=0;
end
valid_1 <= valid_reg;
end
valid
est le signal d'origine dans l'image et valid_reg
est le signal modifié . le count_valid
est utilisé pour compter le nombre de cycles pour le haut et l'utiliser pour le sous-un pour obtenir le doublage. alors count_down
est utilisé pour compter les cycles de faible signal. mais je me suis rendu compte quand haut valide le valid_reg
sera élevé. Est-ce que quelqu'un peut me donner une idée de comment faire fonctionner le même signal bas dans les mêmes cycles dans le signal de sortie?
Toute idée est également géniale.
Votre horloge des horloges manque l'horloge source, dont vous avez utilisé les divisions d'horloge. Cela doit être dans le diagramme. – Morgan