【HDLBits刷题笔记】Exams/ece241 2013 q7

题目

【HDLBits刷题笔记】Exams/ece241 2013 q7_第1张图片
正确代码

module top_module (
    input 				clk,
    input 				j,
    input 				k,
    output reg			Q
						); 
	always @(posedge clk) begin
		Q <= (Q&(~j)&(~k)) | ((~Q)&j&k) | (j&(~k));	//输出方程
	end
endmodule

错误代码

module top_module (
    input 				clk,
    input 				j,
    input 				k,
    output reg			Q
						); 
	wire				D;
	reg					q;
	assign		D = Q;			
	always @(posedge clk) begin
		q <= D;			
		Q <= (q&(~j)&(~k)) | ((~q)&j&k) | (j&(~k));	//输出方程
	end
endmodule

与前面不同的是:这里的D触发器写的很明显,最后反而弄巧成拙。原因是q存储的是上上次的Q,正确的应该是q存储上次的Q

你可能感兴趣的:(fpga开发)