多时钟描述.txt
来自「verilog语言描述多时钟方法!!!强力推荐。」· 文本 代码 · 共 61 行
TXT
61 行
问题:
端口:
input clock_a, data_a;
input clock_b, data_b;
output q_common;
功能:
clock_a上升沿时,q_common <= data_a;
clock_b上升沿时,q_common <= data_b;
假设clock_a和clock_b不会同时出现。
法一,
module multiClock(d1, d2, clk1, clk2, q);
input d1, d2;
input clk1, clk2;
output q;
reg q1, q2;
reg whichOne;
always @ (posedge clk1) begin
q1 <= d1;
end
always @ (posedge clk2) begin
q2 <= d2;
end
always @ (clk1 or clk2) begin
case(1) // synthesis parallel_case
clk1 : whichOne = 0;
clk2 : whichOne = 1;
endcase // latch inferred
end
assign q = whichOne ? q2 : q1;
endmodule
法二,
input data_a,data_b,clk_a,clk_b;
output q_common;
reg q_common;
always @(posedge clk_a or posedge clk_b)
begin
if(clk_a) q_common=data_a;
else q_common=dtat_b;
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?