Skip to content

Merge dev to main for release 2023.1 #30

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

Merged
merged 7 commits into from
Apr 13, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
1 change: 1 addition & 0 deletions Training1/Canny/.cproject
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
<tool id="legup.managedbuild.tool.gnu.cpp.compiler.exe.debug.376673803" name="GCC C++ Compiler" superClass="legup.managedbuild.tool.gnu.cpp.compiler.exe.debug">
<option id="gnu.cpp.compiler.option.optimization.level.1759095256" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
<option id="gnu.cpp.compiler.option.debugging.level.1810804837" name="Debug Level" superClass="gnu.cpp.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/>
<option id="gnu.cpp.compiler.option.dialect.std.2033344015" superClass="gnu.cpp.compiler.option.dialect.std" useByScannerDiscovery="true" value="gnu.cpp.compiler.dialect.c++11" valueType="enumerated"/>
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1733918208" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
</tool>
<tool id="legup.managedbuild.tool.gnu.c.compiler.exe.debug.994173059" name="GCC C Compiler" superClass="legup.managedbuild.tool.gnu.c.compiler.exe.debug">
Expand Down
1 change: 1 addition & 0 deletions Training1/Canny/canny.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
void canny(hls::FIFO<unsigned char> &input_fifo,
hls::FIFO<unsigned char> &output_fifo) {
#pragma HLS function top
#pragma HLS function dataflow

hls::FIFO<unsigned char> output_fifo_gf(/* depth = */ 2);
hls::FIFO<unsigned short> output_fifo_sf(/* depth = */ 2);
Expand Down
1 change: 1 addition & 0 deletions Training1/Canny_FIFO_Switch/.cproject
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
<tool id="legup.managedbuild.tool.gnu.cpp.compiler.exe.debug.376673803" name="GCC C++ Compiler" superClass="legup.managedbuild.tool.gnu.cpp.compiler.exe.debug">
<option id="gnu.cpp.compiler.option.optimization.level.1759095256" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
<option id="gnu.cpp.compiler.option.debugging.level.1810804837" name="Debug Level" superClass="gnu.cpp.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/>
<option id="gnu.cpp.compiler.option.dialect.std.2033344015" superClass="gnu.cpp.compiler.option.dialect.std" useByScannerDiscovery="true" value="gnu.cpp.compiler.dialect.c++11" valueType="enumerated"/>
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1733918208" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
</tool>
<tool id="legup.managedbuild.tool.gnu.c.compiler.exe.debug.994173059" name="GCC C Compiler" superClass="legup.managedbuild.tool.gnu.c.compiler.exe.debug">
Expand Down
46 changes: 23 additions & 23 deletions Training1/Canny_FIFO_Switch/canny.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,31 +3,32 @@

#include <assert.h>

void canny(hls::FIFO<hls::ap_uint<1>> &switch_fifo_0,
hls::FIFO<hls::ap_uint<1>> &switch_fifo_1,
hls::FIFO<hls::ap_uint<1>> &switch_fifo_2,
hls::FIFO<hls::ap_uint<1>> &switch_fifo_3,
void canny(bool switch_0,
bool switch_1,
bool switch_2,
bool switch_3,
hls::FIFO<unsigned char> &input_fifo,
hls::FIFO<unsigned char> &output_fifo) {
#pragma HLS function top
#pragma HLS function dataflow

hls::FIFO<unsigned char> output_fifo_gf(/* depth = */ 2);
hls::FIFO<unsigned short> output_fifo_sf(/* depth = */ 2);
hls::FIFO<unsigned char> output_fifo_nm(/* depth = */ 2);

gaussian_filter(switch_fifo_0, input_fifo, output_fifo_gf);
sobel_filter(switch_fifo_1, output_fifo_gf, output_fifo_sf);
nonmaximum_suppression(switch_fifo_2, output_fifo_sf, output_fifo_nm);
hysteresis_filter(switch_fifo_3, output_fifo_nm, output_fifo);
gaussian_filter(switch_0, input_fifo, output_fifo_gf);
sobel_filter(switch_1, output_fifo_gf, output_fifo_sf);
nonmaximum_suppression(switch_2, output_fifo_sf, output_fifo_nm);
hysteresis_filter(switch_3, output_fifo_nm, output_fifo);
}

int main() {
unsigned int i, j;

hls::FIFO<hls::ap_uint<1>> switch_fifo_0(/* depth = */ WIDTH * HEIGHT * 2);
hls::FIFO<hls::ap_uint<1>> switch_fifo_1(/* depth = */ WIDTH * HEIGHT * 2);
hls::FIFO<hls::ap_uint<1>> switch_fifo_2(/* depth = */ WIDTH * HEIGHT * 2);
hls::FIFO<hls::ap_uint<1>> switch_fifo_3(/* depth = */ WIDTH * HEIGHT * 2);
bool switch_0;
bool switch_1;
bool switch_2;
bool switch_3;
hls::FIFO<unsigned char> input_fifo(/* depth = */ WIDTH * HEIGHT * 2);
hls::FIFO<unsigned char> output_fifo(/* depth = */ WIDTH * HEIGHT * 2);

Expand Down Expand Up @@ -74,33 +75,32 @@ int main() {
nm_sw(sobel_output, nonmaximum_suppression_output);
hf_sw(nonmaximum_suppression_output, hysteresis_output_golden);

const hls::ap_uint<1> on = 1;
// Write test input pixels.
for (i = 0; i < HEIGHT; i++) {
for (j = 0; j < WIDTH; j++) {
switch_fifo_0.write(on);
switch_fifo_1.write(on);
switch_fifo_2.write(on);
switch_fifo_3.write(on);
switch_0 = true;
switch_1 = true;
switch_2 = true;
switch_3 = true;
unsigned char r = input_channel->r;
unsigned char g = input_channel->g;
unsigned char b = input_channel->b;
unsigned grayscale = (r + g + b) / 3;
input_fifo.write(grayscale);
canny(switch_fifo_0, switch_fifo_1, switch_fifo_2, switch_fifo_3,
canny(switch_0, switch_1, switch_2, switch_3,
input_fifo, output_fifo);
input_channel++;
}
}

// Give more inputs to flush out all pixels.
for (i = 0; i < GF_KERNEL_SIZE * WIDTH + GF_KERNEL_SIZE; i++) {
switch_fifo_0.write(on);
switch_fifo_1.write(on);
switch_fifo_2.write(on);
switch_fifo_3.write(on);
switch_0 = true;
switch_1 = true;
switch_2 = true;
switch_3 = true;
input_fifo.write(0);
canny(switch_fifo_0, switch_fifo_1, switch_fifo_2, switch_fifo_3,
canny(switch_0, switch_1, switch_2, switch_3,
input_fifo, output_fifo);
}

Expand Down
8 changes: 4 additions & 4 deletions Training1/Canny_FIFO_Switch/define.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,29 +25,29 @@ void window_and_line_buffer(hls::ap_uint<10> input,

// Gaussian Filter.
const unsigned int GF_KERNEL_SIZE = 5;
void gaussian_filter(hls::FIFO<hls::ap_uint<1>> &switch_fifo,
void gaussian_filter(bool on_switch,
hls::FIFO<unsigned char> &input_fifo,
hls::FIFO<unsigned char> &output_fifo);
void gf_sw(unsigned char input[][WIDTH], unsigned char output[][WIDTH]);

// Sobel Filter.
const unsigned int SF_KERNEL_SIZE = 3;
void sf_sw(unsigned char input[][WIDTH], hls::ap_uint<10> output[][WIDTH]);
void sobel_filter(hls::FIFO<hls::ap_uint<1>> &switch_fifo,
void sobel_filter(bool on_switch,
hls::FIFO<unsigned char> &input_fifo,
hls::FIFO<unsigned short> &output_fifo);

// Non-maximum suppression.
const unsigned int NM_KERNEL_SIZE = 3;
void nonmaximum_suppression(hls::FIFO<hls::ap_uint<1>> &switch_fifo,
void nonmaximum_suppression(bool on_switch,
hls::FIFO<unsigned short> &input_fifo,
hls::FIFO<unsigned char> &output_fifo);
void nm_sw(hls::ap_uint<10> input[][WIDTH], unsigned char output[][WIDTH]);

// Hysteresis filter.
const unsigned int HF_KERNEL_SIZE = 3;
void hf_sw(unsigned char input[][WIDTH], unsigned char output[][WIDTH]);
void hysteresis_filter(hls::FIFO<hls::ap_uint<1>> &switch_fifo,
void hysteresis_filter(bool on_switch,
hls::FIFO<unsigned char> &input_fifo,
hls::FIFO<unsigned char> &output_fifo);

Expand Down
9 changes: 4 additions & 5 deletions Training1/Canny_FIFO_Switch/gaussian_filter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ const unsigned int GAUSSIAN[GF_KERNEL_SIZE]
{1, 3, 4, 3, 1}};
const unsigned int DIVISOR = 128;

void gaussian_filter(hls::FIFO<hls::ap_uint<1>> &switch_fifo,
void gaussian_filter(bool on_switch,
hls::FIFO<unsigned char> &input_fifo,
hls::FIFO<unsigned char> &output_fifo) {
#pragma HLS function pipeline
Expand Down Expand Up @@ -46,10 +46,9 @@ void gaussian_filter(hls::FIFO<hls::ap_uint<1>> &switch_fifo,
unsigned char current_pixel = line_buffer.window[center][center];

// if filter is off, pass pixel through
bool on = switch_fifo.read();
if (!on) {
output_fifo.write(current_pixel);
return;
if (!on_switch) {
output_fifo.write(current_pixel);
return;
}

if (outofbounds) {
Expand Down
5 changes: 2 additions & 3 deletions Training1/Canny_FIFO_Switch/hysteresis_filter.cpp
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#include "define.hpp"
#include <hls/image_processing.hpp>

void hysteresis_filter(hls::FIFO<hls::ap_uint<1>> &switch_fifo,
void hysteresis_filter(bool on_switch,
hls::FIFO<unsigned char> &input_fifo,
hls::FIFO<unsigned char> &output_fifo) {
#pragma HLS function pipeline
Expand Down Expand Up @@ -37,8 +37,7 @@ void hysteresis_filter(hls::FIFO<hls::ap_uint<1>> &switch_fifo,
unsigned char current_pixel = line_buffer.window[center][center];

// if filter is off, pass pixel through
bool on = switch_fifo.read();
if (!on) {
if (!on_switch) {
output_fifo.write(current_pixel);
return;
}
Expand Down
15 changes: 7 additions & 8 deletions Training1/Canny_FIFO_Switch/nonmaximum_suppression.cpp
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
#include "define.hpp"
#include <hls/image_processing.hpp>

void nonmaximum_suppression(hls::FIFO<hls::ap_uint<1>> &switch_fifo,
hls::FIFO<unsigned short> &input_fifo,
void nonmaximum_suppression(bool on_switch,
hls::FIFO<unsigned short> &input_fifo,
hls::FIFO<unsigned char> &output_fifo) {
#pragma HLS function pipeline

Expand Down Expand Up @@ -36,12 +36,11 @@ void nonmaximum_suppression(hls::FIFO<hls::ap_uint<1>> &switch_fifo,
unsigned int center = NM_KERNEL_SIZE / 2;
int current_pixel = (int)line_buffer.window[center][center] & 0xff;

// if filter is off, pass pixel through
bool on = switch_fifo.read();
if (!on) {
output_fifo.write(current_pixel);
return;
}
// if filter is off, pass pixel through
if (!on_switch) {
output_fifo.write(current_pixel);
return;
}

if (outofbounds) {
output_fifo.write(current_pixel);
Expand Down
7 changes: 3 additions & 4 deletions Training1/Canny_FIFO_Switch/sobel_filter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ const int GX[SF_KERNEL_SIZE]
const int GY[SF_KERNEL_SIZE]
[SF_KERNEL_SIZE] = {{1, 2, 1}, {0, 0, 0}, {-1, -2, -1}};

void sobel_filter(hls::FIFO<hls::ap_uint<1>> &switch_fifo,
hls::FIFO<unsigned char> &input_fifo,
void sobel_filter(bool on_switch,
hls::FIFO<unsigned char> &input_fifo,
hls::FIFO<unsigned short> &output_fifo) {
#pragma HLS function pipeline

Expand Down Expand Up @@ -42,8 +42,7 @@ void sobel_filter(hls::FIFO<hls::ap_uint<1>> &switch_fifo,
unsigned char current_pixel = line_buffer.window[center][center];

// if filter is off, pass pixel through
bool on = switch_fifo.read();
if (!on) {
if (!on_switch) {
output_fifo.write(current_pixel);
return;
}
Expand Down
1 change: 1 addition & 0 deletions Training1/Gaussian_FIFO_Pipelined/.cproject
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
<tool id="legup.managedbuild.tool.gnu.cpp.compiler.exe.debug.376673803" name="GCC C++ Compiler" superClass="legup.managedbuild.tool.gnu.cpp.compiler.exe.debug">
<option id="gnu.cpp.compiler.option.optimization.level.1759095256" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
<option id="gnu.cpp.compiler.option.debugging.level.1810804837" name="Debug Level" superClass="gnu.cpp.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/>
<option id="gnu.cpp.compiler.option.dialect.std.2033344015" superClass="gnu.cpp.compiler.option.dialect.std" useByScannerDiscovery="true" value="gnu.cpp.compiler.dialect.c++11" valueType="enumerated"/>
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1733918208" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
</tool>
<tool id="legup.managedbuild.tool.gnu.c.compiler.exe.debug.994173059" name="GCC C Compiler" superClass="legup.managedbuild.tool.gnu.c.compiler.exe.debug">
Expand Down
1 change: 1 addition & 0 deletions Training1/Gaussian_Memory_Interface/.cproject
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
<tool id="legup.managedbuild.tool.gnu.cpp.compiler.exe.debug.376673803" name="GCC C++ Compiler" superClass="legup.managedbuild.tool.gnu.cpp.compiler.exe.debug">
<option id="gnu.cpp.compiler.option.optimization.level.1759095256" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
<option id="gnu.cpp.compiler.option.debugging.level.1810804837" name="Debug Level" superClass="gnu.cpp.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/>
<option id="gnu.cpp.compiler.option.dialect.std.2033344015" superClass="gnu.cpp.compiler.option.dialect.std" useByScannerDiscovery="true" value="gnu.cpp.compiler.dialect.c++11" valueType="enumerated"/>
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1733918208" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
</tool>
<tool id="legup.managedbuild.tool.gnu.c.compiler.exe.debug.994173059" name="GCC C Compiler" superClass="legup.managedbuild.tool.gnu.c.compiler.exe.debug">
Expand Down
1 change: 1 addition & 0 deletions Training1/Gaussian_Memory_Interface_Pipelined/.cproject
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
<tool id="legup.managedbuild.tool.gnu.cpp.compiler.exe.debug.376673803" name="GCC C++ Compiler" superClass="legup.managedbuild.tool.gnu.cpp.compiler.exe.debug">
<option id="gnu.cpp.compiler.option.optimization.level.1759095256" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
<option id="gnu.cpp.compiler.option.debugging.level.1810804837" name="Debug Level" superClass="gnu.cpp.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/>
<option id="gnu.cpp.compiler.option.dialect.std.2033344015" superClass="gnu.cpp.compiler.option.dialect.std" useByScannerDiscovery="true" value="gnu.cpp.compiler.dialect.c++11" valueType="enumerated"/>
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1733918208" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
</tool>
<tool id="legup.managedbuild.tool.gnu.c.compiler.exe.debug.994173059" name="GCC C Compiler" superClass="legup.managedbuild.tool.gnu.c.compiler.exe.debug">
Expand Down
6 changes: 3 additions & 3 deletions Training1/Libero/libero_flow.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ set PF_CCC_version 2.2.220
set Display_Controller_version 3.1.2
set HDMI_RX_version 4.2.0
set HDMI_TX_version 1.0.2
set PF_TX_PLL_version 2.0.300
set PF_TX_PLL_version 2.0.302
set PF_XCVR_ERM_version 3.1.200
set PF_XCVR_REF_CLK_version 1.0.103
set CORERESET_PF_version 2.2.107
set CORERXIODBITALIGN_version 2.1.104
set PF_IOD_GENERIC_RX_version 2.1.110
set PF_DDR4_version 2.5.109
set PF_DDR4_version 2.5.111
set PF_SRAM_AHBL_AXI_version 1.2.110
set mipicsi2rxdecoderPF_version 2.2.5
set COREAHBTOAPB3_version 3.1.100
Expand All @@ -21,7 +21,7 @@ set CoreAPB3_version 4.1.100
set CoreGPIO_version 3.2.102
set COREJTAGDEBUG_version 3.1.100
set CoreAHBLite_version 5.4.102
set PF_INIT_MONITOR_version 2.0.304
set PF_INIT_MONITOR_version 2.0.307
set MIV_RV32IMA_L1_AHB_version 2.3.100
set COREUART_version 5.6.102
set Bayer_Interpolation_version 3.0.2
Expand Down
20 changes: 4 additions & 16 deletions Training1/Libero/src/components/LegUp_Image_Filters.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -50,23 +50,11 @@ sd_show_bif_pins -sd_name ${sd_name} -bif_pin_name {canny_top_0:input_fifo_axi4s
sd_show_bif_pins -sd_name ${sd_name} -bif_pin_name {canny_top_0:output_fifo_axi4stream} -pin_names {canny_top_0:output_fifo}
sd_show_bif_pins -sd_name ${sd_name} -bif_pin_name {canny_top_0:output_fifo_axi4stream} -pin_names {canny_top_0:output_fifo_ready}
sd_show_bif_pins -sd_name ${sd_name} -bif_pin_name {canny_top_0:output_fifo_axi4stream} -pin_names {canny_top_0:output_fifo_valid}
sd_show_bif_pins -sd_name ${sd_name} -bif_pin_name {canny_top_0:switch_fifo_0_axi4stream} -pin_names {canny_top_0:switch_fifo_0}
sd_show_bif_pins -sd_name ${sd_name} -bif_pin_name {canny_top_0:switch_fifo_0_axi4stream} -pin_names {canny_top_0:switch_fifo_0_valid}
sd_show_bif_pins -sd_name ${sd_name} -bif_pin_name {canny_top_0:switch_fifo_1_axi4stream} -pin_names {canny_top_0:switch_fifo_1}
sd_show_bif_pins -sd_name ${sd_name} -bif_pin_name {canny_top_0:switch_fifo_1_axi4stream} -pin_names {canny_top_0:switch_fifo_1_valid}
sd_show_bif_pins -sd_name ${sd_name} -bif_pin_name {canny_top_0:switch_fifo_2_axi4stream} -pin_names {canny_top_0:switch_fifo_2}
sd_show_bif_pins -sd_name ${sd_name} -bif_pin_name {canny_top_0:switch_fifo_2_axi4stream} -pin_names {canny_top_0:switch_fifo_2_valid}
sd_show_bif_pins -sd_name ${sd_name} -bif_pin_name {canny_top_0:switch_fifo_3_axi4stream} -pin_names {canny_top_0:switch_fifo_3}
sd_show_bif_pins -sd_name ${sd_name} -bif_pin_name {canny_top_0:switch_fifo_3_axi4stream} -pin_names {canny_top_0:switch_fifo_3_valid}
sd_invert_pins -sd_name ${sd_name} -pin_names {canny_top_0:reset}
sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {canny_top_0:start} -value {VCC}
sd_mark_pins_unused -sd_name ${sd_name} -pin_names {canny_top_0:ready}
sd_mark_pins_unused -sd_name ${sd_name} -pin_names {canny_top_0:finish}
sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {canny_top_0:switch_fifo_0_valid} -value {VCC}
sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {canny_top_0:switch_fifo_3_valid} -value {VCC}
sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {canny_top_0:output_fifo_ready} -value {VCC}
sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {canny_top_0:switch_fifo_2_valid} -value {VCC}
sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {canny_top_0:switch_fifo_1_valid} -value {VCC}



Expand Down Expand Up @@ -157,10 +145,10 @@ sd_connect_pins -sd_name ${sd_name} -pin_names {"AND2_0:Y" "video_fifo_0:rresetn
sd_connect_pins -sd_name ${sd_name} -pin_names {"canny_top_0:clk" "clk" "delay_0:clk" "gaussian_filter_pipelined_top_0:clk" "switch_3_state_controller_top_0:clk" "video_fifo_0:rclock_i" "video_fifo_0:wclock_i" "video_fifo_1:rclock_i" "video_fifo_1:wclock_i" }
sd_connect_pins -sd_name ${sd_name} -pin_names {"canny_top_0:input_fifo_valid" "gaussian_filter_pipelined_top_0:input_fifo_valid" "input_valid" "video_fifo_0:wen_i" }
sd_connect_pins -sd_name ${sd_name} -pin_names {"canny_top_0:output_fifo_valid" "delay_0:valid_i" "video_fifo_0:ren_i" "video_fifo_1:ren_i" }
sd_connect_pins -sd_name ${sd_name} -pin_names {"canny_top_0:switch_fifo_0" "gaussian_filter_pipelined_top_0:on_switch" "switches[0:0]" }
sd_connect_pins -sd_name ${sd_name} -pin_names {"canny_top_0:switch_fifo_1" "switches[1:1]" }
sd_connect_pins -sd_name ${sd_name} -pin_names {"canny_top_0:switch_fifo_2" "switches[2:2]" }
sd_connect_pins -sd_name ${sd_name} -pin_names {"canny_top_0:switch_fifo_3" "switches[3:3]" }
sd_connect_pins -sd_name ${sd_name} -pin_names {"canny_top_0:switch_0" "gaussian_filter_pipelined_top_0:on_switch" "switches[0:0]" }
sd_connect_pins -sd_name ${sd_name} -pin_names {"canny_top_0:switch_1" "switches[1:1]" }
sd_connect_pins -sd_name ${sd_name} -pin_names {"canny_top_0:switch_2" "switches[2:2]" }
sd_connect_pins -sd_name ${sd_name} -pin_names {"canny_top_0:switch_3" "switches[3:3]" }
sd_connect_pins -sd_name ${sd_name} -pin_names {"delay_0:valid_o" "output_valid" }
sd_connect_pins -sd_name ${sd_name} -pin_names {"gaussian_filter_pipelined_top_0:output_fifo_valid" "video_fifo_1:wen_i" }
sd_connect_pins -sd_name ${sd_name} -pin_names {"switch_3_state_controller_top_0:toggle" "toggle" }
Expand Down
Loading