Skip to content

Commit 63dd4ad

Browse files
Initial cosmo hp implementation
1 parent ca91e06 commit 63dd4ad

File tree

12 files changed

+1140
-31
lines changed

12 files changed

+1140
-31
lines changed

hdl/ip/vhd/axi_blocks/axil_interconnect_2k8.vhd

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -133,14 +133,14 @@ begin
133133
-- default no transaction state for all responders
134134
for i in 0 to config_array'length - 1 loop
135135
responders_write_address_valid(i) <= '0';
136-
responders_write_address_addr(i) <= initiator_write_address_addr(responders_write_address_addr(i)'length - 1 downto 0);
136+
responders_write_address_addr(i) <= (others => '0');
137137
responders_write_data_valid(i) <= '0';
138-
responders_write_data_data(i) <= initiator_write_data_data;
139-
responders_write_data_strb(i) <= initiator_write_data_strb;
138+
responders_write_data_data(i) <= (others => '0');
139+
responders_write_data_strb(i) <= (others => '0');
140140
responders_write_response_ready(i) <= '0';
141141

142142
responders_read_address_valid(i) <= '0';
143-
responders_read_address_addr(i) <= initiator_read_address_addr(responders_read_address_addr(i)'length - 1 downto 0);
143+
responders_read_address_addr(i) <= (others => '0');
144144
responders_read_data_ready(i) <= '0';
145145

146146
end loop;

hdl/ip/vhd/i2c/io_expanders/PCA9506ish/pca9506_pkg.vhd

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ package pca9506_pkg is
2323
);
2424

2525
type pca9506_pin_t is array (0 to 4) of std_logic_vector(7 downto 0);
26+
type multiple_pca9506_pin_t is array (natural range <>) of pca9506_pin_t;
2627

2728
function get_irq_pend(
2829
cur_reg: io_type;

hdl/ip/vhd/i2c/muxes/PCA9545ish/pca9545ish_function.vhd

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,10 @@ end entity;
5050
architecture rtl of pca9545ish_function is
5151
function is_valid(
5252
data : std_logic_vector(7 downto 0);
53-
allowed_to_enable : std_logic) return boolean is
53+
enable_allowed : std_logic) return boolean is
5454
begin
5555
-- allow only writes of 0 even when we're not allowed to enable
56-
if allowed_to_enable = '0' and data /= 0 then
56+
if enable_allowed = '0' and data /= 0 then
5757
return false;
5858
end if;
5959
-- only allow clear and one-hot bits 0-2

hdl/ip/vhd/info/info_2k8.vhd

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,8 +114,8 @@ begin
114114
hubris_compat <= unpack(resize(hubris_compat_pins, 32));
115115
if wready then
116116
case to_integer(awaddr) is
117-
when FPGA_CHECKSUM_OFFSET => checksum <= unpack(wdata);
118-
when SCRATCHPAD_OFFSET => scratchpad <= unpack(wdata);
117+
when FPGA_CHECKSUM_OFFSET => checksum <= write_byte_enable(checksum, wdata, wstrb);
118+
when SCRATCHPAD_OFFSET => scratchpad <= write_byte_enable(scratchpad, wdata, wstrb);
119119
when others => null;
120120
end case;
121121
end if;

hdl/projects/cosmo_hp/BUCK

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,29 @@
11
load("//tools:hdl.bzl", "vhdl_unit")
22
load("//tools:yosys.bzl", "ice40_bitstream")
33

4+
5+
vhdl_unit(
6+
name = "hp_subsystem_top",
7+
srcs = glob(["hp_subsystem/*.vhd"]),
8+
deps = [
9+
"//hdl/ip/vhd/i2c/io_expanders/PCA9506ish:pca9506_top",
10+
],
11+
standard = "2008",
12+
)
13+
414
vhdl_unit(
515
name = "cosmo_hp_top",
616
srcs = glob(["*.vhd"]),
17+
deps = [
18+
":hp_subsystem_top",
19+
"//hdl/ip/vhd/synchronizers:async_reset_bridge",
20+
"//hdl/ip/vhd/i2c/io_expanders/PCA9506ish:pca9506_top",
21+
"//hdl/ip/vhd/i2c/muxes/PCA9545ish:pca9545ish_top",
22+
"//hdl/ip/vhd/i2c/target:i2c_phy_consolidator",
23+
"//hdl/ip/vhd/spi/axi_controller:spi_axi_controller",
24+
"//hdl/ip/vhd/axi_blocks:axil_interconnect_2k8",
25+
"//hdl/ip/vhd/info:info_2k8",
26+
],
727
standard = "2008",
828
)
929

hdl/projects/cosmo_hp/cosmo_hp.pcf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,6 @@ set_io --warn-no-port fpga1_to_fpga2_io[2] E3
6868
set_io --warn-no-port fpga1_to_fpga2_io[3] H5
6969
set_io --warn-no-port fpga1_to_fpga2_io[4] E2
7070
set_io --warn-no-port fpga1_to_fpga2_io[5] G3
71-
set_io --warn-no-port fpga2_creset_l_r N11
7271
set_io --warn-no-port fpga2_spare_v3p3[0] E4
7372
set_io --warn-no-port fpga2_spare_v3p3[1] B2
7473
set_io --warn-no-port fpga2_spare_v3p3[2] F5
@@ -150,3 +149,4 @@ set_io --warn-no-port spi_sp_mux_to_fpga2_sck R11
150149
set_io --warn-no-port uart_fpga2_to_sp_dat N4
151150
set_io --warn-no-port uart_sp_to_fpga2_dat R1
152151
set_io --warn-no-port v12_mcio_a0hp_pg H6
152+
set_frequency clk_50mhz_fpga2 50

0 commit comments

Comments
 (0)