machxo2: Tristate is active-low.
[yosys.git] / techlibs / nexus / parse_init.vh
1 function [15:0] parse_init;
2 input [((2+(16/4))*8)-1:0] init;
3 reg [7:0] c;
4 integer i;
5 begin
6 for (i = 0; i < (16/4); i = i + 1) begin
7 c = init[(i * 8) +: 8];
8 if (c >= "0" && c <= "9")
9 parse_init[(i * 4) +: 4] = (c - "0");
10 else if (c >= "A" && c <= "F")
11 parse_init[(i * 4) +: 4] = (c - "A") + 10;
12 else if (c >= "a" && c <= "f")
13 parse_init[(i * 4) +: 4] = (c - "a") + 10;
14 end
15 end
16 endfunction
17
18 function [63:0] parse_init_64;
19 input [((2+(64/4))*8)-1:0] init;
20 reg [7:0] c;
21 integer i;
22 begin
23 for (i = 0; i < (64/4); i = i + 1) begin
24 c = init[(i * 8) +: 8];
25 if (c >= "0" && c <= "9")
26 parse_init_64[(i * 4) +: 4] = (c - "0");
27 else if (c >= "A" && c <= "F")
28 parse_init_64[(i * 4) +: 4] = (c - "A") + 10;
29 else if (c >= "a" && c <= "f")
30 parse_init_64[(i * 4) +: 4] = (c - "a") + 10;
31 end
32 end
33 endfunction