Project

General

Profile

IP documentation » History » Version 23

Jean-Christophe Pellion, 28/02/2014 10:22 AM

1 10 Jean-Christophe Pellion
{{>toc}}
2 1 Jean-Christophe Pellion
3 11 Jean-Christophe Pellion
h1. IP Documentation
4 1 Jean-Christophe Pellion
5 15 Jean-Christophe Pellion
----
6
7 11 Jean-Christophe Pellion
h2. General Purpose
8 1 Jean-Christophe Pellion
9 15 Jean-Christophe Pellion
h3. Edge Detection
10 1 Jean-Christophe Pellion
11 15 Jean-Christophe Pellion
{{collapse(Edge_Detection)
12
EdgeDetection permit to detect the edge of the sin signal.
13
14
p=. !{width: 20%}edge_detection.png! 
15
16
<pre><code class="vhdl">
17
  COMPONENT lpp_edge_detection
18
    PORT (
19
      clk  : IN  STD_LOGIC;
20
      rstn : IN  STD_LOGIC;
21
      sin  : IN  STD_LOGIC;
22
      sout : OUT STD_LOGIC);
23
  END COMPONENT;
24
</code></pre>
25
26
|_.Signal      |_.Direction    |_.Size  |_.Function              |_. Active   |
27
|clk           |input          |1       |clock domain 1          |rising edge |
28
|rstn          |input          |1       |reset                   |low         |
29
|sin           |input          |1       |signal in               |            |
30
|sout          |ouput          |1       |signal out              |            |
31
32
}}
33
{{collapse(Edge_to_level)
34 20 Jean-Christophe Pellion
EdgeToLevel permit to transform the positive edge information into a level information.
35 15 Jean-Christophe Pellion
36 16 Jean-Christophe Pellion
p=. !{width: 20%}edge_to_level.png! 
37 15 Jean-Christophe Pellion
38
<pre><code class="vhdl">
39 17 Jean-Christophe Pellion
  COMPONENT lpp_edge_to_level
40 15 Jean-Christophe Pellion
    PORT (
41
      clk  : IN  STD_LOGIC;
42
      rstn : IN  STD_LOGIC;
43
      sin  : IN  STD_LOGIC;
44
      sout : OUT STD_LOGIC);
45
  END COMPONENT;
46
</code></pre>
47
48
|_.Signal      |_.Direction    |_.Size  |_.Function              |_. Active   |
49
|clk           |input          |1       |clock domain 1          |rising edge |
50
|rstn          |input          |1       |reset                   |low         |
51
|sin           |input          |1       |signal in               |            |
52
|sout          |ouput          |1       |signal out              |            |
53
54
}}
55
56 13 Jean-Christophe Pellion
h3. Synchronizer
57 8 Jean-Christophe Pellion
58
{{collapse(SYNC_FF)
59 19 Jean-Christophe Pellion
Sync_FF permit to synchronize a signal A in the clock domain clk. Normally, A signal should be the output of a FF cloked in an other domain. You shouldtn't have "logic" between the 2 domain.
60
You can configure the number FF use to synchronize (NB_FF_OF_SYNC). This number is depending of the MTBF(Mean Time Between Failure).
61 13 Jean-Christophe Pellion
62
p=. !{width: 15%}SYNC_FF.png!
63 8 Jean-Christophe Pellion
64
<pre><code class="vhdl">
65
  COMPONENT SYNC_FF_LPP_JCP
66
    GENERIC (
67
      NB_FF_OF_SYNC : INTEGER);
68
    PORT (
69
      clk    : IN  STD_LOGIC;
70
      rstn   : IN  STD_LOGIC;
71
      A      : IN  STD_LOGIC;
72
      A_sync : OUT STD_LOGIC);
73
  END COMPONENT;
74
</code></pre>
75
76
|_.Parameter   |_.Type         |_.Size  |_.Description         |_.Default   |
77 7 Jean-Christophe Pellion
|NB_FF_OF_SYNC |Integer        |        |Number of FF          |2            |
78 1 Jean-Christophe Pellion
|\5.|
79
|_.Signal      |_.Direction    |_.Size  |_.Function            |_. Active   |
80
|clk           |input          |1       |clock                 |rising edge |
81
|rstn          |input          |1       |reset                 |low         |
82 15 Jean-Christophe Pellion
|sin           |input          |1       |signal in             |            |
83
|sout          |ouput          |1       |signal synchronized   |            |
84 13 Jean-Christophe Pellion
85
}}
86
87 1 Jean-Christophe Pellion
{{collapse(SYNC_VALID_BIT)
88 14 Jean-Christophe Pellion
SYNC_VALID_BIT permit to synchronize a signal of validity from clock domain clk_in to clock domain clk_out. A validity bit is a signal set "high" only one cycle and zero others. To Synchronize this type of signal, a first stage detect the positive edge, a second synchronizes this signal, and a last transform the edge information to a validity bit.
89 19 Jean-Christophe Pellion
You can configure the FF number of the second stage (NB_FF_OF_SYNC).
90 14 Jean-Christophe Pellion
91 13 Jean-Christophe Pellion
p=. !{width: 20%}SYNC_VALID_BIT.png! 
92
93
<pre><code class="vhdl">
94
  COMPONENT SYNC_VALID_BIT_LPP_JCP
95
    GENERIC (
96
      NB_FF_OF_SYNC : INTEGER);
97
    PORT (
98
      clk_in  : IN  STD_LOGIC;
99
      clk_out : IN  STD_LOGIC;
100
      rstn    : IN  STD_LOGIC;
101
      sin     : IN  STD_LOGIC;
102
      sout    : OUT STD_LOGIC);
103
  END COMPONENT;
104
</code></pre>
105
106
|_.Parameter   |_.Type         |_.Size  |_.Description         |_.Default   |
107 1 Jean-Christophe Pellion
|NB_FF_OF_SYNC |Integer        |        |Number of FF          |2            |
108 13 Jean-Christophe Pellion
|\5.|
109 18 Jean-Christophe Pellion
|_.Signal      |_.Direction    |_.Size  |_.Function                   |_. Active   |
110
|clk_in        |input          |1       |clock domain 1               |rising edge |
111
|clk_out       |input          |1       |clock domain 1               |rising edge |
112
|rstn          |input          |1       |reset                        |low         |
113
|sin           |input          |1       |valid bit clocked in domain 1|            |
114
|sout          |output          |1      |valid bit clocked in domain 2|            |
115 2 Jean-Christophe Pellion
116
}}
117 21 Jean-Christophe Pellion
118
119
----
120
121
h2. SoC (System On Chip)
122
123
{{collapse(Leon3_Soc)
124
Leon3_SoC is an IP which integrate all the basic IP for using a Leon3 System. This System is configurable :
125
* activate the DSU, AHB uart, APB UART, IRQ manager and timer manager
126
* activate the FPU and select the type of IP using for (netlist or rtl)
127
128 23 Jean-Christophe Pellion
You can connect easily external AMBA IP. For example, if you have only one Leon3 and you want to add an AHB Master My_AHB_MST. You set NB_AHB_MASTER to 1 and connect My_AHB_MST_ahbmi signal to the input ahbi_m_ext and My_AHB_MST_ahbmo to ahbo_m_ext(1).
129 21 Jean-Christophe Pellion
130
<pre><code class="vhdl">
131
  COMPONENT leon3_soc_LPP_JCP
132
    GENERIC (
133
      fabtech         : INTEGER;
134
      memtech         : INTEGER;
135
      padtech         : INTEGER;
136
      clktech         : INTEGER;
137
      disas           : INTEGER;
138
      dbguart         : INTEGER;
139
      pclow           : INTEGER;
140
      clk_freq        : INTEGER;
141
      NB_CPU          : INTEGER;
142
      ENABLE_FPU      : INTEGER;
143
      FPU_NETLIST     : INTEGER;
144
      ENABLE_DSU      : INTEGER;
145
      ENABLE_AHB_UART : INTEGER;
146
      ENABLE_APB_UART : INTEGER;
147
      ENABLE_IRQMP    : INTEGER;
148
      ENABLE_GPT      : INTEGER;
149
      NB_AHB_MASTER   : INTEGER;
150
      NB_AHB_SLAVE    : INTEGER;
151
      NB_APB_SLAVE    : INTEGER);
152
    PORT (
153
      clk        : IN    STD_ULOGIC;
154
      rstn       : IN    STD_ULOGIC;
155
      errorn     : OUT   STD_ULOGIC;
156
      ahbrxd     : IN    STD_ULOGIC;
157
      ahbtxd     : OUT   STD_ULOGIC;
158
      urxd1      : IN    STD_ULOGIC;
159
      utxd1      : OUT   STD_ULOGIC;
160
      address    : OUT   STD_LOGIC_VECTOR(19 DOWNTO 0);
161
      data       : INOUT STD_LOGIC_VECTOR(31 DOWNTO 0);
162
      nSRAM_BE0  : OUT   STD_LOGIC;
163
      nSRAM_BE1  : OUT   STD_LOGIC;
164
      nSRAM_BE2  : OUT   STD_LOGIC;
165
      nSRAM_BE3  : OUT   STD_LOGIC;
166
      nSRAM_WE   : OUT   STD_LOGIC;
167
      nSRAM_CE   : OUT   STD_LOGIC;
168
      nSRAM_OE   : OUT   STD_LOGIC;
169
      apbi_ext   : OUT   apb_slv_in_type;
170
      apbo_ext   : IN    soc_apb_slv_out_vector(NB_APB_SLAVE-1+5 DOWNTO 5);
171
      ahbi_s_ext : OUT   ahb_slv_in_type;
172
      ahbo_s_ext : IN    soc_ahb_slv_out_vector(NB_AHB_SLAVE-1+3 DOWNTO 3);
173
      ahbi_m_ext : OUT   AHB_Mst_In_Type;
174
      ahbo_m_ext : IN    soc_ahb_mst_out_vector(NB_AHB_MASTER-1+NB_CPU DOWNTO NB_CPU));
175
  END COMPONENT;
176
</code></pre>
177
178
|_.Parameter     |_.Type       |_.Size  |_.Description         |_.Default   |
179
|fabtech         | INTEGER     |        |Target technologie                      |apa3e       |
180
|memtech         | INTEGER     |        |Memory Target technologie                      |apa3e       |
181
|padtech         | INTEGER     |        |Pad Target technologie                      |inferred    |
182
|clktech         | INTEGER     |        |Clock target technologie                      |inferred    |
183
|disas           | INTEGER     |        |Activate the disassembler  |0           |
184
|dbguart         | INTEGER     |        |Activate debug uart                      |0           |
185
|pclow           | INTEGER     |        |                      |2           |
186
|clk_freq        | INTEGER     |        |Clock input frequency (in kHz)                      |25000       |
187
|NB_CPU          | INTEGER     |        |Number of Leon3                      |1           |
188
|ENABLE_FPU      | INTEGER     |        |Enable the FPU                      |1           |
189
|FPU_NETLIST     | INTEGER     |        |Select the FPU Used (1=> NetList, 0=> RTL)   |1           |
190
|ENABLE_DSU      | INTEGER     |        |Enable the Debug System Unit                      |1           |
191
|ENABLE_AHB_UART | INTEGER     |        |Enable AHB UART                      |1           |
192
|ENABLE_APB_UART | INTEGER     |        |Enable APB UART                      |1           |
193
|ENABLE_IRQMP    | INTEGER     |        |Enable irq manager                      |1           |
194
|ENABLE_GPT      | INTEGER     |        |Enable the timer                      |1           |
195
|NB_AHB_MASTER   | INTEGER     |        |Number of AHB Master outside the SoC                      |0           |
196
|NB_AHB_SLAVE    | INTEGER     |        |Number of AHB Slave outside the SoC                      |0           |
197
|NB_APB_SLAVE    | INTEGER     |        |Number of APB Slave outside the SoC                      |0           |
198
|\5.|
199
|_.Signal   |_.Direction    |_.Size or Type |_.Function                   |_. Active   |
200
|clk        | input         |1              |clock                        |rising edge |
201
|rstn       | input         |1              |reset                        |low         |
202
|errorn     | output        |1              |leon 3 error signal          |            |
203
|ahbrxd     | input         |1              |AHB uart Rx Signal           |            |
204
|ahbtxd     | output        |1              |AHB uart Tx Signal           |            |
205
|urxd1      | input         |1              |APB uart Rx Signal           |            |
206
|utxd1      | output        |1              |APB uart Tx Signal           |            |
207
|address    | output        |20             |SRam  Address                |            |
208
|data       | inout         |32             |SRam Data                    |            |
209
|nSRAM_BE0  | output        |1              |SRam bankEnable  0           |            |
210
|nSRAM_BE1  | output        |1              |SRam bankEnable  1           |            |
211
|nSRAM_BE2  | output        |1              |SRam bankEnable  2           |            |
212
|nSRAM_BE3  | output        |1              |SRam bankEnable  3           |            |
213
|nSRAM_WE   | output        |1              |SRam WriteEnable             |            |
214
|nSRAM_CE   | output        |1              |SRam ChipEnable                             |            |
215
|nSRAM_OE   | output        |1              |SRam OutputEnable                             |            |
216
|apbi_ext   | output        |apb_slv_in_type|APB Slave bus input signal                             |            |
217
|apbo_ext   | input         |NB_APB_SLAVE of apb_slv_out_type|APB Slave bus output signal                            |            |
218
|ahbi_s_ext | output        |ahb_slv_in_type|AHB Slave bus input signal                              |            |
219
|ahbo_s_ext | input         |NB_AHB_SLAVE of ahb_slv_out_type |AHB Slave bus output signal                            |            |
220
|ahbi_m_ext | output        |ahb_mst_In_Type|AHB Master bus input signal                             |            |
221
|ahbo_m_ext | input         |NB_AHB_MASTER of ahb_mst_out_type|AHB Master bus output signal                              |            |
222
}}
223 22 Jean-Christophe Pellion
224
----