Skip to content

Commit f48c891

Browse files
committed
Update LiteX soc
1 parent 9ae68ab commit f48c891

File tree

7 files changed

+59
-55
lines changed

7 files changed

+59
-55
lines changed

fpga/ulx3s_soc/csr.csv

Lines changed: 26 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,31 @@
11
#--------------------------------------------------------------------------------
2-
# Auto-generated by LiteX (a977adf5) on 2022-07-05 15:47:10
2+
# Auto-generated by LiteX (a977adf5) on 2022-07-18 10:34:45
33
#--------------------------------------------------------------------------------
4-
csr_base,sim_trace,0x82000000,,
5-
csr_base,sim_marker,0x82000800,,
6-
csr_base,sim_finish,0x82001000,,
7-
csr_base,ctrl,0x82001800,,
8-
csr_base,identifier_mem,0x82002000,,
9-
csr_base,timer0,0x82002800,,
10-
csr_base,uart,0x82003000,,
11-
csr_register,sim_trace_enable,0x82000000,1,rw
12-
csr_register,sim_marker_marker,0x82000800,1,rw
13-
csr_register,sim_finish_finish,0x82001000,1,rw
14-
csr_register,ctrl_reset,0x82001800,1,rw
15-
csr_register,ctrl_scratch,0x82001804,1,rw
16-
csr_register,ctrl_bus_errors,0x82001808,1,ro
17-
csr_register,timer0_load,0x82002800,1,rw
18-
csr_register,timer0_reload,0x82002804,1,rw
19-
csr_register,timer0_en,0x82002808,1,rw
20-
csr_register,timer0_update_value,0x8200280c,1,rw
21-
csr_register,timer0_value,0x82002810,1,ro
22-
csr_register,timer0_ev_status,0x82002814,1,ro
23-
csr_register,timer0_ev_pending,0x82002818,1,rw
24-
csr_register,timer0_ev_enable,0x8200281c,1,rw
25-
csr_register,uart_rxtx,0x82003000,1,rw
26-
csr_register,uart_txfull,0x82003004,1,ro
27-
csr_register,uart_rxempty,0x82003008,1,ro
28-
csr_register,uart_ev_status,0x8200300c,1,ro
29-
csr_register,uart_ev_pending,0x82003010,1,rw
30-
csr_register,uart_ev_enable,0x82003014,1,rw
31-
csr_register,uart_txempty,0x82003018,1,ro
32-
csr_register,uart_rxfull,0x8200301c,1,ro
4+
csr_base,ctrl,0x82000000,,
5+
csr_base,identifier_mem,0x82000800,,
6+
csr_base,leds,0x82001000,,
7+
csr_base,timer0,0x82001800,,
8+
csr_base,uart,0x82002000,,
9+
csr_register,ctrl_reset,0x82000000,1,rw
10+
csr_register,ctrl_scratch,0x82000004,1,rw
11+
csr_register,ctrl_bus_errors,0x82000008,1,ro
12+
csr_register,leds_out,0x82001000,1,rw
13+
csr_register,timer0_load,0x82001800,1,rw
14+
csr_register,timer0_reload,0x82001804,1,rw
15+
csr_register,timer0_en,0x82001808,1,rw
16+
csr_register,timer0_update_value,0x8200180c,1,rw
17+
csr_register,timer0_value,0x82001810,1,ro
18+
csr_register,timer0_ev_status,0x82001814,1,ro
19+
csr_register,timer0_ev_pending,0x82001818,1,rw
20+
csr_register,timer0_ev_enable,0x8200181c,1,rw
21+
csr_register,uart_rxtx,0x82002000,1,rw
22+
csr_register,uart_txfull,0x82002004,1,ro
23+
csr_register,uart_rxempty,0x82002008,1,ro
24+
csr_register,uart_ev_status,0x8200200c,1,ro
25+
csr_register,uart_ev_pending,0x82002010,1,rw
26+
csr_register,uart_ev_enable,0x82002014,1,rw
27+
csr_register,uart_txempty,0x82002018,1,ro
28+
csr_register,uart_rxfull,0x8200201c,1,ro
3329
constant,config_clock_frequency,50000000,,
3430
constant,config_cpu_reset_addr,0,,
3531
constant,config_cpu_type_femtorv,None,,
632 Bytes
Binary file not shown.
5.35 KB
Binary file not shown.
32 Bytes
Binary file not shown.
128 Bytes
Binary file not shown.

fpga/ulx3s_soc/firmware/wfg.c

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -53,37 +53,44 @@ void wfg_init(void)
5353
{
5454
//*(volatile int*)(WFG_BASE) = 0xDEADBEEF;
5555

56-
int sync_count = 16;
57-
int subcycle_count = 16;
56+
int core_sync_count = 16;
57+
int core_subcycle_count = 16;
58+
59+
int subcore_sync_count = 32;
60+
int subcore_subcycle_count = 16;
5861

5962
// Core
60-
wfg_set_register(0x1, 0x4, (sync_count << 0) | (subcycle_count << 8));
63+
wfg_set_register(0x1, 0x4, (core_sync_count << 0) | (core_subcycle_count << 8));
6164
wfg_set_register(0x1, 0x0, 1); // Enable
6265

63-
// Interconnect
64-
wfg_set_register(0x2, 0x4, 0); // Driver0
65-
wfg_set_register(0x2, 0x8, 1); // Driver1
66+
// Subcore
67+
wfg_set_register(0x2, 0x4, (subcore_sync_count << 0) | (subcore_subcycle_count << 8));
6668
wfg_set_register(0x2, 0x0, 1); // Enable
6769

68-
// Sine
70+
// Interconnect
71+
wfg_set_register(0x3, 0x4, 0); // Driver0
72+
wfg_set_register(0x3, 0x8, 1); // Driver1
6973
wfg_set_register(0x3, 0x0, 1); // Enable
7074

71-
// Mem
72-
wfg_set_register(0x4, 0x4, 0x4); // Start
73-
wfg_set_register(0x4, 0x8, 0xF); // End
74-
wfg_set_register(0x4, 0xC, 0x2); // Increment
75+
// Sine
7576
wfg_set_register(0x4, 0x0, 1); // Enable
77+
78+
// Mem
79+
wfg_set_register(0x5, 0x4, 0x4); // Start
80+
wfg_set_register(0x5, 0x8, 0xF); // End
81+
wfg_set_register(0x5, 0xC, 0x2); // Increment
82+
wfg_set_register(0x5, 0x0, 1); // Enable
7683

7784
// SPI
78-
wfg_set_register(0x5, 0x8, cnt); // Clock divider
79-
wfg_set_register(0x5, 0x4, (cpol<<0) | (lsbfirst<<1) | (dff<<2) | (sspol<<4));
80-
wfg_set_register(0x5, 0x0, 1); // Enable SPI
85+
wfg_set_register(0x6, 0x8, cnt); // Clock divider
86+
wfg_set_register(0x6, 0x4, (cpol<<0) | (lsbfirst<<1) | (dff<<2) | (sspol<<4));
87+
wfg_set_register(0x6, 0x0, 1); // Enable SPI
8188

8289
// Pattern
83-
wfg_set_register(0x6, 0x4, (0) | (8<<8) ); // Start:End
84-
wfg_set_register(0x6, 0x8, 0xFFFFFFFF); // Low bit
85-
wfg_set_register(0x6, 0xC, 0xFFFFFFFF); // High bit
86-
wfg_set_register(0x6, 0x0, 0xFFFFFFFF); // Enable all bits
90+
wfg_set_register(0x7, 0x4, (0) | (8<<8) ); // Start:End
91+
wfg_set_register(0x7, 0x8, 0xFFFFFFFF); // Low bit
92+
wfg_set_register(0x7, 0xC, 0xFFFFFFFF); // High bit
93+
wfg_set_register(0x7, 0x0, 0xFFFFFFFF); // Enable all bits
8794
}
8895

8996
#endif

fpga/ulx3s_soc/ulx3s_soc.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -164,13 +164,14 @@ def __init__(self,
164164
spi_cs = oled_ctl.csn
165165
spi_sdo = oled_spi.mosi
166166

167-
platform.add_source("../../../design/wfg_top/rtl/wfg_top.sv")
168-
platform.add_source("../../../design/wfg_core/rtl/*.sv")
169-
platform.add_source("../../../design/wfg_interconnect/rtl/*.sv")
170-
platform.add_source("../../../design/wfg_stim_sine/rtl/*.sv")
171-
platform.add_source("../../../design/wfg_stim_mem/rtl/*.sv")
172-
platform.add_source("../../../design/wfg_drive_spi/rtl/*.sv")
173-
platform.add_source("../../../design/wfg_drive_pat/rtl/*.sv")
167+
platform.add_source("../../design/wfg_top/rtl/wfg_top.sv")
168+
platform.add_source("../../design/wfg_core/rtl/*.sv")
169+
platform.add_source("../../design/wfg_subcore/rtl/*.sv")
170+
platform.add_source("../../design/wfg_interconnect/rtl/*.sv")
171+
platform.add_source("../../design/wfg_stim_sine/rtl/*.sv")
172+
platform.add_source("../../design/wfg_stim_mem/rtl/*.sv")
173+
platform.add_source("../../design/wfg_drive_spi/rtl/*.sv")
174+
platform.add_source("../../design/wfg_drive_pat/rtl/*.sv")
174175

175176
self.specials += Instance("wfg_top",
176177
i_io_wbs_clk = self.crg.cd_sys.clk,

0 commit comments

Comments
 (0)