Skip to content

Commit 07b5894

Browse files
committed
Removed adjustable accum regs
1 parent 9136619 commit 07b5894

File tree

9 files changed

+117
-386
lines changed

9 files changed

+117
-386
lines changed

src/constraints/Arty-A7-100-Master.xdc

Lines changed: 61 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,4 +217,64 @@ set_property -dict {PACKAGE_PIN C2 IOSTANDARD LVCMOS33} [get_ports Rst]
217217
#set_property -dict { PACKAGE_PIN F14 IOSTANDARD LVCMOS33 } [get_ports { isns5v0_n }]; #IO_L5N_T0_AD9N_15 Sch=ad_n[9]
218218
#set_property -dict { PACKAGE_PIN F13 IOSTANDARD LVCMOS33 } [get_ports { isns5v0_p }]; #IO_L5P_T0_AD9P_15 Sch=ad_p[9]
219219
#set_property -dict { PACKAGE_PIN A16 IOSTANDARD LVCMOS33 } [get_ports { isns0v95_n }]; #IO_L8N_T1_AD10N_15 Sch=ad_n[10]
220-
#set_property -dict { PACKAGE_PIN A15 IOSTANDARD LVCMOS33 } [get_ports { isns0v95_p }]; #IO_L8P_T1_AD10P_15 Sch=ad_p[10]
220+
#set_property -dict { PACKAGE_PIN A15 IOSTANDARD LVCMOS33 } [get_ports { isns0v95_p }]; #IO_L8P_T1_AD10P_15 Sch=ad_p[10]
221+
222+
223+
create_debug_core u_ila_0 ila
224+
set_property ALL_PROBE_SAME_MU true [get_debug_cores u_ila_0]
225+
set_property ALL_PROBE_SAME_MU_CNT 1 [get_debug_cores u_ila_0]
226+
set_property C_ADV_TRIGGER false [get_debug_cores u_ila_0]
227+
set_property C_DATA_DEPTH 16384 [get_debug_cores u_ila_0]
228+
set_property C_EN_STRG_QUAL false [get_debug_cores u_ila_0]
229+
set_property C_INPUT_PIPE_STAGES 0 [get_debug_cores u_ila_0]
230+
set_property C_TRIGIN_EN false [get_debug_cores u_ila_0]
231+
set_property C_TRIGOUT_EN false [get_debug_cores u_ila_0]
232+
set_property port_width 1 [get_debug_ports u_ila_0/clk]
233+
connect_debug_port u_ila_0/clk [get_nets [list Clk_IBUF_BUFG]]
234+
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe0]
235+
set_property port_width 32 [get_debug_ports u_ila_0/probe0]
236+
connect_debug_port u_ila_0/probe0 [get_nets [list {correlator/Dout_Int[0]} {correlator/Dout_Int[1]} {correlator/Dout_Int[2]} {correlator/Dout_Int[3]} {correlator/Dout_Int[4]} {correlator/Dout_Int[5]} {correlator/Dout_Int[6]} {correlator/Dout_Int[7]} {correlator/Dout_Int[8]} {correlator/Dout_Int[9]} {correlator/Dout_Int[10]} {correlator/Dout_Int[11]} {correlator/Dout_Int[12]} {correlator/Dout_Int[13]} {correlator/Dout_Int[14]} {correlator/Dout_Int[15]} {correlator/Dout_Int[16]} {correlator/Dout_Int[17]} {correlator/Dout_Int[18]} {correlator/Dout_Int[19]} {correlator/Dout_Int[20]} {correlator/Dout_Int[21]} {correlator/Dout_Int[22]} {correlator/Dout_Int[23]} {correlator/Dout_Int[24]} {correlator/Dout_Int[25]} {correlator/Dout_Int[26]} {correlator/Dout_Int[27]} {correlator/Dout_Int[28]} {correlator/Dout_Int[29]} {correlator/Dout_Int[30]} {correlator/Dout_Int[31]}]]
237+
create_debug_port u_ila_0 probe
238+
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe1]
239+
set_property port_width 32 [get_debug_ports u_ila_0/probe1]
240+
connect_debug_port u_ila_0/probe1 [get_nets [list {correlator/Dout_Single[0]} {correlator/Dout_Single[1]} {correlator/Dout_Single[2]} {correlator/Dout_Single[3]} {correlator/Dout_Single[4]} {correlator/Dout_Single[5]} {correlator/Dout_Single[6]} {correlator/Dout_Single[7]} {correlator/Dout_Single[8]} {correlator/Dout_Single[9]} {correlator/Dout_Single[10]} {correlator/Dout_Single[11]} {correlator/Dout_Single[12]} {correlator/Dout_Single[13]} {correlator/Dout_Single[14]} {correlator/Dout_Single[15]} {correlator/Dout_Single[16]} {correlator/Dout_Single[17]} {correlator/Dout_Single[18]} {correlator/Dout_Single[19]} {correlator/Dout_Single[20]} {correlator/Dout_Single[21]} {correlator/Dout_Single[22]} {correlator/Dout_Single[23]} {correlator/Dout_Single[24]} {correlator/Dout_Single[25]} {correlator/Dout_Single[26]} {correlator/Dout_Single[27]} {correlator/Dout_Single[28]} {correlator/Dout_Single[29]} {correlator/Dout_Single[30]} {correlator/Dout_Single[31]}]]
241+
create_debug_port u_ila_0 probe
242+
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe2]
243+
set_property port_width 32 [get_debug_ports u_ila_0/probe2]
244+
connect_debug_port u_ila_0/probe2 [get_nets [list {correlator/Dout_reg[31][0]} {correlator/Dout_reg[31][1]} {correlator/Dout_reg[31][2]} {correlator/Dout_reg[31][3]} {correlator/Dout_reg[31][4]} {correlator/Dout_reg[31][5]} {correlator/Dout_reg[31][6]} {correlator/Dout_reg[31][7]} {correlator/Dout_reg[31][8]} {correlator/Dout_reg[31][9]} {correlator/Dout_reg[31][10]} {correlator/Dout_reg[31][11]} {correlator/Dout_reg[31][12]} {correlator/Dout_reg[31][13]} {correlator/Dout_reg[31][14]} {correlator/Dout_reg[31][15]} {correlator/Dout_reg[31][16]} {correlator/Dout_reg[31][17]} {correlator/Dout_reg[31][18]} {correlator/Dout_reg[31][19]} {correlator/Dout_reg[31][20]} {correlator/Dout_reg[31][21]} {correlator/Dout_reg[31][22]} {correlator/Dout_reg[31][23]} {correlator/Dout_reg[31][24]} {correlator/Dout_reg[31][25]} {correlator/Dout_reg[31][26]} {correlator/Dout_reg[31][27]} {correlator/Dout_reg[31][28]} {correlator/Dout_reg[31][29]} {correlator/Dout_reg[31][30]} {correlator/Dout_reg[31][31]}]]
245+
create_debug_port u_ila_0 probe
246+
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe3]
247+
set_property port_width 32 [get_debug_ports u_ila_0/probe3]
248+
connect_debug_port u_ila_0/probe3 [get_nets [list {correlator/Dout_unscaled[0]} {correlator/Dout_unscaled[1]} {correlator/Dout_unscaled[2]} {correlator/Dout_unscaled[3]} {correlator/Dout_unscaled[4]} {correlator/Dout_unscaled[5]} {correlator/Dout_unscaled[6]} {correlator/Dout_unscaled[7]} {correlator/Dout_unscaled[8]} {correlator/Dout_unscaled[9]} {correlator/Dout_unscaled[10]} {correlator/Dout_unscaled[11]} {correlator/Dout_unscaled[12]} {correlator/Dout_unscaled[13]} {correlator/Dout_unscaled[14]} {correlator/Dout_unscaled[15]} {correlator/Dout_unscaled[16]} {correlator/Dout_unscaled[17]} {correlator/Dout_unscaled[18]} {correlator/Dout_unscaled[19]} {correlator/Dout_unscaled[20]} {correlator/Dout_unscaled[21]} {correlator/Dout_unscaled[22]} {correlator/Dout_unscaled[23]} {correlator/Dout_unscaled[24]} {correlator/Dout_unscaled[25]} {correlator/Dout_unscaled[26]} {correlator/Dout_unscaled[27]} {correlator/Dout_unscaled[28]} {correlator/Dout_unscaled[29]} {correlator/Dout_unscaled[30]} {correlator/Dout_unscaled[31]}]]
249+
create_debug_port u_ila_0 probe
250+
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe4]
251+
set_property port_width 16 [get_debug_ports u_ila_0/probe4]
252+
connect_debug_port u_ila_0/probe4 [get_nets [list {correlator/Nout_Int[0]} {correlator/Nout_Int[1]} {correlator/Nout_Int[2]} {correlator/Nout_Int[3]} {correlator/Nout_Int[4]} {correlator/Nout_Int[5]} {correlator/Nout_Int[6]} {correlator/Nout_Int[7]} {correlator/Nout_Int[8]} {correlator/Nout_Int[9]} {correlator/Nout_Int[10]} {correlator/Nout_Int[11]} {correlator/Nout_Int[12]} {correlator/Nout_Int[13]} {correlator/Nout_Int[14]} {correlator/Nout_Int[15]}]]
253+
create_debug_port u_ila_0 probe
254+
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe5]
255+
set_property port_width 32 [get_debug_ports u_ila_0/probe5]
256+
connect_debug_port u_ila_0/probe5 [get_nets [list {correlator/Nout_Single[0]} {correlator/Nout_Single[1]} {correlator/Nout_Single[2]} {correlator/Nout_Single[3]} {correlator/Nout_Single[4]} {correlator/Nout_Single[5]} {correlator/Nout_Single[6]} {correlator/Nout_Single[7]} {correlator/Nout_Single[8]} {correlator/Nout_Single[9]} {correlator/Nout_Single[10]} {correlator/Nout_Single[11]} {correlator/Nout_Single[12]} {correlator/Nout_Single[13]} {correlator/Nout_Single[14]} {correlator/Nout_Single[15]} {correlator/Nout_Single[16]} {correlator/Nout_Single[17]} {correlator/Nout_Single[18]} {correlator/Nout_Single[19]} {correlator/Nout_Single[20]} {correlator/Nout_Single[21]} {correlator/Nout_Single[22]} {correlator/Nout_Single[23]} {correlator/Nout_Single[24]} {correlator/Nout_Single[25]} {correlator/Nout_Single[26]} {correlator/Nout_Single[27]} {correlator/Nout_Single[28]} {correlator/Nout_Single[29]} {correlator/Nout_Single[30]} {correlator/Nout_Single[31]}]]
257+
create_debug_port u_ila_0 probe
258+
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe6]
259+
set_property port_width 1 [get_debug_ports u_ila_0/probe6]
260+
connect_debug_port u_ila_0/probe6 [get_nets [list correlator/Dout_Int_Rdy]]
261+
create_debug_port u_ila_0 probe
262+
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe7]
263+
set_property port_width 1 [get_debug_ports u_ila_0/probe7]
264+
connect_debug_port u_ila_0/probe7 [get_nets [list correlator/Dout_Single_Rdy]]
265+
create_debug_port u_ila_0 probe
266+
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe8]
267+
set_property port_width 1 [get_debug_ports u_ila_0/probe8]
268+
connect_debug_port u_ila_0/probe8 [get_nets [list correlator/Dout_unscaled_Rdy]]
269+
create_debug_port u_ila_0 probe
270+
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe9]
271+
set_property port_width 1 [get_debug_ports u_ila_0/probe9]
272+
connect_debug_port u_ila_0/probe9 [get_nets [list correlator/Nout_Single_Rdy]]
273+
create_debug_port u_ila_0 probe
274+
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe10]
275+
set_property port_width 1 [get_debug_ports u_ila_0/probe10]
276+
connect_debug_port u_ila_0/probe10 [get_nets [list correlator/wr_en]]
277+
set_property C_CLK_INPUT_FREQ_HZ 300000000 [get_debug_cores dbg_hub]
278+
set_property C_ENABLE_CLK_DIVIDER false [get_debug_cores dbg_hub]
279+
set_property C_USER_SCAN_CHAIN 1 [get_debug_cores dbg_hub]
280+
connect_debug_port dbg_hub/clk [get_nets Clk_IBUF_BUFG]

src/design/correlator.vhd

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,46 +4,42 @@ use IEEE.STD_LOGIC_1164.ALL;
44
entity correlator is
55
Generic (
66
numDelays : integer := 8;
7-
additionalLatency : integer := 0;
8-
accumRegSize : integer := 47 --Bit width of registers used for accumulation. Max value of 47.
7+
additionalLatency : integer := 0
98
);
109
Port ( Clk : in STD_LOGIC;
1110
Ain : in STD_LOGIC_VECTOR (15 downto 0);
1211
Bin : in STD_LOGIC_VECTOR (15 downto 0);
1312
NDin : in STD_LOGIC;
1413
EODin : in STD_LOGIC;
1514
Reset : in STD_LOGIC;
16-
Din : in STD_LOGIC_VECTOR (accumRegSize - 1 downto 0);
15+
Din : in STD_LOGIC_VECTOR (31 downto 0);
1716
Nin : in STD_LOGIC_VECTOR (15 downto 0);
1817
DinRdy : in STD_LOGIC;
1918
Aout : out STD_LOGIC_VECTOR (15 downto 0) := (others => '0');
2019
Bout : out STD_LOGIC_VECTOR (15 downto 0) := (others => '0');
2120
BRdy : out STD_LOGIC := '0';
2221
EODout : out STD_LOGIC;
23-
Dout : out STD_LOGIC_VECTOR (accumRegSize - 1 downto 0) := (others => '0');
22+
Dout : out STD_LOGIC_VECTOR (31 downto 0) := (others => '0');
2423
Nout : out STD_LOGIC_VECTOR (15 downto 0) := (others => '0');
2524
DoutRdy : out STD_LOGIC := '0');
2625
end correlator;
2726

2827
architecture Behavioral of correlator is
2928
component multiplication_accumulator is
30-
Generic (
31-
accumRegSize : integer := 47
32-
);
3329
Port ( Clk : in STD_LOGIC;
3430
Ain : in STD_LOGIC_VECTOR (15 downto 0);
3531
Bin : in STD_LOGIC_VECTOR (15 downto 0);
3632
NDin : in STD_LOGIC;
3733
EODin : in STD_LOGIC;
3834
Reset : in STD_LOGIC;
39-
Din : in STD_LOGIC_VECTOR (accumRegSize - 1 downto 0);
35+
Din : in STD_LOGIC_VECTOR (31 downto 0);
4036
Nin : in STD_LOGIC_VECTOR (15 downto 0);
4137
DinRdy : in STD_LOGIC;
4238
Aout : out STD_LOGIC_VECTOR (15 downto 0) := (others => '0');
4339
Bout : out STD_LOGIC_VECTOR (15 downto 0) := (others => '0');
4440
BRdy : out STD_LOGIC := '0';
4541
EODout : out STD_LOGIC;
46-
Dout : out STD_LOGIC_VECTOR (accumRegSize - 1 downto 0) := (others => '0');
42+
Dout : out STD_LOGIC_VECTOR (31 downto 0) := (others => '0');
4743
Nout : out STD_LOGIC_VECTOR (15 downto 0) := (others => '0');
4844
DoutRdy : out STD_LOGIC := '0');
4945
end component;

src/design/dsp_multiply_and_accumulate.vhd

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,12 @@ use IEEE.STD_LOGIC_1164.ALL;
55
use UNISIM.vcomponents.all;
66

77
entity dsp_multiply_and_accumulate is
8-
Generic (
9-
accumRegSize : integer := 47 --Bit width of registers used for accumulation. Max value of 47.
10-
);
118
Port ( a : in STD_LOGIC_VECTOR (15 downto 0);
129
b : in STD_LOGIC_VECTOR (15 downto 0);
1310
clk : in STD_LOGIC;
1411
reset : in STD_LOGIC;
1512
M1_select : in STD_LOGIC;
16-
output : out STD_LOGIC_VECTOR (accumRegSize - 1 downto 0));
13+
output : out STD_LOGIC_VECTOR (31 downto 0));
1714
end dsp_multiply_and_accumulate;
1815

1916
architecture Behavioral of dsp_multiply_and_accumulate is

0 commit comments

Comments
 (0)