Verilog描述时序逻辑电路

一、分类:米利型和穆尔型时序电路:

     米利型:O = h(I,S);  穆尔型: O = h(S)

二、时序逻辑电路功能的表达:激励方程式,转换方程组,输出方程组。

三、四位双向移位寄存器
Verilog描述时序逻辑电路_第1张图片
1.jpg
module shift74x194_beh(
  input S1,S0,
  input CP,CR,  
  input Dsl,Dsr,//串行数据输入
  input [3:0] D,
  output reg [3:0] Q
);
always @(posedge CP,negedge CR)
if(~CR)  Q <= 4'b0000;
else 
  case({S1,S0})
  2'b00: Q <= Q;
  2'b01: Q <= { Q[2:0], Dsr}; //右移
  2'b10: Q <= {Dsl,Q[3:1]}; //左移
  2'b11: Q <= D;  //并行置数
  endcase
endmodule
Verilog描述时序逻辑电路_第2张图片
3.jpg
module counter74x161_beh(
  input CEP,CTP,PE,CP,CR,
  input [3:0]D,
  output TC,
  output reg [3:0]Q
);
wire CE;
assign CE = CEP & CET;
assign TC = CET & PE & (Q == 4'b1111);
always @(posedge CP,negedge CR)
  if(~CR) Q <= 4'b0000;
  else if(~PE) Q <= D;
  else if(CE) Q <= Q+1'b1;
  else Q <= Q;
endmodule
//通用的可逆计数器
module updowncount_beh
#(parameter n = 4
)
(
  input Load,Up_down,En,CP, 
  input [n-1:0]D,
  output reg[n-1:0] Q
);
integer direction;
always @(posedge CP)
begin 
  if(Up_down)
    direction <= 1;
  else 
    direction <= -1;
  if(Load)
    Q <= D;   //同步置数
  else if(En)
    Q <= Q + direction;
  else 
    Q <= Q;
 end
endmodule

你可能感兴趣的:(Verilog描述时序逻辑电路)