无锡网络公司网站建设,环保网站模版,wordpress国内外贸主题,wordpress文章摘要调用根据状态转移表实现时序电路
描述
某同步时序电路转换表如下#xff0c;请使用D触发器和必要的逻辑门实现此同步时序电路#xff0c;用Verilog语言描述。 电路的接口如下图所示。 输入描述#xff1a; input A , input clk , …根据状态转移表实现时序电路
描述
某同步时序电路转换表如下请使用D触发器和必要的逻辑门实现此同步时序电路用Verilog语言描述。 电路的接口如下图所示。 输入描述 input A , input clk , input rst_n
输出描述 output wire Y
解题思路
①首先根据题干中的状态转换表给出次态和输出的卡诺图如下所示 表达式为其中
输出方程
由于题干中所使用的触发器为D触发器根据D触发器的特征方程得到其状态方程
因此激励方程为;
代码
下面给出两种代码
①寄存器未单独例化
timescale 1ns/1nsmodule seq_circuit(input A ,input clk ,input rst_n,output wire Y
);reg Q0, Q1;
always (posedge clk or negedge rst_n)beginif(!rst_n)Q0 1b0;elseQ0 ~Q0 ;
end always (posedge clk or negedge rst_n)beginif(!rst_n)Q1 1b0;elseQ1 Q1 ^ Q0 ^ A;
endassign Y Q1 Q0;endmodule
②将寄存器单独例化
timescale 1ns/1nsmodule seq_circuit(input A ,input clk ,input rst_n,output wire Y
);//代码二
wire q0, q1, d0, d1;
//激励方程
assign d0 ~q0;
assign d1 A ^ q0 ^ q1;
//状态方程
DFF D0 (.d(d0), .clk(clk), .rst_n(rst_n), .q(q0));
DFF D1 (.d(d1), .clk(clk), .rst_n(rst_n), .q(q1));
//输出方程
assign Y q0 q1;endmodule//带复位端的D触发器
module DFF(input d, input clk, input rst_n,output reg q);always (posedge clk or negedge rst_n) beginif (!rst_n) q 1b0;else q d; end
endmodule