|
- module hc164( //74HC164 带清零8位并行输出串行输入移位寄存器 VCC:Pin14 GND:Pin7
- input A, //输入A Pin1
- input B, //输入B Pin2
- input CLK, //上升沿将 输入A,B 经过与门后移入Q Pin8
- input MR, //下降沿(低电平)清零Q Pin9
- output reg [7:0] Q //8位并行移位输出Q Pin:13,12,11,10,6,5,4,3
- );
- always @(posedge CLK or negedge MR) begin
- if(!MR) begin
- Q <= 8'd0;
- end else begin
- Q <= (Q << 8'd1) | (A & B);
- end
- end
- endmodule
- module main(
- input AB, //移位数据 Pin30
- input CLK, //移位时钟 Pin31
- input MR, //低电平复位 Pin32
- output led //[debug] LED 低电平点亮 Pin3
- );
- wire [7:0] U1Q;
- wire [7:0] U2Q;
- hc164 U1(
- .A(AB),
- .B(AB),
- .CLK(CLK),
- .MR(MR),
- .Q(U1Q)
- );
- hc164 U2(
- .A(U1Q[7]),
- .B(U1Q[7]),
- .CLK(CLK),
- .MR(MR),
- .Q(U2Q)
- );
- assign led = ({U1Q,U2Q} == 16'hABCD) ? 1'b0 : 1'b1; //[debug] U1为0xAB,U2为0xCD时,点亮LED
- endmodule
复制代码 |
|