You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@ This project aims to provide synthesizable RTL VHDL models for Lattice ispMACH40
4
4
5
5
## Overview
6
6
7
-
Code design generation is based on the reverse engineered fusemap definitions from [re4k](https://github.com/bcrist/re4k/). A python script assembles the core design from these building blocks:
7
+
Core design generation is based on the reverse engineered fusemap definitions from [re4k](https://github.com/bcrist/re4k/). A python script reads [re4k's S-Expressions](https://github.com/bcrist/re4k/tree/main#s-expression-files) and assembles the toplevel design from parametrizable building blocks:
8
8
9
9
* Pins
10
10
* Global routing pool (GRP)
@@ -13,7 +13,7 @@ Code design generation is based on the reverse engineered fusemap definitions fr
13
13
* Macrocells
14
14
* Output routing pools (ORP)
15
15
16
-
The result is a VHDL design per device type that accepts the fusemap as generic parameter.
16
+
The result is a VHDL design hierarchy per device type that accepts the fusemap as generic parameter.
17
17
18
18
Tests are provided to check equivalence between the original (golden) design and the generated LC4K core parametrized by the fusemap.
19
19
@@ -93,7 +93,7 @@ There are several approaches for how to integrate the core design and provide th
93
93
94
94
#### JEDEC conversion
95
95
96
-
Each core design requires that the generic parameter `g_fusemap` is provided with a `std_logic_vector` of appropriate length and corresponds 1:1 to the contents of the JEDEC fusemap. In case of LC4032ZC_TQFP48, the vector contains 17200 bits.
96
+
Each core design requires that the generic parameter `g_fusemap` is provided with a `std_logic_vector` of appropriate length that corresponds 1:1 to the contents of the JEDEC fusemap. In case of LC4032ZC_TQFP48, the vector contains 17200 bits.
97
97
98
98
Use `jed2vhdl.py` to convert a JEDEC file to a fusemap parameter:
*`<width>` specifies how many bits shall be put into a single line of output. Just use the device's column width (172 in the example above), but any number should work
105
-
*`-b` optionally instructs the converter to omit `"&` characters. The result is a file containing only 0 and 1
105
+
*`-b` optionally instructs the converter to omit `"&` characters. The result is a file containing only 1s and 0s
106
106
107
107
#### By wrapper design
108
108
109
-
The lc*_core entity is instantiated in a wrapper that narrows down I/Os and sets the generic parameter `g_fusemap`.
109
+
The lc*_core entity is instantiated in a wrapper that narrows down I/Os and sets the generic parameter `g_fusemap`. The value for the generic parameter is the output of `jed2vhdl.py` (without `-b`).
110
110
111
111
Examples for this approach can be found in the `tests/` folder.
0 commit comments