前几天,学长去面试,回来后讲了一道面试过程中的题目,在这里拿出来跟大家分享一下:
题目:检测时钟信号,当时钟上升沿到来的时候在输出信号上用高电平表示。
初看这个题目感觉很一般,我第一感觉就是用计数器计数就可以了,但是细细想想,计数功能只能是记录时钟的个数,并不能显示出时钟的上升沿。
经过学长的提示,我终于找到了解决的方法,下为用verilog编写的代码:
module posedge_clk(rst,clk,d,out);
input rst,clk,d;
output out;
reg q;
always @ (posedge clk or posedge rst)
begin
if(rst)
q<=1;
else
q<=d;
end
assign out=(!q)&d;
endmodule
经过我的前仿,综合,布线,后仿,都可以实现。
用户146077 2009-9-2 21:54