|
2 | 2 | name: Clash.Explicit.DDR.ddrIn#
|
3 | 3 | kind: Declaration
|
4 | 4 | type: |-
|
5 |
| - ddrIn# :: forall a slow fast n pFast gated synchronous. |
6 |
| - ( HasCallStack -- ARG[0] |
7 |
| - , NFDataX a -- ARG[1] |
8 |
| - , KnownConfi~ fast domf -- ARG[2] |
9 |
| - , KnownConfi~ slow doms -- ARG[3] |
10 |
| - => Clock slow -- ARG[4], clk |
11 |
| - -> Reset slow -- ARG[5], rst |
12 |
| - -> Enable slow -- ARG[6], en |
13 |
| - -> a -- ARG[7] |
14 |
| - -> a -- ARG[8] |
15 |
| - -> a -- ARG[9] |
16 |
| - -> Signal fast a -- ARG[10] |
17 |
| - -> Signal slow (a,a) |
| 5 | + ddrIn# :: forall a dom domDDR |
| 6 | + . HasCallStack -- ARG[0] |
| 7 | + => NFDataX a -- ARG[1] |
| 8 | + => KnownDomain dom -- ARG[2] |
| 9 | + => KnownDomain domDDR -- ARG[3] |
| 10 | + => DomPeriod ~ 2 * ... -- ARG[4] |
| 11 | + => Clock dom -- ARG[5] |
| 12 | + -> Reset dom -- ARG[6] |
| 13 | + -> Enable dom -- ARG[7] |
| 14 | + -> a -- ARG[8] |
| 15 | + -> a -- ARG[9] |
| 16 | + -> a -- ARG[10] |
| 17 | + -> Signal domDDR a -- ARG[11] |
| 18 | + -> Signal dom (a,a) |
18 | 19 | template: |-
|
19 | 20 | // ddrIn begin
|
20 |
| - ~SIGD[~GENSYM[data_Pos][1]][9]; |
21 |
| - ~SIGD[~GENSYM[data_Neg][2]][9]; |
22 |
| - ~SIGD[~GENSYM[data_Neg_Latch][3]][9]; |
23 |
| - always @(~IF~ACTIVEEDGE[Rising][2]~THENposedge~ELSEnegedge~FI ~ARG[4]~IF~ISSYNC[3]~THEN)~ELSE or ~IF~ISACTIVEHIGH[2]~THENposedge~ELSEnegedge~FI ~ARG[5])~FI begin : ~GENSYM[~COMPNAME_ddrIn_pos][6] |
24 |
| - if (~IF~ISACTIVEHIGH[2]~THEN~ARG[5]~ELSE! ~ARG[5]~FI) begin |
25 |
| - ~SYM[1] <= ~ARG[8]; |
26 |
| - end else ~IF ~ISACTIVEENABLE[6] ~THEN if (~ARG[6]) ~ELSE ~FI begin |
27 |
| - ~SYM[1] <= ~ARG[10]; |
| 21 | + ~SIGD[~GENSYM[data_Pos][1]][11]; |
| 22 | + ~SIGD[~GENSYM[data_Neg][2]][11]; |
| 23 | + ~SIGD[~GENSYM[data_Neg_Latch][3]][11]; |
| 24 | + always @(~IF~ACTIVEEDGE[Rising][2]~THENposedge~ELSEnegedge~FI ~ARG[5]~IF~ISSYNC[2]~THEN)~ELSE or ~IF~ISACTIVEHIGH[2]~THENposedge~ELSEnegedge~FI ~ARG[6])~FI begin : ~GENSYM[~COMPNAME_ddrIn_pos][6] |
| 25 | + if (~IF~ISACTIVEHIGH[2]~THEN~ARG[6]~ELSE! ~ARG[6]~FI) begin |
| 26 | + ~SYM[1] <= ~ARG[9]; |
| 27 | + end else ~IF ~ISACTIVEENABLE[7] ~THEN if (~ARG[7]) ~ELSE ~FI begin |
| 28 | + ~SYM[1] <= ~ARG[11]; |
28 | 29 | end
|
29 | 30 | end
|
30 |
| - always @(~IF~ACTIVEEDGE[Rising][2]~THENnegedge~ELSEposedge~FI ~ARG[4]~IF~ISSYNC[3]~THEN)~ELSE or ~IF~ISACTIVEHIGH[2]~THENposedge~ELSEnegedge~FI ~ARG[5])~FI begin : ~GENSYM[~COMPNAME_ddrIn_neg][7] |
31 |
| - if (~IF~ISACTIVEHIGH[2]~THEN~ARG[5]~ELSE! ~ARG[5]~FI) begin |
32 |
| - ~SYM[2] <= ~ARG[9]; |
33 |
| - end else ~IF ~ISACTIVEENABLE[6] ~THEN if (~ARG[6]) ~ELSE ~FI begin |
| 31 | + always @(~IF~ACTIVEEDGE[Rising][2]~THENnegedge~ELSEposedge~FI ~ARG[5]~IF~ISSYNC[2]~THEN)~ELSE or ~IF~ISACTIVEHIGH[2]~THENposedge~ELSEnegedge~FI ~ARG[6])~FI begin : ~GENSYM[~COMPNAME_ddrIn_neg][7] |
| 32 | + if (~IF~ISACTIVEHIGH[2]~THEN~ARG[6]~ELSE! ~ARG[6]~FI) begin |
34 | 33 | ~SYM[2] <= ~ARG[10];
|
| 34 | + end else ~IF ~ISACTIVEENABLE[7] ~THEN if (~ARG[7]) ~ELSE ~FI begin |
| 35 | + ~SYM[2] <= ~ARG[11]; |
35 | 36 | end
|
36 | 37 | end
|
37 |
| - always @(~IF~ACTIVEEDGE[Rising][2]~THENposedge~ELSEnegedge~FI ~ARG[4]~IF~ISSYNC[3]~THEN)~ELSE or ~IF~ISACTIVEHIGH[2]~THENposedge~ELSEnegedge~FI ~ARG[5])~FI begin : ~GENSYM[~COMPNAME_ddrIn_neg_latch][8] |
38 |
| - if (~IF~ISACTIVEHIGH[2]~THEN~ARG[5]~ELSE! ~ARG[5]~FI) begin |
39 |
| - ~SYM[3] <= ~ARG[7]; |
40 |
| - end else ~IF ~ISACTIVEENABLE[6] ~THEN if (~ARG[6]) ~ELSE ~FI begin |
| 38 | + always @(~IF~ACTIVEEDGE[Rising][2]~THENposedge~ELSEnegedge~FI ~ARG[5]~IF~ISSYNC[2]~THEN)~ELSE or ~IF~ISACTIVEHIGH[2]~THENposedge~ELSEnegedge~FI ~ARG[6])~FI begin : ~GENSYM[~COMPNAME_ddrIn_neg_latch][8] |
| 39 | + if (~IF~ISACTIVEHIGH[2]~THEN~ARG[6]~ELSE! ~ARG[6]~FI) begin |
| 40 | + ~SYM[3] <= ~ARG[8]; |
| 41 | + end else ~IF ~ISACTIVEENABLE[7] ~THEN if (~ARG[7]) ~ELSE ~FI begin |
41 | 42 | ~SYM[3] <= ~SYM[2];
|
42 | 43 | end
|
43 | 44 | end
|
|
49 | 50 | kind: Declaration
|
50 | 51 | outputUsage: Blocking
|
51 | 52 | type: |-
|
52 |
| - ddrOut# :: ( HasCallStack -- ARG[0] |
53 |
| - , NFDataX a -- ARG[1] |
54 |
| - , KnownConfi~ fast domf -- ARG[2] |
55 |
| - , KnownConfi~ slow doms -- ARG[3] |
56 |
| - => Clock slow -- ARG[4] |
57 |
| - -> Reset slow -- ARG[5] |
58 |
| - -> Enable slow -- ARG[6] |
59 |
| - -> a -- ARG[7] |
60 |
| - -> Signal slow a -- ARG[8] |
61 |
| - -> Signal slow a -- ARG[9] |
62 |
| - -> Signal fast a |
| 53 | + ddrOut# :: forall a dom domDDR |
| 54 | + . HasCallStack -- ARG[0] |
| 55 | + => NFDataX a -- ARG[1] |
| 56 | + => KnownDomain dom -- ARG[2] |
| 57 | + => KnownDomain domDDR -- ARG[3] |
| 58 | + => DomPeriod ~ 2 * ... -- ARG[4] |
| 59 | + => Clock dom -- ARG[5] |
| 60 | + -> Reset dom -- ARG[6] |
| 61 | + -> Enable dom -- ARG[7] |
| 62 | + -> a -- ARG[8] |
| 63 | + -> Signal dom a -- ARG[9] |
| 64 | + -> Signal dom a -- ARG[10] |
| 65 | + -> Signal domDDR a |
63 | 66 | template: |-
|
64 | 67 | // ddrOut begin
|
65 |
| - ~SIGD[~GENSYM[data_Pos][1]][7]; |
66 |
| - ~SIGD[~GENSYM[data_Neg][2]][7]; |
67 |
| - always @(~IF~ACTIVEEDGE[Rising][2]~THENposedge~ELSEnegedge~FI ~ARG[4]~IF~ISSYNC[3]~THEN)~ELSE or ~IF~ISACTIVEHIGH[2]~THENposedge~ELSEnegedge~FI ~ARG[5])~FI begin : ~GENSYM[~COMPNAME_ddrOut_pos][5] |
68 |
| - if (~IF~ISACTIVEHIGH[2]~THEN~ARG[5]~ELSE! ~ARG[5]~FI) begin |
69 |
| - ~SYM[1] <= ~ARG[7]; |
70 |
| - end else ~IF ~ISACTIVEENABLE[6] ~THEN if (~ARG[6]) ~ELSE ~FI begin |
| 68 | + ~SIGD[~GENSYM[data_Pos][1]][8]; |
| 69 | + ~SIGD[~GENSYM[data_Neg][2]][8]; |
| 70 | + always @(~IF~ACTIVEEDGE[Rising][2]~THENposedge~ELSEnegedge~FI ~ARG[5]~IF~ISSYNC[2]~THEN)~ELSE or ~IF~ISACTIVEHIGH[2]~THENposedge~ELSEnegedge~FI ~ARG[6])~FI begin : ~GENSYM[~COMPNAME_ddrOut_pos][5] |
| 71 | + if (~IF~ISACTIVEHIGH[2]~THEN~ARG[6]~ELSE! ~ARG[6]~FI) begin |
71 | 72 | ~SYM[1] <= ~ARG[8];
|
| 73 | + end else ~IF ~ISACTIVEENABLE[7] ~THEN if (~ARG[7]) ~ELSE ~FI begin |
| 74 | + ~SYM[1] <= ~ARG[9]; |
72 | 75 | end
|
73 | 76 | end
|
74 |
| - always @(~IF~ACTIVEEDGE[Rising][2]~THENposedge~ELSEnegedge~FI ~ARG[4]~IF~ISSYNC[3]~THEN)~ELSE or ~IF~ISACTIVEHIGH[2]~THENposedge~ELSEnegedge~FI ~ARG[5])~FI begin : ~GENSYM[~COMPNAME_ddrOut_neg][6] |
75 |
| - if (~IF~ISACTIVEHIGH[2]~THEN~ARG[5]~ELSE! ~ARG[5]~FI) begin |
76 |
| - ~SYM[2] <= ~ARG[7]; |
77 |
| - end else ~IF ~ISACTIVEENABLE[6] ~THEN if (~ARG[6]) ~ELSE ~FI begin |
78 |
| - ~SYM[2] <= ~ARG[9]; |
| 77 | + always @(~IF~ACTIVEEDGE[Rising][2]~THENposedge~ELSEnegedge~FI ~ARG[5]~IF~ISSYNC[2]~THEN)~ELSE or ~IF~ISACTIVEHIGH[2]~THENposedge~ELSEnegedge~FI ~ARG[6])~FI begin : ~GENSYM[~COMPNAME_ddrOut_neg][6] |
| 78 | + if (~IF~ISACTIVEHIGH[2]~THEN~ARG[6]~ELSE! ~ARG[6]~FI) begin |
| 79 | + ~SYM[2] <= ~ARG[8]; |
| 80 | + end else ~IF ~ISACTIVEENABLE[7] ~THEN if (~ARG[7]) ~ELSE ~FI begin |
| 81 | + ~SYM[2] <= ~ARG[10]; |
79 | 82 | end
|
80 | 83 | end
|
81 | 84 |
|
82 | 85 | always @(*) begin
|
83 |
| - if (~ARG[4]) begin |
| 86 | + if (~ARG[5]) begin |
84 | 87 | ~RESULT = ~IF~ACTIVEEDGE[Rising][2]~THEN~SYM[1]~ELSE~SYM[2]~FI;
|
85 | 88 | end else begin
|
86 | 89 | ~RESULT = ~IF~ACTIVEEDGE[Rising][2]~THEN~SYM[2]~ELSE~SYM[1]~FI;
|
|
0 commit comments