|
- module hc194( //具有复位和预置功能4位双向移位寄存器 VCC:Pin16 GND:Pin8
- input [3:0] D, //[4位宽] 预置值输入 Pin:6,5,4,3
- input SR, //左移移入的最低位 Pin2
- input SL, //右移移入的最高位 Pin7
- input CLK, //时钟 上升沿触发 Pin11
- input S0, //功能控制位S0 Pin9
- input S1, //功能控制位S1 Pin10
- input MR, //异步低电平(下降沿)清零复位 Pin1
- output reg [3:0] Q //[4位宽] 移位输出 Pin:12,13,14,15
- );
- always @(posedge CLK or negedge MR) begin
- if(!MR) begin
- Q <= 4'd0;
- end else begin
- case({S1,S0})
- 2'b00:Q <= Q; //无动作
- 2'b01:Q <= {Q[2:0],SR}; //左移
- 2'b10:Q <= {SL,Q[3:1]}; //右移
- 2'b11:Q <= D; //装入预置值
- endcase
- end
- end
- endmodule
- module main(
- input [3:0] D,
- input SR,
- input SL,
- input CLK,
- input S0,
- input S1,
- input MR,
- output [3:0] Q
- );
- hc194 U1(
- .D(D),
- .SL(SL),
- .SR(SR),
- .CLK(CLK),
- .S0(S0),
- .S1(S1),
- .MR(MR),
- .Q(Q)
- );
- endmodule
复制代码
|
|