mirror of
https://github.com/openhwgroup/cvw
synced 2025-02-11 06:05:49 +00:00
Maybe improvements to fpga synthesis.
This commit is contained in:
parent
fc80bf1251
commit
4d56b3ca96
@ -33,7 +33,7 @@ IP_VCU: $(dst)/sysrst.log \
|
|||||||
$(dst)/ahbaxibridge.log
|
$(dst)/ahbaxibridge.log
|
||||||
IP_Arty: $(dst)/sysrst.log \
|
IP_Arty: $(dst)/sysrst.log \
|
||||||
MEM_Arty \
|
MEM_Arty \
|
||||||
$(dst)/mmcm.log \
|
$(dst)/xlnx_mmcm.log \
|
||||||
$(dst)/clkconverter.log \
|
$(dst)/clkconverter.log \
|
||||||
$(dst)/ahbaxibridge.log
|
$(dst)/ahbaxibridge.log
|
||||||
#$(dst)/xlnx_axi_crossbar.log \
|
#$(dst)/xlnx_axi_crossbar.log \
|
||||||
|
@ -5,6 +5,11 @@ set boardName $::env(XILINX_BOARD)
|
|||||||
set boardSubName [lindex [split ${boardName} :] 1]
|
set boardSubName [lindex [split ${boardName} :] 1]
|
||||||
set board $::env(board)
|
set board $::env(board)
|
||||||
|
|
||||||
|
set partNumber xc7a100tcsg324-1
|
||||||
|
set boardName digilentinc.com:arty-a7-100:part0:1.1
|
||||||
|
set boardSubName arty-a7-100
|
||||||
|
set board ArtyA7
|
||||||
|
|
||||||
set ipName WallyFPGA
|
set ipName WallyFPGA
|
||||||
|
|
||||||
create_project $ipName . -force -part $partNumber
|
create_project $ipName . -force -part $partNumber
|
||||||
@ -23,15 +28,15 @@ if {$board=="ArtyA7"} {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# read in ip
|
# read in ip
|
||||||
read_ip IP/sysrst.srcs/sources_1/ip/sysrst/sysrst.xci
|
import_ip IP/sysrst.srcs/sources_1/ip/sysrst/sysrst.xci
|
||||||
read_ip IP/ahbaxibridge.srcs/sources_1/ip/ahbaxibridge/ahbaxibridge.xci
|
import_ip IP/ahbaxibridge.srcs/sources_1/ip/ahbaxibridge/ahbaxibridge.xci
|
||||||
read_ip IP/clkconverter.srcs/sources_1/ip/clkconverter/clkconverter.xci
|
import_ip IP/clkconverter.srcs/sources_1/ip/clkconverter/clkconverter.xci
|
||||||
|
|
||||||
if {$board=="ArtyA7"} {
|
if {$board=="ArtyA7"} {
|
||||||
read_ip IP/ddr3.srcs/sources_1/ip/ddr3/ddr3.xci
|
import_ip IP/ddr3.srcs/sources_1/ip/ddr3/ddr3.xci
|
||||||
read_ip IP/mmcm.srcs/sources_1/ip/mmcm/mmcm.xci
|
import_ip IP/mmcm.srcs/sources_1/ip/mmcm/mmcm.xci
|
||||||
} else {
|
} else {
|
||||||
read_ip IP/ddr4.srcs/sources_1/ip/ddr4/ddr4.xci
|
import_ip IP/ddr4.srcs/sources_1/ip/ddr4/ddr4.xci
|
||||||
}
|
}
|
||||||
|
|
||||||
# read in all other rtl
|
# read in all other rtl
|
||||||
@ -41,13 +46,6 @@ read_verilog [glob -type f ../../addins/ahbsdc/sdc/*.v]
|
|||||||
|
|
||||||
set_property include_dirs {../src/CopiedFiles_do_not_add_to_repo/config ../../config/shared ../../addins/ahbsdc/sdc} [current_fileset]
|
set_property include_dirs {../src/CopiedFiles_do_not_add_to_repo/config ../../config/shared ../../addins/ahbsdc/sdc} [current_fileset]
|
||||||
|
|
||||||
if {$board=="ArtyA7"} {
|
|
||||||
add_files -fileset constrs_1 -norecurse ../constraints/constraints-$board.xdc
|
|
||||||
set_property PROCESSING_ORDER NORMAL [get_files ../constraints/constraints-$board.xdc]
|
|
||||||
} else {
|
|
||||||
add_files -fileset constrs_1 -norecurse ../constraints/constraints-$boardSubName.xdc
|
|
||||||
set_property PROCESSING_ORDER NORMAL [get_files ../constraints/constraints-$boardSubName.xdc]
|
|
||||||
}
|
|
||||||
|
|
||||||
# define top level
|
# define top level
|
||||||
set_property top fpgaTop [current_fileset]
|
set_property top fpgaTop [current_fileset]
|
||||||
@ -57,6 +55,14 @@ update_compile_order -fileset sources_1
|
|||||||
exec mkdir -p reports/
|
exec mkdir -p reports/
|
||||||
exec rm -rf reports/*
|
exec rm -rf reports/*
|
||||||
|
|
||||||
|
if {$board=="ArtyA7"} {
|
||||||
|
add_files -fileset constrs_1 -norecurse ../constraints/constraints-$board.xdc
|
||||||
|
set_property PROCESSING_ORDER NORMAL [get_files ../constraints/constraints-$board.xdc]
|
||||||
|
} else {
|
||||||
|
add_files -fileset constrs_1 -norecurse ../constraints/constraints-$boardSubName.xdc
|
||||||
|
set_property PROCESSING_ORDER NORMAL [get_files ../constraints/constraints-$boardSubName.xdc]
|
||||||
|
}
|
||||||
|
|
||||||
report_compile_order -constraints > reports/compile_order.rpt
|
report_compile_order -constraints > reports/compile_order.rpt
|
||||||
|
|
||||||
# this is elaboration not synthesis.
|
# this is elaboration not synthesis.
|
||||||
|
@ -29,183 +29,183 @@
|
|||||||
import cvw::*;
|
import cvw::*;
|
||||||
|
|
||||||
module fpgaTop #(parameter logic RVVI_SYNTH_SUPPORTED = 0)
|
module fpgaTop #(parameter logic RVVI_SYNTH_SUPPORTED = 0)
|
||||||
(input default_100mhz_clk,
|
(input logic default_100mhz_clk,
|
||||||
(* mark_debug = "true" *) input resetn,
|
input logic resetn,
|
||||||
input south_reset,
|
input logic south_reset,
|
||||||
|
|
||||||
// GPIO signals
|
// GPIO signals
|
||||||
input [3:0] GPI,
|
input logic [3:0] GPI,
|
||||||
output [4:0] GPO,
|
output logic [4:0] GPO,
|
||||||
|
|
||||||
// UART Signals
|
// UART Signals
|
||||||
input UARTSin,
|
input logic UARTSin,
|
||||||
output UARTSout,
|
output logic UARTSout,
|
||||||
|
|
||||||
// SDC Signals connecting to an SPI peripheral
|
// SDC Signals connecting to an SPI peripheral
|
||||||
input SDCIn,
|
input logic SDCIn,
|
||||||
output SDCCLK,
|
output logic SDCCLK,
|
||||||
output SDCCmd,
|
output logic SDCCmd,
|
||||||
output SDCCS,
|
output logic SDCCS,
|
||||||
input SDCCD,
|
input logic SDCCD,
|
||||||
input SDCWP,
|
input logic SDCWP,
|
||||||
/*
|
/*
|
||||||
* Ethernet: 100BASE-T MII
|
* Ethernet: 100BASE-T MII
|
||||||
*/
|
*/
|
||||||
output phy_ref_clk,
|
output logic phy_ref_clk,
|
||||||
input phy_rx_clk,
|
input logic phy_rx_clk,
|
||||||
input [3:0] phy_rxd,
|
input logic [3:0] phy_rxd,
|
||||||
input phy_rx_dv,
|
input logic phy_rx_dv,
|
||||||
input phy_rx_er,
|
input logic phy_rx_er,
|
||||||
input phy_tx_clk,
|
input logic phy_tx_clk,
|
||||||
output [3:0] phy_txd,
|
output logic [3:0] phy_txd,
|
||||||
output phy_tx_en,
|
output logic phy_tx_en,
|
||||||
input phy_col, // nc
|
input logic phy_col, // nc
|
||||||
input phy_crs, // nc
|
input logic phy_crs, // nc
|
||||||
output phy_reset_n,
|
output logic phy_reset_n,
|
||||||
|
|
||||||
inout [15:0] ddr3_dq,
|
inout logic [15:0] ddr3_dq,
|
||||||
inout [1:0] ddr3_dqs_n,
|
inout logic [1:0] ddr3_dqs_n,
|
||||||
inout [1:0] ddr3_dqs_p,
|
inout logic [1:0] ddr3_dqs_p,
|
||||||
output [13:0] ddr3_addr,
|
output logic [13:0] ddr3_addr,
|
||||||
output [2:0] ddr3_ba,
|
output logic [2:0] ddr3_ba,
|
||||||
output ddr3_ras_n,
|
output logic ddr3_ras_n,
|
||||||
output ddr3_cas_n,
|
output logic ddr3_cas_n,
|
||||||
output ddr3_we_n,
|
output logic ddr3_we_n,
|
||||||
output ddr3_reset_n,
|
output logic ddr3_reset_n,
|
||||||
output [0:0] ddr3_ck_p,
|
output logic [0:0] ddr3_ck_p,
|
||||||
output [0:0] ddr3_ck_n,
|
output logic [0:0] ddr3_ck_n,
|
||||||
output [0:0] ddr3_cke,
|
output logic [0:0] ddr3_cke,
|
||||||
output [0:0] ddr3_cs_n,
|
output logic [0:0] ddr3_cs_n,
|
||||||
output [1:0] ddr3_dm,
|
output logic [1:0] ddr3_dm,
|
||||||
output [0:0] ddr3_odt
|
output logic [0:0] ddr3_odt
|
||||||
);
|
);
|
||||||
|
|
||||||
// MMCM Signals
|
// MMCM Signals
|
||||||
wire CPUCLK;
|
logic CPUCLK;
|
||||||
wire c0_ddr4_ui_clk_sync_rst;
|
logic c0_ddr4_ui_clk_sync_rst;
|
||||||
wire bus_struct_reset;
|
logic bus_struct_reset;
|
||||||
wire peripheral_reset;
|
logic peripheral_reset;
|
||||||
wire interconnect_aresetn;
|
logic interconnect_aresetn;
|
||||||
wire peripheral_aresetn;
|
logic peripheral_aresetn;
|
||||||
wire mb_reset;
|
logic mb_reset;
|
||||||
|
|
||||||
// AHB Signals from Wally
|
// AHB Signals from Wally
|
||||||
wire HCLKOpen;
|
logic HCLKOpen;
|
||||||
wire HRESETnOpen;
|
logic HRESETnOpen;
|
||||||
wire [63:0] HRDATAEXT;
|
logic [63:0] HRDATAEXT;
|
||||||
wire HREADYEXT;
|
logic HREADYEXT;
|
||||||
wire HRESPEXT;
|
logic HRESPEXT;
|
||||||
wire HSELEXT;
|
logic HSELEXT;
|
||||||
wire [55:0] HADDR;
|
logic [55:0] HADDR;
|
||||||
wire [63:0] HWDATA;
|
logic [63:0] HWDATA;
|
||||||
wire [64/8-1:0] HWSTRB;
|
logic [64/8-1:0] HWSTRB;
|
||||||
wire HWRITE;
|
logic HWRITE;
|
||||||
wire [2:0] HSIZE;
|
logic [2:0] HSIZE;
|
||||||
wire [2:0] HBURST;
|
logic [2:0] HBURST;
|
||||||
wire [1:0] HTRANS;
|
logic [1:0] HTRANS;
|
||||||
wire HREADY;
|
logic HREADY;
|
||||||
wire [3:0] HPROT;
|
logic [3:0] HPROT;
|
||||||
wire HMASTLOCK;
|
logic HMASTLOCK;
|
||||||
|
|
||||||
// GPIO Signals
|
// GPIO Signals
|
||||||
wire [31:0] GPIOIN, GPIOOUT, GPIOEN;
|
logic [31:0] GPIOIN, GPIOOUT, GPIOEN;
|
||||||
|
|
||||||
// AHB to AXI Bridge Signals
|
// AHB to AXI Bridge Signals
|
||||||
wire [3:0] m_axi_awid;
|
logic [3:0] m_axi_awid;
|
||||||
wire [7:0] m_axi_awlen;
|
logic [7:0] m_axi_awlen;
|
||||||
wire [2:0] m_axi_awsize;
|
logic [2:0] m_axi_awsize;
|
||||||
wire [1:0] m_axi_awburst;
|
logic [1:0] m_axi_awburst;
|
||||||
wire [3:0] m_axi_awcache;
|
logic [3:0] m_axi_awcache;
|
||||||
wire [31:0] m_axi_awaddr;
|
logic [31:0] m_axi_awaddr;
|
||||||
wire [2:0] m_axi_awprot;
|
logic [2:0] m_axi_awprot;
|
||||||
wire m_axi_awvalid;
|
logic m_axi_awvalid;
|
||||||
wire m_axi_awready;
|
logic m_axi_awready;
|
||||||
wire m_axi_awlock;
|
logic m_axi_awlock;
|
||||||
wire [63:0] m_axi_wdata;
|
logic [63:0] m_axi_wdata;
|
||||||
wire [7:0] m_axi_wstrb;
|
logic [7:0] m_axi_wstrb;
|
||||||
wire m_axi_wlast;
|
logic m_axi_wlast;
|
||||||
wire m_axi_wvalid;
|
logic m_axi_wvalid;
|
||||||
wire m_axi_wready;
|
logic m_axi_wready;
|
||||||
wire [3:0] m_axi_bid;
|
logic [3:0] m_axi_bid;
|
||||||
wire [1:0] m_axi_bresp;
|
logic [1:0] m_axi_bresp;
|
||||||
wire m_axi_bvalid;
|
logic m_axi_bvalid;
|
||||||
wire m_axi_bready;
|
logic m_axi_bready;
|
||||||
wire [3:0] m_axi_arid;
|
logic [3:0] m_axi_arid;
|
||||||
wire [7:0] m_axi_arlen;
|
logic [7:0] m_axi_arlen;
|
||||||
wire [2:0] m_axi_arsize;
|
logic [2:0] m_axi_arsize;
|
||||||
wire [1:0] m_axi_arburst;
|
logic [1:0] m_axi_arburst;
|
||||||
wire [2:0] m_axi_arprot;
|
logic [2:0] m_axi_arprot;
|
||||||
wire [3:0] m_axi_arcache;
|
logic [3:0] m_axi_arcache;
|
||||||
wire m_axi_arvalid;
|
logic m_axi_arvalid;
|
||||||
wire [31:0] m_axi_araddr;
|
logic [31:0] m_axi_araddr;
|
||||||
wire m_axi_arlock;
|
logic m_axi_arlock;
|
||||||
wire m_axi_arready;
|
logic m_axi_arready;
|
||||||
wire [3:0] m_axi_rid;
|
logic [3:0] m_axi_rid;
|
||||||
wire [63:0] m_axi_rdata;
|
logic [63:0] m_axi_rdata;
|
||||||
wire [1:0] m_axi_rresp;
|
logic [1:0] m_axi_rresp;
|
||||||
wire m_axi_rvalid;
|
logic m_axi_rvalid;
|
||||||
wire m_axi_rlast;
|
logic m_axi_rlast;
|
||||||
wire m_axi_rready;
|
logic m_axi_rready;
|
||||||
|
|
||||||
// AXI Signals going out of Clock Converter
|
// AXI Signals going out of Clock Converter
|
||||||
wire [3:0] BUS_axi_arregion;
|
logic [3:0] BUS_axi_arregion;
|
||||||
wire [3:0] BUS_axi_arqos;
|
logic [3:0] BUS_axi_arqos;
|
||||||
wire [3:0] BUS_axi_awregion;
|
logic [3:0] BUS_axi_awregion;
|
||||||
wire [3:0] BUS_axi_awqos;
|
logic [3:0] BUS_axi_awqos;
|
||||||
wire [3:0] BUS_axi_awid;
|
logic [3:0] BUS_axi_awid;
|
||||||
wire [7:0] BUS_axi_awlen;
|
logic [7:0] BUS_axi_awlen;
|
||||||
wire [2:0] BUS_axi_awsize;
|
logic [2:0] BUS_axi_awsize;
|
||||||
wire [1:0] BUS_axi_awburst;
|
logic [1:0] BUS_axi_awburst;
|
||||||
wire [3:0] BUS_axi_awcache;
|
logic [3:0] BUS_axi_awcache;
|
||||||
wire [31:0] BUS_axi_awaddr;
|
logic [31:0] BUS_axi_awaddr;
|
||||||
wire [2:0] BUS_axi_awprot;
|
logic [2:0] BUS_axi_awprot;
|
||||||
wire BUS_axi_awvalid;
|
logic BUS_axi_awvalid;
|
||||||
wire BUS_axi_awready;
|
logic BUS_axi_awready;
|
||||||
wire BUS_axi_awlock;
|
logic BUS_axi_awlock;
|
||||||
wire [63:0] BUS_axi_wdata;
|
logic [63:0] BUS_axi_wdata;
|
||||||
wire [7:0] BUS_axi_wstrb;
|
logic [7:0] BUS_axi_wstrb;
|
||||||
wire BUS_axi_wlast;
|
logic BUS_axi_wlast;
|
||||||
wire BUS_axi_wvalid;
|
logic BUS_axi_wvalid;
|
||||||
wire BUS_axi_wready;
|
logic BUS_axi_wready;
|
||||||
wire [3:0] BUS_axi_bid;
|
logic [3:0] BUS_axi_bid;
|
||||||
wire [1:0] BUS_axi_bresp;
|
logic [1:0] BUS_axi_bresp;
|
||||||
wire BUS_axi_bvalid;
|
logic BUS_axi_bvalid;
|
||||||
wire BUS_axi_bready;
|
logic BUS_axi_bready;
|
||||||
wire [3:0] BUS_axi_arid;
|
logic [3:0] BUS_axi_arid;
|
||||||
wire [7:0] BUS_axi_arlen;
|
logic [7:0] BUS_axi_arlen;
|
||||||
wire [2:0] BUS_axi_arsize;
|
logic [2:0] BUS_axi_arsize;
|
||||||
wire [1:0] BUS_axi_arburst;
|
logic [1:0] BUS_axi_arburst;
|
||||||
wire [2:0] BUS_axi_arprot;
|
logic [2:0] BUS_axi_arprot;
|
||||||
wire [3:0] BUS_axi_arcache;
|
logic [3:0] BUS_axi_arcache;
|
||||||
wire BUS_axi_arvalid;
|
logic BUS_axi_arvalid;
|
||||||
wire [31:0] BUS_axi_araddr;
|
logic [31:0] BUS_axi_araddr;
|
||||||
wire BUS_axi_arlock;
|
logic BUS_axi_arlock;
|
||||||
wire BUS_axi_arready;
|
logic BUS_axi_arready;
|
||||||
wire [3:0] BUS_axi_rid;
|
logic [3:0] BUS_axi_rid;
|
||||||
wire [63:0] BUS_axi_rdata;
|
logic [63:0] BUS_axi_rdata;
|
||||||
wire [1:0] BUS_axi_rresp;
|
logic [1:0] BUS_axi_rresp;
|
||||||
wire BUS_axi_rvalid;
|
logic BUS_axi_rvalid;
|
||||||
wire BUS_axi_rlast;
|
logic BUS_axi_rlast;
|
||||||
wire BUS_axi_rready;
|
logic BUS_axi_rready;
|
||||||
|
|
||||||
wire BUSCLK;
|
logic BUSCLK;
|
||||||
wire sdio_reset_open;
|
logic sdio_reset_open;
|
||||||
|
|
||||||
wire c0_init_calib_complete;
|
logic c0_init_calib_complete;
|
||||||
wire dbg_clk;
|
logic dbg_clk;
|
||||||
wire [511 : 0] dbg_bus;
|
logic [511 : 0] dbg_bus;
|
||||||
wire ui_clk_sync_rst;
|
logic ui_clk_sync_rst;
|
||||||
|
|
||||||
wire CLK208;
|
logic CLK208;
|
||||||
wire clk167;
|
logic clk167;
|
||||||
wire clk200;
|
logic clk200;
|
||||||
|
|
||||||
wire app_sr_active;
|
logic app_sr_active;
|
||||||
wire app_ref_ack;
|
logic app_ref_ack;
|
||||||
wire app_zq_ack;
|
logic app_zq_ack;
|
||||||
wire mmcm_locked;
|
logic mmcm_locked;
|
||||||
wire [11:0] device_temp;
|
logic [11:0] device_temp;
|
||||||
wire mmcm1_locked;
|
logic mmcm1_locked;
|
||||||
|
|
||||||
(* mark_debug = "true" *) logic RVVIStall;
|
(* mark_debug = "true" *) logic RVVIStall;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user