Project

General

Profile

Mini LFR - Bitstream Generation » History » Version 5

Jean-Christophe Pellion, 01/12/2016 02:04 PM

1 1 Jean-Christophe Pellion
# Mini LFR - Bitstream Generation
2
3
4
## 1 Generates scripts files ##
5
6
Clean the project directory, and run the makefile scripts command to generate all project's files.
7
8
```bash
9
# clean the project and re-generates the scripts
10
$> make distclean scripts
11
```
12
13
The files MINI\_LFR\_top\_libero.prj should be created.
14
15
## 2 Launch Libero IDE ##
16
17
Open the project MINI\_LFR\_top\_libero.prj with Libero IDE v9.1.
18 3 Jean-Christophe Pellion
!["Libero IDE v9.1"](Capture1.PNG)
19 1 Jean-Christophe Pellion
20
### 2.1 Synthesis ###
21
Synthesis tools should be configured to use **Synplify** version **2012-03A-SP1-2**.
22
23
Launch the synthesis step (You must not add constraint file). 
24
In the synplify Pro windows, click on the Run button.
25
26
The project status obtained should be :
27
28 4 Jean-Christophe Pellion
!["Synplify Project Status"](Capture2.PNG)
29 1 Jean-Christophe Pellion
30
> You must verfify the block RAM's usage. The expected value is 100.
31
> 
32
> If it's around 60/70, LEON3 processor is not mapped. In this case, you must clean your project and restart the generation procedure.
33
34
You can close Synplify and return to Libero.
35
36
37
If the Sythesis step is green like that :
38
39
You must activate the option `Detect new files on disk automatically` in the project settings.
40
41 5 Jean-Christophe Pellion
!["Project > Settings..."](Capture3.PNG)
42 1 Jean-Christophe Pellion
43 5 Jean-Christophe Pellion
!["Detect new files on disk automatically"](Capture4.PNG)
44
45 1 Jean-Christophe Pellion
### 2.2 Place&Route ###
46
47
Launch the Place&Route step. You must add the constraint files :
48
49
  * `default.pdc` (Input/Output constraint) 
50
  * `MINI-LFR_PlaceAndRoute.sdc` (Timing constraint)
51
52
![image](./README_dir/Capture5.PNG "Constraints")
53
54
55
#### 2.2.1 Compile Step ####
56
![image](./README_dir/Capture6.PNG "Compile Step")
57
58
Run the Compile step. 
59
60
#### 2.2.2 Layout Step ####
61
![image](./README_dir/Capture7.PNG "An exemplary image")
62
63
Run the Layout step.
64
65
In the Layout options windows, select Advanced Layout Options :
66
67
![image](./README_dir/Capture8.PNG "An exemplary image")
68
69
And checked those options : 
70
71
![image](./README_dir/Capture9.PNG "An exemplary image")
72
73
Click Ok and wait...
74
75
![image](./README_dir/Capture10.PNG "An exemplary image")
76
#### 2.2.3 Timing Analyser ####
77
78
Launch theTiming Analyser.
79
80
![image](./README_dir/Capture11.PNG "An exemplary image")
81
82
#### 2.2.3.a SpaceWire Output ####
83
84
You must verify the SpaceWire output timing for the Max and Min delay.
85
86
![image](./README_dir/Capture12.PNG "An exemplary image")
87
88
![image](./README_dir/Capture19.PNG "An exemplary image")
89
90
The ouput skew is equal to Ouput\_SOut timing - Ouput\_DOut timing. This output skew must be positive.
91
92
> In this exemple,
93
>
94
> SPW\_NOM skew max = 13.907 - 15.882 = -1.975 ns
95
>
96
> SPW\_NOM skew min = 6.367 - 7.317 = -0.950 ns
97
> 
98
> SPW\_RED skew max = 17.937 - 13.510 =  4.427 ns
99
> 
100
> SPW\_RED skew min = 8.304 - 6.175 =  2.129 ns
101
>
102
> The SPW\_NOM interface must be modified. In ChipPlanner, we will move element in the SPW\_NOM path to have a positive skew in min and max delay.
103
> ![image](./README_dir/Capture13.PNG "An exemplary image")
104
> ![image](./README_dir/Capture14.PNG "An exemplary image")
105
106
#### 2.2.3.b SpaceWire Input ####
107
108
You must also verify the SpaceWire input timing. For that, you must add a new set for SPW_INPUT:
109
110
![image](./README_dir/Capture15.PNG "An exemplary image")
111
112
and configure it like that :
113
 you
114
![image](./README_dir/Capture16.PNG "An exemplary image")
115
116
You obtain those timing for min and max delay.
117
118
![image](./README_dir/Capture17.PNG "An exemplary image")
119
120
![image](./README_dir/Capture18.PNG "An exemplary image")
121
122
You must also add a new set for the FF setup time :
123
 
124
![image](./README_dir/Capture20.PNG "An exemplary image")
125
126
![image](./README_dir/Capture21.PNG "An exemplary image")
127
128
In resume, for the input SPW_NOM interface :
129
130
131
<table>
132
    <thead>
133
        <tr>
134
            <th>header 1</th>
135
            <th align="center">header 2</th>
136
            <th align="right">header 3</th>
137
        </tr>
138
    </thead>
139
    <tbody>
140
        <tr>
141
            <td>line 1</td>
142
            <td align="center">1</td>
143
            <td align="right">value</td>
144
        </tr>
145
        <tr>
146
            <td>row 2</td>
147
            <td align="center">2</td>
148
            <td align="right">value</td>
149
        </tr>
150
        <tr>
151
            <td>line 3</td>
152
            <td align="center">3</td>
153
            <td align="right">value</td>
154
        </tr>
155
    </tbody>
156
</table>
157
158
159
The input skew is equal to Ouput\_SOut timing - Ouput\_DOut timing. This output skew must be positive.