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

PandABrick target #143

Merged
merged 22 commits into from
Aug 15, 2024
Merged
Show file tree
Hide file tree
Changes from 21 commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
e500017
PandABrick: Initial port to PandABlocks for xu5-st1 platform
glennchid Jul 19, 2023
af84e22
PandABrick: xu5_st1 - rename top-level signal to match line driver sc…
glennchid Sep 6, 2023
59d3b54
PandABrick: port to xu6_st1 platform
glennchid Sep 8, 2023
4c9f57d
Changing XU6 memory to 4GB non-ECC
glennchid Nov 2, 2023
6f27fba
Adding no-1-8-v tag to device-tree for SD compatibility
glennchid Nov 2, 2023
02cb47c
PandABrick: increasing number of axes from 4 to 8
glennchid Nov 6, 2023
c13accb
Moved `ENC_NUM` from top_defines to target top level
glennchid Nov 6, 2023
0c20035
Merge branch 'master' into pandabrick
glennchid Nov 8, 2023
b844d9a
Add relay control for all channels
glennchid Nov 27, 2023
c204017
Doubling memory size available in BD
glennchid Feb 28, 2024
b229f15
Change pins for LEDs to MIO pins
glennchid Feb 28, 2024
94377ed
Correction to PIC SPI FSM + add rudimentary testbench
glennchid Feb 28, 2024
5125c20
Hardwire PMAC_TX_EN to zero as temporary measure
glennchid Feb 28, 2024
d39de59
Wiring up PL LEDs, and removing PS and XU6 LEDs
glennchid Feb 29, 2024
76be47c
Remove MGT components from EVR and panda-sync
glennchid Apr 12, 2024
2c4ab89
Make PICXO optional
glennchid Apr 12, 2024
54f6bac
Combining sfp-panda-sync modules for zynq and zynqmp platforms
glennchid Apr 16, 2024
60aaf31
Supplying sysclk as DRPCLK for GTH to work with CPLL
glennchid May 16, 2024
2ef8833
Passing through FPGA-I2C to PS via EMIO
glennchid May 16, 2024
755f582
Re-instating component for ultrascale panda_sync IP
glennchid May 31, 2024
98042bf
Merge branch 'master' into pandabrick
glennchid Aug 5, 2024
8d482b6
Fix-up commit following merge
glennchid Aug 8, 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
12 changes: 12 additions & 0 deletions apps/PandABrick.app.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
[.]
description:
Standard set of PandABlocks with:
- built-in FMC encoder card
- PandA synchroniser on SFP on-board FMC
target: PandABrick
includes: common_soft_blocks.include.ini

[SFP_SYNC]
module: sfp_panda_sync
ini: sfp_panda_sync_us.block.ini

4 changes: 1 addition & 3 deletions common/hdl/defines/top_defines.vhd
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,6 @@ subtype MOD_RANGE is natural range 0 to MOD_COUNT-1;

-- Read Addr to Ack delay
constant RD_ADDR2ACK : std_logic_vector(4 downto 0) := "00010";

-- Block instantiation numbers--------------------------------------------
constant ENC_NUM : natural := 4;
--------------------------------------------------------------------------

--------------------------------------------------------------------------
Expand All @@ -43,6 +40,7 @@ alias PBUSBW is top_defines_gen.PBUSBW;
alias EBUSW is top_defines_gen.EBUSW;
alias PCAP_STD_DEV_OPTION is top_defines_gen.PCAP_STD_DEV_OPTION;
alias FINE_DELAY_OPTION is top_defines_gen.FINE_DELAY_OPTION;
alias PICXO_OPTION is top_defines_gen.PICXO_OPTION;
--------------------------------------------------------------------------

constant DCARD_MONITOR : std_logic_vector(2 downto 0) := "011";
Expand Down
3 changes: 3 additions & 0 deletions common/hdl/encoders/encoders_top.vhd
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ use work.top_defines.all;
use work.addr_defines.all;

entity encoders_top is
generic (
ENC_NUM : natural
);
port (
-- Clock and Reset
clk_i : in std_logic;
Expand Down
3 changes: 2 additions & 1 deletion common/python/generate_app.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,8 @@
# ini file
FPGA_OPTIONS_DEFAULTS = {
'pcap_std_dev': False,
'fine_delay': False
'fine_delay': False,
'PICXO' : False,
}


Expand Down
31 changes: 31 additions & 0 deletions ip_defs/sfp_panda_sync_us.tcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#
# Create SFP sync mgt core for Ultrascale+
create_ip -vlnv [get_ipdefs -filter {NAME == gtwizard_ultrascale}] \
-module_name sfp_panda_sync_us -dir $BUILD_DIR/

set_property -dict [list \
CONFIG.DISABLE_LOC_XDC {true} \
CONFIG.CHANNEL_ENABLE {X0Y5} \
CONFIG.LOCATE_RX_USER_CLOCKING {CORE} \
CONFIG.LOCATE_TX_USER_CLOCKING {CORE} \
CONFIG.RX_COMMA_ALIGN_WORD {4} \
CONFIG.RX_COMMA_M_ENABLE {true} \
CONFIG.RX_COMMA_PRESET {K28.5} \
CONFIG.RX_COMMA_P_ENABLE {true} \
CONFIG.RX_COMMA_SHOW_REALIGN_ENABLE {false} \
CONFIG.RX_COMMA_VALID_ONLY {0} \
CONFIG.RX_DATA_DECODING {8B10B} \
CONFIG.RX_LINE_RATE {5} \
CONFIG.RX_MASTER_CHANNEL {X0Y5} \
CONFIG.RX_PLL_TYPE {CPLL} \
CONFIG.RX_REFCLK_FREQUENCY {125} \
CONFIG.RX_REFCLK_SOURCE {X0Y5 clk1} \
CONFIG.TX_DATA_ENCODING {8B10B} \
CONFIG.TX_LINE_RATE {5} \
CONFIG.TX_MASTER_CHANNEL {X0Y5} \
CONFIG.TX_PLL_TYPE {CPLL} \
CONFIG.TX_REFCLK_FREQUENCY {125} \
CONFIG.TX_REFCLK_SOURCE {X0Y5 clk1} \
] [get_ips sfp_panda_sync_us]


70 changes: 70 additions & 0 deletions modules/pandabrick_test/hdl/test_regs.vhd
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
----------------------------------------------------------------------------------
-- Dummy Module - replaced SYSTEM with this which returns test_val
----------------------------------------------------------------------------------

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

library work;
use work.top_defines.all;
use work.addr_defines.all;


entity test_regs is
Port (

clk_i : in std_logic;

test_val : in std_logic_vector (31 downto 0);

-- Internal read interface
read_strobe : in std_logic;
read_address : in std_logic_vector(PAGE_AW-1 downto 0);
read_data : out std_logic_vector(31 downto 0);
read_ack : out std_logic;

-- Internal write interface
write_strobe : in std_logic;
write_address : in std_logic_vector(PAGE_AW-1 downto 0);
write_data : in std_logic_vector(31 downto 0);
write_ack : out std_logic

);
end test_regs;

architecture arch_test_regs of test_regs is

signal test_address : std_logic_vector(PAGE_AW-1 downto 0);

begin

read_ack <= '1';
write_ack <= '1';

process (clk_i) is
begin
if rising_edge(clk_i) then

-- Start by creating a full set of 'zero's
--for index in 0 to (MOD_COUNT-1) loop
-- read_data(index) <= (others => '0');
--end loop;

-- Check for 'SYSTEM' module address
if (read_strobe='1') then
-- Check for address=0.
test_address <= (others => '0');
if (read_address = test_address) then
read_data <= test_val;
else
read_data <= (others => '0');
end if;
end if;

end if;
end process;



end arch_test_regs;
8 changes: 8 additions & 0 deletions modules/pandabrick_test/pandabrick_test.block.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[.]
EmilioPeJu marked this conversation as resolved.
Show resolved Hide resolved
description: Test block for PandABrick
entity: test_regs

[TEST_VAL]
type: read int
description: Test Value

Loading
Loading