mirror of https://github.com/YosysHQ/yosys.git
Improve igloo2 example
Signed-off-by: Clifford Wolf <clifford@clifford.at>
This commit is contained in:
parent
da5181a3df
commit
e22afeae90
|
@ -1,8 +1,20 @@
|
||||||
# Add placement constraints here
|
# Add placement constraints here
|
||||||
|
|
||||||
set_io clk -pinname H16 -fixed yes -DIRECTION INPUT
|
set_io clk -pinname H16 -fixed yes -DIRECTION INPUT
|
||||||
|
|
||||||
set_io SW1 -pinname H12 -fixed yes -DIRECTION INPUT
|
set_io SW1 -pinname H12 -fixed yes -DIRECTION INPUT
|
||||||
set_io SW2 -pinname H13 -fixed yes -DIRECTION INPUT
|
set_io SW2 -pinname H13 -fixed yes -DIRECTION INPUT
|
||||||
|
|
||||||
set_io LED1 -pinname J16 -fixed yes -DIRECTION OUTPUT
|
set_io LED1 -pinname J16 -fixed yes -DIRECTION OUTPUT
|
||||||
set_io LED2 -pinname M16 -fixed yes -DIRECTION OUTPUT
|
set_io LED2 -pinname M16 -fixed yes -DIRECTION OUTPUT
|
||||||
set_io LED3 -pinname K16 -fixed yes -DIRECTION OUTPUT
|
set_io LED3 -pinname K16 -fixed yes -DIRECTION OUTPUT
|
||||||
set_io LED4 -pinname N16 -fixed yes -DIRECTION OUTPUT
|
set_io LED4 -pinname N16 -fixed yes -DIRECTION OUTPUT
|
||||||
|
|
||||||
|
set_io AA -pinname L12 -fixed yes -DIRECTION OUTPUT
|
||||||
|
set_io AB -pinname L13 -fixed yes -DIRECTION OUTPUT
|
||||||
|
set_io AC -pinname M13 -fixed yes -DIRECTION OUTPUT
|
||||||
|
set_io AD -pinname N15 -fixed yes -DIRECTION OUTPUT
|
||||||
|
set_io AE -pinname L11 -fixed yes -DIRECTION OUTPUT
|
||||||
|
set_io AF -pinname L14 -fixed yes -DIRECTION OUTPUT
|
||||||
|
set_io AG -pinname N14 -fixed yes -DIRECTION OUTPUT
|
||||||
|
set_io CA -pinname M15 -fixed yes -DIRECTION OUTPUT
|
||||||
|
|
|
@ -5,10 +5,13 @@ module example (
|
||||||
output LED1,
|
output LED1,
|
||||||
output LED2,
|
output LED2,
|
||||||
output LED3,
|
output LED3,
|
||||||
output LED4
|
output LED4,
|
||||||
|
|
||||||
|
output AA, AB, AC, AD,
|
||||||
|
output AE, AF, AG, CA
|
||||||
);
|
);
|
||||||
|
|
||||||
localparam BITS = 4;
|
localparam BITS = 8;
|
||||||
localparam LOG2DELAY = 22;
|
localparam LOG2DELAY = 22;
|
||||||
|
|
||||||
reg [BITS+LOG2DELAY-1:0] counter = 0;
|
reg [BITS+LOG2DELAY-1:0] counter = 0;
|
||||||
|
@ -20,4 +23,41 @@ module example (
|
||||||
end
|
end
|
||||||
|
|
||||||
assign {LED1, LED2, LED3, LED4} = outcnt ^ (outcnt >> 1);
|
assign {LED1, LED2, LED3, LED4} = outcnt ^ (outcnt >> 1);
|
||||||
|
|
||||||
|
// seg7enc seg7encinst (
|
||||||
|
// .seg({AA, AB, AC, AD, AE, AF, AG}),
|
||||||
|
// .dat(CA ? outcnt[3:0] : outcnt[7:4])
|
||||||
|
// );
|
||||||
|
|
||||||
|
assign {AA, AB, AC, AD, AE, AF, AG} = ~(7'b 100_0000 >> outcnt[7:4]);
|
||||||
|
assign CA = counter[10];
|
||||||
|
endmodule
|
||||||
|
|
||||||
|
module seg7enc (
|
||||||
|
input [3:0] dat,
|
||||||
|
output [6:0] seg
|
||||||
|
);
|
||||||
|
reg [6:0] seg_inv;
|
||||||
|
always @* begin
|
||||||
|
seg_inv = 0;
|
||||||
|
case (dat)
|
||||||
|
4'h0: seg_inv = 7'b 0111111;
|
||||||
|
4'h1: seg_inv = 7'b 0000110;
|
||||||
|
4'h2: seg_inv = 7'b 1011011;
|
||||||
|
4'h3: seg_inv = 7'b 1001111;
|
||||||
|
4'h4: seg_inv = 7'b 1100110;
|
||||||
|
4'h5: seg_inv = 7'b 1101101;
|
||||||
|
4'h6: seg_inv = 7'b 1111101;
|
||||||
|
4'h7: seg_inv = 7'b 0000111;
|
||||||
|
4'h8: seg_inv = 7'b 1111111;
|
||||||
|
4'h9: seg_inv = 7'b 1101111;
|
||||||
|
4'hA: seg_inv = 7'b 1110111;
|
||||||
|
4'hB: seg_inv = 7'b 1111100;
|
||||||
|
4'hC: seg_inv = 7'b 0111001;
|
||||||
|
4'hD: seg_inv = 7'b 1011110;
|
||||||
|
4'hE: seg_inv = 7'b 1111001;
|
||||||
|
4'hF: seg_inv = 7'b 1110001;
|
||||||
|
endcase
|
||||||
|
end
|
||||||
|
assign seg = ~seg_inv;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
Loading…
Reference in New Issue