题目要求:大家都熟悉在时钟正边或负边触发的触发器。双沿触发触发器在时钟的两个边沿都触发,构建一个在功能上类似于双沿触发触发器的电路。
基本思想:always @(posedge clk or negedge clk)语句是不可编译的,但是题中之意又要同时捕获信号在时钟上升沿和下降沿的状态,故可以考虑分别取出时钟上升沿信号的值pos和时钟下降沿信号的值neg,后面再考虑如何操作来达到题中要求。
module top_module (
input clk,
input d,
output q
);
wire pos,neg;
always @(posedge clk ) begin
pos <= d ;
end
always @(negedge clk ) begin
neg <= d ;
end
assign q = (clk)? pos : neg ;
endmodule