|
- module hc148( //8线 - 3线优先编码器 (反向输入输出) VCC:Pin16 GND:Pin8
- input [7:0] D, //[8位宽]编码输入 Pin:4,3,2,1,13,12,11,10
- input EI, //选通输入 (低电平使能) Pin5
- output reg [2:0] A, //[3位宽]编码输出 Pin:6,7,9
- output GS, //有编码输入则输出低电平 Pin14
- output EO //选通输出 Pin15
- );
- reg [2:0] b;
- assign GS = EI | (&D);
- assign EO = |{EI,~D};
- always @(*) begin
- A = 3'd7;
- b = 3'd0;
- if(!EI) begin
- repeat(8) begin
- if(!D[b]) A = ~b;
- b = b + 3'd1;
- end
- end
- end
- endmodule
- module main(
- input clk, //50Mhz 有源晶振 Pin17
- //接逻辑分析仪
- output [2:0] A,
- output GS,
- output EO,
- output reg clkB //50Khz输出
- );
- //50Mhz分频50Khz
- reg [7:0] D = 8'd0;
- integer i;
- always @(posedge clk) begin
- i = i + 1;
- if(i >= 500) begin
- i = 0;
- clkB <= !clkB;
- end
- end
- hc148 U1(
- .D(D),
- .EI(1'b0),
- .A(A),
- .GS(GS),
- .EO(EO)
- );
- always @(posedge clkB) begin
- D <= D + 8'd1;
- end
- endmodule
复制代码 |
|