Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Polara ASIC Chip Bring Up Merge #5

Open
wants to merge 160 commits into
base: openpiton_polara
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
160 commits
Select commit Hold shift + click to select a range
2bf4017
Adding Ara RTL to FPGA Protosyn flow
Aug 7, 2023
407ebb0
Adding Alveo U280 board to FPGA Protosyn flow
Aug 7, 2023
9d3e173
Include BD in Protosyn flow
Aug 11, 2023
0fbb74b
Update Polara BD for Protosyn
Aug 11, 2023
5d50d09
Add Alveo U280 config options and IPs
Aug 11, 2023
6c7e18b
Replaced Polara BD creation file
Aug 11, 2023
6ad340a
[FPGA] Update Alveo U280 constraints
Aug 14, 2023
958d0f6
[FPGA] Bug fixing on U280 flow
Aug 29, 2023
c81482f
[FPGA] Polara timing fix at 50MHz
Oct 9, 2023
be5c370
[FPGA] Fix latches in L2 and BRAM wrapper
Oct 31, 2023
fb3fc48
[FPGA] Update constraints
Oct 31, 2023
35c2c15
[FPGA] Update UART IP frequency config
Oct 31, 2023
39f3a51
Remove old U280 Polara top
Nov 14, 2023
d1c7d30
Merge branch 'openpiton_polara' of https://github.com/openhwgroup/cor…
Nov 14, 2023
04ceb37
[FPGA] Remove debug probes
Nov 14, 2023
bb7c54e
Merge PLIC CLINT to FPGA branch
Nov 27, 2023
bfc0755
Fixed PLIC bug
Nov 29, 2023
23afb75
Merge branch 'polara_plic_merge'
Dec 1, 2023
234ccb5
Fix merge conflicts PLIC CLINT
Nov 27, 2023
0c584d9
Fixed PLIC bug
Nov 29, 2023
0506888
Adding polara_bootrom
Dec 1, 2023
e23f216
[FPGA] PLIC/CLINT Integration
Dec 6, 2023
1eaa43f
[FPGA] Update ariane wrapper
Dec 11, 2023
8547743
[FPGA] Fix plic flist and latch
Dec 14, 2023
1881ea4
[FPGA] Add register to interrupt signals in chip, better timing
Jan 4, 2024
a27f84e
Merge branch 'openpiton_polara_fpga' into polara_fpga_plic
Apr 25, 2024
86ba143
Only alveo board had block design defines.
rrpsid May 17, 2024
a52cbfc
Added files necessary for chipset generation.
rrpsid May 17, 2024
6256798
Modified constraints to pass implementation for command: protosyn --b…
rrpsid May 21, 2024
2074658
Added prints and support for case of genesys2 chipset generation.
rrpsid May 21, 2024
2bdda80
Debugging OLED wrapper to get it to display
rrpsid May 23, 2024
05c1be9
Start of work on getting UART boot to work with Genesys2 board.
rrpsid May 23, 2024
b498231
oled_wrapper back to original configuration.
rrpsid May 23, 2024
89750e3
Revert of oled_wrapper back to 2074658326ced5837ee8a00be3acee7dc48167ff
rrpsid May 23, 2024
e725814
Modifications to permit bitstream generation on genesys2 for: protosy…
rrpsid May 29, 2024
0a9adf2
Initial revision
rrpsid May 29, 2024
1a2a4d5
Added ip_cores to synthesize chip on VC707
rrpsid May 29, 2024
9e4a182
Adding option to generate chip for VC707
rrpsid May 29, 2024
c56595e
Clearer error message.
rrpsid May 29, 2024
cd8ccbf
noc_axilite_bridge.v necessary for vc707 chip targetting.
rrpsid May 30, 2024
bed7aec
Copied from piton/design/chip/chip_bridge/xilinx/genesys2 allows to p…
rrpsid Jun 4, 2024
03bfd2b
Added comment for clarity.
rrpsid Jun 4, 2024
df3e913
Support of new RTL define POLARA_VC707_CHIP (not tested yet).
rrpsid Jun 4, 2024
a1c7a8a
Corrected syntax.
rrpsid Jun 4, 2024
89305cd
Added missing ifdef with POLARA_VC707_CHIP define.
rrpsid Jun 6, 2024
686d1b6
Constraints for vc707 implementation of 1 core of polara without FP o…
rrpsid Jun 6, 2024
23d616c
Generating chip on vc707 with 50MHz clock.
rrpsid Jun 6, 2024
53a7b3c
Modification so pitonstream can compile c code.
rrpsid Jun 6, 2024
155af00
For vc707 chip target.
rrpsid Jun 6, 2024
f10e5d1
back to original OLED string.
rrpsid Jun 6, 2024
8f84599
Genesys2 vadj to 1.8V to match vc707.
rrpsid Jun 6, 2024
dd19513
Fixing protosyn merge.
rrpsid Jun 6, 2024
f737f15
Added comments for debugging.
rrpsid Jun 10, 2024
7d07b27
Chipset frequency changed for genesys2.
rrpsid Jun 10, 2024
50e28a9
Needed if want axi4 mem for genesys2 chipset.
rrpsid Jun 11, 2024
ab07852
Added --gen2chipset option. Will be for specific features for the chi…
rrpsid Jun 12, 2024
620d06c
Support for POLARA_GEN2_CHIPSET define.
rrpsid Jun 12, 2024
29e5a77
Initial revision.
rrpsid Jun 12, 2024
5ecbc62
Fixed whitespace bug.
rrpsid Jun 12, 2024
bd64ab3
Started to add mig_afifo and noc_axi4_bridge.
rrpsid Jun 12, 2024
7f6b2a7
Initial revision for adding automatic creation of block design for ge…
rrpsid Jun 13, 2024
a52e58f
Added bd instance and started connecting it to the rest of the mc uni…
rrpsid Jun 14, 2024
00aac52
Finalized tcl scripts to regenerate block design for memory controlle…
rrpsid Jun 14, 2024
51f852f
Fixes so that MIG in gen2 polara block design builds as expected.
rrpsid Jun 17, 2024
50b6ee7
Completed internal connections. Added I/O ports. Added reset logic.
rrpsid Jun 18, 2024
980df26
DDR3 of gen2_polara_top connected to I/Os.
rrpsid Jun 18, 2024
39ea5bf
Uncommented inclusion of gen2 chipset BD files.
rrpsid Jun 18, 2024
5de8066
Added missing I/Os.
rrpsid Jun 18, 2024
8c71ec8
Adding I/Os for POLARA GEN2 CHIPSET.
rrpsid Jun 18, 2024
3e054f5
Only use POLARA gen2 top if generating polara gen2 chipset.
rrpsid Jun 18, 2024
683373f
Added support for single ended clock of MIG.
rrpsid Jun 21, 2024
d56d7b3
BD script for SE clock of MIG.
rrpsid Jun 21, 2024
bffd73c
Missing connections of ui_clk_sync_rst and init_calib_complete from B…
rrpsid Jun 21, 2024
e689146
Routed chipset_rst_n_ff to leds[3] for debugging.
rrpsid Jun 21, 2024
22fc6a0
piton_prsnt_n to btnc of the genesys2 to allow control of it.
rrpsid Jun 21, 2024
21c502f
Tcl script to test jtag-axi core validated.
rrpsid Jun 25, 2024
6cdcb57
Modified DDR3 base address in BD to match what NOC uses.
rrpsid Jun 28, 2024
9ecc4ac
Merging commits
rrpsid Jun 28, 2024
1020dee
prints did not work.
rrpsid Jul 2, 2024
d12d6e4
Corrections to reflect actual implementation.
rrpsid Jul 2, 2024
6c6f522
FMC pins to match Polara daughter card.
rrpsid Jul 3, 2024
c9459a2
Fix for MIG with AXI interface for NOC<->AXI address translations.
rrpsid Jul 3, 2024
cd0384c
Bitstream generation passes for Polara board routing.
rrpsid Jul 3, 2024
b836eb6
Added GPIO bus in block design to control ASIC chip inputs (mostly FL…
rrpsid Jul 3, 2024
aad5e96
Merging branches.
rrpsid Jul 3, 2024
7ec9eff
Added support of FLL and other control signals for the Polara ASIC chip.
rrpsid Jul 4, 2024
551a07c
Restored to initial content, set PITON_CHIP_FPGA.
rrpsid Jul 5, 2024
f2021b9
Constraints for 50MHz vc707chip to interface gen2 chipset for Polara.
rrpsid Jul 5, 2024
8624060
No need for chipset_prsnt_n for vc707 polara chip emulation.
rrpsid Jul 8, 2024
4fe1a5e
block.list for 50MHz vc707 polara chip.
rrpsid Jul 8, 2024
ba5f21c
Extra I/Os for the Polara chip.
rrpsid Jul 8, 2024
97e1139
block.list chipset on genesys2 to match frequency of vc707 chip for p…
rrpsid Jul 8, 2024
1df021b
Comments for clarity
rrpsid Jul 12, 2024
41faf51
Corrections to constraints for Polara vc707 chip emulation to match a…
rrpsid Jul 12, 2024
ab3e652
Adding FMC_PRSNT monitoring on LED.
rrpsid Jul 12, 2024
8a309f2
Corrected direction of fll_lock and fll_clkdiv.
rrpsid Jul 15, 2024
6018132
Frequency of chipset 50MHz. Needed to regenerate mmcm and uart IPs.
rrpsid Jul 18, 2024
26436ca
modifications to remove piton board specific I/Os when doing polara c…
rrpsid Jul 18, 2024
0aee3aa
New base address.
rrpsid Jul 18, 2024
fc3a706
Initial revision (jtag_axi_commands.tcl used for Polara ASIC testing).
rrpsid Jul 26, 2024
12e5df1
Added comments for clarity.
rrpsid Jul 26, 2024
51e5536
Adding dbg0 signal for genesys2 chipset.
rrpsid Jul 30, 2024
0bcb994
Added FLL test commands.
rrpsid Jul 30, 2024
0cd394a
Added debug signals.
rrpsid Jul 31, 2024
bc7344e
Commands to get to hello world
rrpsid Jul 31, 2024
50d37a9
Added ILA on the NOC's axi bus.
rrpsid Aug 6, 2024
8b74afa
Removed unexisting signal.
rrpsid Aug 6, 2024
f4d2463
update constraints for polara daugther board
rrpsid Aug 6, 2024
04f873c
Merge fix to have ILA and gen2 chipset bd.
rrpsid Aug 6, 2024
d3040e6
Start of adding option for a vc707 chipset.
rrpsid Aug 7, 2024
3de7be9
Merge branch 'genesys2_chipset_target' of github.com:elisabethumblet/…
rrpsid Aug 7, 2024
07dac1e
Initial revision.
rrpsid Aug 7, 2024
242675d
Distinct port for io_clk on the mmcm.
rrpsid Aug 7, 2024
ab40724
Merge branch 'genesys2_chipset_target' of github.com:elisabethumblet/…
rrpsid Aug 7, 2024
b8af58b
Start of work to have two phase options for io_clk
rrpsid Aug 7, 2024
c89ddd8
Merge branch 'genesys2_chipset_target' of github.com:elisabethumblet/…
rrpsid Aug 7, 2024
0500746
Added comment
rrpsid Aug 7, 2024
155be6e
Ability to choose at run time between 2 io_clk phases.
rrpsid Aug 7, 2024
0dffe62
Added protosyn option --noctest to instantiate chipset_impl_noc_power…
rrpsid Aug 9, 2024
70c2685
Fixing chipset_impl_noc_power_test instanciation
rrpsid Aug 9, 2024
746c746
Fixing signal types and fixed timing issue
rrpsid Aug 9, 2024
8d922f3
Merging chipset.v
rrpsid Aug 9, 2024
461f30d
Fixing chipset_impl_noc_power_test instanciation
rrpsid Aug 9, 2024
220190b
Merge
rrpsid Aug 9, 2024
ce9e3e5
Removed multi phase io clk chooser.
rrpsid Aug 14, 2024
c24aa39
Start of revision of debugged nets.
rrpsid Aug 14, 2024
e8cc30d
Updated ILA debug nets to assure coherence between every observed sig…
rrpsid Aug 15, 2024
b297b5d
MMCM generates io_clk and not io_clk
rrpsid Aug 19, 2024
ee1edea
Took out ethernet option for Polara chipset.
rrpsid Aug 19, 2024
c6b4cda
Initial revision.
rrpsid Aug 19, 2024
3ee8b4f
Initial revision. Script to generate BD used for polara loopback.
rrpsid Aug 20, 2024
07fb3a3
Completing merge
rrpsid Aug 20, 2024
0c9cfa7
Completed Polara loopback module.
rrpsid Aug 21, 2024
5d25839
Modified files to include loopback module in flow. --poloopback optio…
rrpsid Aug 21, 2024
1be197f
Added option --poloopback to protoysyn.
rrpsid Aug 22, 2024
5f1f14b
Commenting unused ports for constraints
rrpsid Aug 22, 2024
ecf3b9b
Merge branch 'genesys2_chipset_target' of github.com:elisabethumblet/…
rrpsid Aug 22, 2024
4a62a1e
Corrected chipID in order to get bounceback and FBITS adjusted to wes…
rrpsid Aug 23, 2024
884a59a
Initial revision.
rrpsid Sep 16, 2024
dbb80cb
Now using switches 1 and 0 to control what channel the loopback modul…
rrpsid Sep 16, 2024
16e767b
Added jtag commands for testing polara ASIC with loopback module.
rrpsid Sep 16, 2024
9bd27e9
Separated packet generating logic into is own module.
rrpsid Sep 23, 2024
d5d97ef
Initial revision, module for generating loopback packets.
rrpsid Sep 23, 2024
490be2e
Initial revision, testbench for generating loopback packets.
rrpsid Sep 23, 2024
ab69407
Testing what happens if noc is not ready
rrpsid Sep 23, 2024
5b69341
Modifications to allow bitstream generation.
rrpsid Sep 30, 2024
5137f70
Inverted channel pins coming from ASIC
rrpsid Sep 30, 2024
91d8005
Merge branch 'genesys2_chipset_target' of github.com:elisabethumblet/…
rrpsid Sep 30, 2024
6c4f9dc
Added FLL Loopback flow.
rrpsid Oct 18, 2024
c8cf695
ILA for loopback mode
rrpsid Oct 18, 2024
5ca4ab2
Added I/O constraints for max delays
rrpsid Oct 18, 2024
94d14a5
Added a synchronizer for the reset since the debouncers required a sy…
rrpsid Oct 21, 2024
117c490
Added commands to run system fully synchronous
rrpsid Nov 3, 2024
fb14d65
Fixes to allow bitstream generation
rrpsid Nov 3, 2024
4fb8de8
Fixes to allow bitstream generation for 8MHz chipset loopback variation
rrpsid Nov 3, 2024
c1b12f5
Connecting switch 3 to go signal. And now sending on one edge, receiv…
rrpsid Nov 11, 2024
a4bc52e
Send a single loopback packet before the marching 1s
rrpsid Nov 25, 2024
abf8a5a
Changes to ILA so that normal chipset can run
rrpsid Nov 25, 2024
21e014d
Removed ILA on DDR since vivado had trouble synthesizing the chipset …
rrpsid Nov 25, 2024
104a69a
Merged genesys2_chipset_target branch with OpenHW openpiton_polara br…
rrpsid Dec 18, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

46 changes: 39 additions & 7 deletions piton/design/chip/rtl/chip.v.pyv
Original file line number Diff line number Diff line change
Expand Up @@ -34,14 +34,17 @@ module chip(
input impsel2,
`endif // endif PITON_CHIP_FPGA

`ifdef PITON_FPGA_CLKS_GEN
`ifdef POLARA_VC707_CHIP
input core_ref_clk,
input io_clk,
`elsif PITON_FPGA_CLKS_GEN
input clk_osc_p,
input clk_osc_n,
`else // ifndef PITON_FPGA_CLKS_GEN
// Input clocks
input core_ref_clk,
input io_clk,
`endif // endif PITON_FPGA_CLKS_GEN
`endif // endif POLARA_VC707_CHIP, PITON_FPGA_CLKS_GEN

// Resets
// reset is assumed to be asynchronous
Expand Down Expand Up @@ -83,14 +86,27 @@ module chip(
output piton_prsnt_n,
output piton_ready_n,

// No need for the vc707 chip that works with the genesys2 chipset (Polara project)
`ifndef POLARA_VC707_CHIP
input chipset_prsnt_n,
`endif // endif POLARA_VC707_CHIP

output [7:0] leds,

`endif // endif PITON_CHIP_FPGA

`ifndef PITON_NO_CHIP_BRIDGE
// For FPGA implementations, we convert to differential and source synchronous
`ifdef PITON_CHIP_FPGA
`ifdef POLARA_VC707_CHIP
// Virtual channel credit-based off-chip interface
input [31:0] intf_chip_data,
input [1:0] intf_chip_channel,
output [2:0] intf_chip_credit_back,

output [31:0] chip_intf_data,
output [1:0] chip_intf_channel,
input [2:0] chip_intf_credit_back
`elsif PITON_CHIP_FPGA
output chip_intf_clk_p,
output chip_intf_clk_n,
input intf_chip_clk_p,
Expand Down Expand Up @@ -118,7 +134,7 @@ module chip(
output [31:0] chip_intf_data,
output [1:0] chip_intf_channel,
input [2:0] chip_intf_credit_back
`endif // endif PITON_CHIP_FPGA
`endif // endif POLARA_VC707_CHIP, PITON_CHIP_FPGA
`else // ifdef PITON_NO_CHIP_BRIDGE
output processor_offchip_noc1_valid,
output [`NOC_DATA_WIDTH-1:0] processor_offchip_noc1_data,
Expand Down Expand Up @@ -185,6 +201,7 @@ module chip(
wire oram_dummy_gen;
`endif // endif PITON_CHIP_FPGA
// Same for generating clocks
`ifndef POLARA_VC707_CHIP
`ifdef PITON_FPGA_CLKS_GEN
wire core_ref_clk;

Expand All @@ -204,6 +221,7 @@ module chip(
wire [2:0] chip_intf_credit_back;
`endif // endif PITON_CHIP_FPGA
`endif // endif PITON_NO_CHIP_BRIDGE
`endif // endif POLARA_VC707_CHIP

// OCI internal wires

Expand Down Expand Up @@ -352,6 +370,9 @@ module chip(
`endif // ifdef PITON_RV64_PLIC
`endif // ifdef PITON_RV64_PLATFORM

reg [`PITON_NUM_TILES-1:0] timer_irq_reg_i;
reg [`PITON_NUM_TILES*2-1:0] irq_reg_i;

// Tiles JTAG interface
wire jtag_tiles_ucb_val;
wire [`UCB_BUS_WIDTH-1:0] jtag_tiles_ucb_data;
Expand Down Expand Up @@ -538,7 +559,9 @@ module chip(
assign piton_ready_n = ~rst_n_inter_sync;

`ifdef PITON_FPGA_CLKS_GEN
`ifndef POLARA_VC707_CHIP
assign leds[0] = mmcm_locked;
`endif // endif POLARA_VC707_CHIP
`else // ifndef PITON_FPGA_CLKS_GEN
assign leds[0] = 1'b1;
`endif // endif PITON_FPGA_CLKS_GEN
Expand Down Expand Up @@ -667,6 +690,7 @@ module chip(
/////////////////////////

// Need to generate clocks from MMCM for standalone chip FPGA synthesis
`ifndef POLARA_VC707_CHIP
`ifdef PITON_FPGA_CLKS_GEN
// Generate core_ref_clk
clk_mmcm_chip clk_mmcm (
Expand All @@ -679,7 +703,9 @@ module chip(
.core_ref_clk(core_ref_clk)
);
`endif // endif PITON_FPGA_CLKS_GEN
`endif // endif POLARA_VC707_CHIP

`ifndef POLARA_VC707_CHIP
`ifndef PITON_NO_CHIP_BRIDGE
`ifdef PITON_CHIP_FPGA
// Generate io_clk from input
Expand Down Expand Up @@ -728,6 +754,7 @@ module chip(
);
`endif // endif PITON_CHIP_FPGA
`endif // endif PITON_NO_CHIP_BRIDGE
`endif // endif POLARA_VC707_CHIP

// Off-Chip Interface Block
// Removed, the top level I/Os are in the backend dir
Expand Down Expand Up @@ -1084,11 +1111,11 @@ module chip(
,.unavailable_o ( unavailable[_FLAT_ID_] )
`endif // ifdef PITON_RV64_DEBUGUNIT
`ifdef PITON_RV64_CLINT
,.timer_irq_i ( timer_irq[_FLAT_ID_] )
,.timer_irq_i ( timer_irq_reg_i[_FLAT_ID_] )
,.ipi_i ( ipi[_FLAT_ID_] )
`endif // ifdef PITON_RV64_CLINT
`ifdef PITON_RV64_PLIC
,.irq_i ( irq[_FLAT_ID_*2 +: 2] )
,.irq_i ( irq_reg_i[_FLAT_ID_*2 +: 2] )
`endif // ifdef PITON_RV64_PLIC
`endif // ifdef PITON_RV64_PLATFORM
,
Expand Down Expand Up @@ -1278,12 +1305,17 @@ pmesh_rvic pmesh_rvic (
.unavailable_i ( unavailable ),
.tck_i ( jtag_clk_inter ),
.tms_i ( jtag_modesel_inter ),
.trst_ni ( jtag_rst_l_inter_sync ),
.trst_ni ( jtag_rst_l_inter_sync ),
.td_i ( jtag_datain_inter ),
.td_o ( jtag_dataout_inter ),
.tdo_oe_o ( ) // not used
);

always @(posedge clk_muxed) begin
timer_irq_reg_i <= timer_irq;
irq_reg_i <= irq;
end

endmodule

`endif
Loading