OpenCores
URL https://opencores.org/ocsvn/darkriscv/darkriscv/trunk

Subversion Repositories darkriscv

[/] [darkriscv/] [trunk/] [boards/] [lattice_brevia2_xp2/] [README.md] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 marcelos
# Lattice XP2 Brevia 2 board
2
 
3
## General information
4
The Lattice Brevia 2 board is a small development board for the Lattice XP2
5
family of FPGAs. It has a Lattice LFXP2-5E-6 chip in a QFP 144-pin package and
6
also includes the following peripherals:
7
* An 1MBit SRAM - IDT71V124SA1
8
* 2MBit SPI flash - SST25VF020
9
* FT2232 for for FPGA programming/debugging and serial-to-USB on the second channel
10
* 8 LEDs
11
* 4 push-buttons and 4 microswitches
12
* a 50MHz oscillator
13
* Pin headers for all IOs
14
 
15
The DarkRISCV/darksoc builds out-of-the box using Lattice Diamond command-line,
16
taking about ~60% of the on-chip LUTs for the SoC demo.
17
 
18
## Instructions
19
Building and running the board has been tested on Linux only. You'll need the
20
following software intalled on your system:
21
- GNU make; Icarus Verilog; gtkwave if you want to examine the simulation output
22
- Lattice Diamond installed and properly licensed.
23
 
24
Once you have the above, edit the top-level Makefile and set
25
```
26
BOARD  = lattice_brevia2_xp2
27
```
28
While there, also make sure to correctly set the paths to your other tools, eg.
29
CROSS, CCPATH, ICARUS
30
 
31
Next check *boards/lattice_brevia2_xp2/darksocv.mk* and make sure that
32
DIAMOND_PATH matches your environment.
33
 
34
Finally, execute "make" in the top-level directory. First the Icarus simulation
35
is executed and you should be greeted with the familiar logo. After that, the
36
Lattice-specific build commences and if everything goes well, after a few pages
37
of output, you should see
38
```
39
Saving bit stream in "darksocv_impl1.jed".
40
Total CPU Time: 3 secs
41
Total REAL Time: 3 secs
42
Peak Memory Usage: 1010572 MB
43
cp lattice_brevia2_xp2/impl1/darksocv_impl1.jed ../tmp/darksocv.bit
44
echo build ok.
45
build ok.
46
```
47
 
48
Program the board with the output JEDEC file (boards/lattice_brevia2_xp2/impl1/darksocv_impl1.jed)
49
file, using either the GUI Lattice Programmer or the command-line prgrcmd utility
50
```
51
LD_LIBRARY_PATH="/usr/local/diamond/3.11_x64/bin/lin64/:/usr/local/diamond/3.11_x64/ispfpga/bin/lin64/"
52
/usr/local/diamond/3.11_x64/bin/lin64/pgrcmd -infile lattice_brevia2_xp2.xcf
53
```
54
 
55
Connect a terminal emulator to the on-boards FT2232 second channel, for example:
56
```
57
cu -l /dev/ttyUSB1 -s 115200
58
```
59
Reset the board and enjoy!
60
 
61
 
62
 
63
 
64
Notes:
65
* No effort has been made to optimize resource utilization
66
* There are quite a lot of warnings during the build. No effort has been made
67
  to clear (or even understand) them. There are probably bugs hiding there
68
  as well.
69
* The default 50MHz oscillator is used as the core clock. Using a PLL, the core
70
  could probably go faster, but this is outside the scope of the current work.
71
* There seems to be an issue (race condition of sorts?) with the interaction
72
  UART/Timer/Threading. The sympthoms are either the simulation outputing '01'
73
  or nothing at all, the actual board doing the same, the actual board not
74
  being able to display board information (model, clock speed, etc) or the
75
  timer not working (i.e. board stalled after 'reboot'). The easiest
76
  work-around seems to be to remote the two ```putchar('0'+tmp);``` calls
77
  inside src/boot.c. Again, this is only a work-around and the problem could
78
  manifest at any point.
79
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.