|
- module hc157( //74HC157 四路二进制二选一数据选择器 VCC:Pin16 GND:Pin8
- input a1, //Pin2
- input a2, //Pin5
- input a3, //Pin11
- input a4, //Pin14
- input b1, //Pin3
- input b2, //Pin6
- input b3, //Pin10
- input b4, //Pin13
-
- input ab, //Pin1 0选择A1~A4,1选择B1~B4
- input e, //Pin15 E为0选择有效,否则全部输出0
-
- output y1, //Pin4
- output y2, //Pin7
- output y3, //Pin9
- output y4 //Pin12
- );
- wire [3:0] a = {a4,a3,a2,a1};
- wire [3:0] b = {b4,b3,b2,b1};
- reg [3:0] y;
- assign {y4,y3,y2,y1} = y;
- always @(*) begin
- if(e) begin
- y = 4'b0;
- end else begin
- if(ab) begin
- y = b;
- end else begin
- y = a;
- end
- end
- end
- endmodule
- module main(
- input clk,
- output reg led
- );
- wire [3:0] y;
- hc157 hc157(
- .a1(1'b1),
- .a2(1'b0),
- .a3(1'b1),
- .a4(1'b0),
- .b1(1'b1),
- .b2(1'b1),
- .b3(1'b0),
- .b4(1'b1),
- .ab(1'b1),
- .e(1'b0),
- .y1(y[3]),
- .y2(y[2]),
- .y3(y[1]),
- .y4(y[0])
- );
- always @(posedge clk) begin
- if(y == 4'b1101) begin
- led <= 0;
- end else begin
- led <= 1;
- end
- end
- endmodule
复制代码 |
|