Add files using upload-large-folder tool
Browse filesThis view is limited to 50 files because it contains too many changes. See raw diff
- myproject_prj/solution1/impl/verilog/myproject_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_8u_config35_s.v +0 -0
- myproject_prj/solution1/impl/verilog/myproject_conv_2d_cl_array_ap_fixed_24u_array_ap_fixed_41_21_5_3_0_8u_config35_s.v +397 -0
- myproject_prj/solution1/impl/verilog/myproject_conv_2d_cl_array_array_ap_fixed_41_21_5_3_0_32u_config12_s.v +373 -0
- myproject_prj/solution1/impl/verilog/myproject_conv_2d_cl_array_array_ap_fixed_43_23_5_3_0_64u_config19_s.v +517 -0
- myproject_prj/solution1/impl/verilog/myproject_dense_resource_rf_gt_nin_rem0_ap_fixed_ap_fixed_37_17_5_3_0_config2_mult_s_oudEe.v +42 -0
- myproject_prj/solution1/impl/verilog/myproject_dense_resource_rf_gt_nin_rem0_ap_fixed_ap_fixed_config14_mult_s_w14_ROM_NP_BRdlF.dat +576 -0
- myproject_prj/solution1/impl/verilog/myproject_dense_resource_rf_gt_nin_rem0_ap_fixed_ap_fixed_config14_mult_s_w14_ROM_NP_BRdlF.v +42 -0
- myproject_prj/solution1/impl/verilog/myproject_dense_resource_rf_leq_nin_ap_fixed_ap_fixed_36_16_5_3_0_config58_mult_s.v +648 -0
- myproject_prj/solution1/impl/verilog/myproject_dense_resource_rf_leq_nin_ap_fixed_ap_fixed_41_21_5_3_0_config12_mult_s_w12_Rcgu.v +42 -0
- myproject_prj/solution1/impl/verilog/myproject_dense_resource_rf_leq_nin_ap_fixed_ap_fixed_41_21_5_3_0_config9_mult_s_w9_ROMbrm.v +42 -0
- myproject_prj/solution1/impl/verilog/myproject_dense_resource_rf_leq_nin_ap_fixed_ap_fixed_41_21_5_3_0_config9_mult_s_w9_ROMbtn.v +42 -0
- myproject_prj/solution1/impl/verilog/myproject_dense_resource_rf_leq_nin_ap_fixed_ap_fixed_42_22_5_3_0_config14_mult_s.v +0 -0
- myproject_prj/solution1/impl/verilog/myproject_dense_resource_rf_leq_nin_ap_fixed_ap_fixed_42_22_5_3_0_config14_mult_s_w14_RdjF.v +42 -0
- myproject_prj/solution1/impl/verilog/myproject_fifo_w1376_d256_A.v +237 -0
- myproject_prj/solution1/impl/verilog/myproject_fifo_w1536_d256_A.v +237 -0
- myproject_prj/solution1/impl/verilog/myproject_fifo_w16_d4096_A.v +237 -0
- myproject_prj/solution1/impl/verilog/myproject_fifo_w16_d64_S.v +155 -0
- myproject_prj/solution1/impl/verilog/myproject_fifo_w320_d4096_A.v +237 -0
- myproject_prj/solution1/impl/verilog/myproject_fifo_w328_d4096_A.v +237 -0
- myproject_prj/solution1/impl/verilog/myproject_fifo_w36_d4096_A.v +237 -0
- myproject_prj/solution1/impl/verilog/myproject_fifo_w384_d4096_A.v +237 -0
- myproject_prj/solution1/impl/verilog/myproject_fifo_w512_d256_A.v +237 -0
- myproject_prj/solution1/impl/verilog/myproject_fifo_w768_d1024_A.v +237 -0
- myproject_prj/solution1/impl/verilog/myproject_flow_control_loop_pipe_no_ap_cont.v +104 -0
- myproject_prj/solution1/impl/verilog/myproject_mac_muladd_16s_10s_33s_33_1_1.v +66 -0
- myproject_prj/solution1/impl/verilog/myproject_mac_muladd_16s_16s_33s_33_1_1.v +66 -0
- myproject_prj/solution1/impl/verilog/myproject_mac_muladd_16s_16s_40s_41_1_1.v +66 -0
- myproject_prj/solution1/impl/verilog/myproject_mac_muladd_16s_16s_41s_42_1_1.v +66 -0
- myproject_prj/solution1/impl/verilog/myproject_mac_muladd_16s_9s_31s_31_1_1.v +66 -0
- myproject_prj/solution1/impl/verilog/myproject_mac_muladd_16s_9s_34s_34_1_1.v +66 -0
- myproject_prj/solution1/impl/verilog/myproject_mac_muladd_16s_9s_43s_44_1_1.v +66 -0
- myproject_prj/solution1/impl/verilog/myproject_mul_16s_16s_32_1_1.v +75 -0
- myproject_prj/solution1/impl/verilog/myproject_relu_array_ap_fixed_16u_array_ap_fixed_16_6_5_3_0_16u_relu_config30_s.v +473 -0
- myproject_prj/solution1/impl/verilog/myproject_shift_line_buffer_array_ap_fixed_16_6_5_3_0_1u_config2_s.v +352 -0
- myproject_prj/solution1/impl/verilog/myproject_shift_line_buffer_array_ap_fixed_16_6_5_3_0_24u_config35_s.v +0 -0
- myproject_prj/solution1/impl/verilog/myproject_shift_line_buffer_array_ap_fixed_16_6_5_3_0_32u_config17_s_p_ZZN4nnet26conv_2dOK.v +88 -0
- myproject_prj/solution1/impl/verilog/myproject_shift_line_buffer_array_ap_fixed_16_6_5_3_0_48u_config29_s.v +0 -0
- myproject_prj/solution1/impl/verilog/myproject_shift_line_buffer_array_ap_fixed_16_6_5_3_0_8u_config7_s.v +0 -0
- myproject_prj/solution1/impl/verilog/myproject_start_for_clone_stream_array_ap_fixed_16u_array_ap_fixed_16_6_5_3_0_16u_16384oqc.v +151 -0
- myproject_prj/solution1/impl/verilog/myproject_start_for_conv_2d_cl_array_ap_fixed_24u_array_ap_fixed_41_21_5_3_0_8u_config3ozc.v +151 -0
- myproject_prj/solution1/impl/verilog/myproject_start_for_conv_2d_cl_array_ap_fixed_8u_array_ap_fixed_40_20_5_3_0_16u_config7okc.v +151 -0
- myproject_prj/solution1/impl/verilog/myproject_start_for_conv_2d_cl_array_array_ap_fixed_43_23_5_3_0_32u_config23_U0.v +151 -0
- myproject_prj/solution1/impl/verilog/myproject_start_for_relu_array_ap_fixed_16u_array_ap_fixed_16_6_5_3_0_16u_relu_config32ovc.v +151 -0
- myproject_prj/solution1/impl/verilog/myproject_start_for_zeropad2d_cl_array_ap_fixed_1u_array_ap_fixed_16_6_5_3_0_1u_config4ohc.v +151 -0
- myproject_prj/solution1/impl/verilog/myproject_start_for_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_32u_config50_U0.v +151 -0
- myproject_prj/solution1/impl/verilog/myproject_start_for_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_32u_config52_U0.v +151 -0
- myproject_prj/solution1/impl/verilog/myproject_start_for_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_48u_config56_U0.v +151 -0
- myproject_prj/solution1/impl/verilog/myproject_transpose_array_array_ap_fixed_1u_config41_Pipeline_VITIS_LOOP_45_1.v +230 -0
- myproject_prj/solution1/impl/verilog/myproject_zeropad2d_cl_array_ap_fixed_8u_array_ap_fixed_16_6_5_3_0_8u_config47_s.v +430 -0
- myproject_prj/solution1/impl/verilog/myproject_zeropad2d_cl_array_ap_fixed_8u_array_ap_fixed_16_6_5_3_0_8u_config48_s.v +430 -0
myproject_prj/solution1/impl/verilog/myproject_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_8u_config35_s.v
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
myproject_prj/solution1/impl/verilog/myproject_conv_2d_cl_array_ap_fixed_24u_array_ap_fixed_41_21_5_3_0_8u_config35_s.v
ADDED
|
@@ -0,0 +1,397 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// ==============================================================
|
| 2 |
+
// Generated by Vitis HLS v2024.1
|
| 3 |
+
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
| 4 |
+
// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
|
| 5 |
+
// ==============================================================
|
| 6 |
+
|
| 7 |
+
`timescale 1 ns / 1 ps
|
| 8 |
+
|
| 9 |
+
module myproject_conv_2d_cl_array_ap_fixed_24u_array_ap_fixed_41_21_5_3_0_8u_config35_s (
|
| 10 |
+
ap_clk,
|
| 11 |
+
ap_rst,
|
| 12 |
+
ap_start,
|
| 13 |
+
start_full_n,
|
| 14 |
+
ap_done,
|
| 15 |
+
ap_continue,
|
| 16 |
+
ap_idle,
|
| 17 |
+
ap_ready,
|
| 18 |
+
start_out,
|
| 19 |
+
start_write,
|
| 20 |
+
layer58_out_dout,
|
| 21 |
+
layer58_out_num_data_valid,
|
| 22 |
+
layer58_out_fifo_cap,
|
| 23 |
+
layer58_out_empty_n,
|
| 24 |
+
layer58_out_read,
|
| 25 |
+
layer35_out_din,
|
| 26 |
+
layer35_out_num_data_valid,
|
| 27 |
+
layer35_out_fifo_cap,
|
| 28 |
+
layer35_out_full_n,
|
| 29 |
+
layer35_out_write
|
| 30 |
+
);
|
| 31 |
+
|
| 32 |
+
parameter ap_ST_fsm_state1 = 3'd1;
|
| 33 |
+
parameter ap_ST_fsm_state2 = 3'd2;
|
| 34 |
+
parameter ap_ST_fsm_state3 = 3'd4;
|
| 35 |
+
|
| 36 |
+
input ap_clk;
|
| 37 |
+
input ap_rst;
|
| 38 |
+
input ap_start;
|
| 39 |
+
input start_full_n;
|
| 40 |
+
output ap_done;
|
| 41 |
+
input ap_continue;
|
| 42 |
+
output ap_idle;
|
| 43 |
+
output ap_ready;
|
| 44 |
+
output start_out;
|
| 45 |
+
output start_write;
|
| 46 |
+
input [383:0] layer58_out_dout;
|
| 47 |
+
input [13:0] layer58_out_num_data_valid;
|
| 48 |
+
input [13:0] layer58_out_fifo_cap;
|
| 49 |
+
input layer58_out_empty_n;
|
| 50 |
+
output layer58_out_read;
|
| 51 |
+
output [327:0] layer35_out_din;
|
| 52 |
+
input [12:0] layer35_out_num_data_valid;
|
| 53 |
+
input [12:0] layer35_out_fifo_cap;
|
| 54 |
+
input layer35_out_full_n;
|
| 55 |
+
output layer35_out_write;
|
| 56 |
+
|
| 57 |
+
reg ap_done;
|
| 58 |
+
reg ap_idle;
|
| 59 |
+
reg start_write;
|
| 60 |
+
reg layer35_out_write;
|
| 61 |
+
|
| 62 |
+
reg real_start;
|
| 63 |
+
reg start_once_reg;
|
| 64 |
+
reg ap_done_reg;
|
| 65 |
+
(* fsm_encoding = "none" *) reg [2:0] ap_CS_fsm;
|
| 66 |
+
wire ap_CS_fsm_state1;
|
| 67 |
+
reg internal_ap_ready;
|
| 68 |
+
reg layer58_out_blk_n;
|
| 69 |
+
wire ap_CS_fsm_state2;
|
| 70 |
+
wire [0:0] icmp_ln52_fu_1252_p2;
|
| 71 |
+
wire [15:0] trunc_ln58_fu_1264_p1;
|
| 72 |
+
reg [15:0] trunc_ln58_reg_1537;
|
| 73 |
+
reg ap_block_state2;
|
| 74 |
+
reg [15:0] trunc_ln58_s_reg_1542;
|
| 75 |
+
reg [15:0] trunc_ln58_10_reg_1547;
|
| 76 |
+
reg [15:0] trunc_ln58_11_reg_1552;
|
| 77 |
+
reg [15:0] trunc_ln58_12_reg_1557;
|
| 78 |
+
reg [15:0] trunc_ln58_13_reg_1562;
|
| 79 |
+
reg [15:0] trunc_ln58_14_reg_1567;
|
| 80 |
+
reg [15:0] trunc_ln58_15_reg_1572;
|
| 81 |
+
reg [15:0] trunc_ln58_16_reg_1577;
|
| 82 |
+
reg [15:0] trunc_ln58_17_reg_1582;
|
| 83 |
+
reg [15:0] trunc_ln58_18_reg_1587;
|
| 84 |
+
reg [15:0] trunc_ln58_19_reg_1592;
|
| 85 |
+
reg [15:0] trunc_ln58_20_reg_1597;
|
| 86 |
+
reg [15:0] trunc_ln58_21_reg_1602;
|
| 87 |
+
reg [15:0] trunc_ln58_22_reg_1607;
|
| 88 |
+
reg [15:0] trunc_ln58_23_reg_1612;
|
| 89 |
+
reg [15:0] trunc_ln58_24_reg_1617;
|
| 90 |
+
reg [15:0] trunc_ln58_25_reg_1622;
|
| 91 |
+
reg [15:0] trunc_ln58_26_reg_1627;
|
| 92 |
+
reg [15:0] trunc_ln58_27_reg_1632;
|
| 93 |
+
reg [15:0] trunc_ln58_28_reg_1637;
|
| 94 |
+
reg [15:0] trunc_ln58_29_reg_1642;
|
| 95 |
+
reg [15:0] trunc_ln58_30_reg_1647;
|
| 96 |
+
reg [15:0] trunc_ln58_31_reg_1652;
|
| 97 |
+
wire grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_8u_config35_s_fu_676_ap_start;
|
| 98 |
+
wire grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_8u_config35_s_fu_676_ap_done;
|
| 99 |
+
wire grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_8u_config35_s_fu_676_ap_idle;
|
| 100 |
+
wire grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_8u_config35_s_fu_676_ap_ready;
|
| 101 |
+
wire [327:0] grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_8u_config35_s_fu_676_layer35_out_din;
|
| 102 |
+
wire grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_8u_config35_s_fu_676_layer35_out_write;
|
| 103 |
+
reg grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_8u_config35_s_fu_676_ap_start_reg;
|
| 104 |
+
reg ap_block_state2_ignore_call27;
|
| 105 |
+
wire ap_CS_fsm_state3;
|
| 106 |
+
reg [12:0] indvar_flatten_fu_666;
|
| 107 |
+
wire [12:0] add_ln52_fu_1258_p2;
|
| 108 |
+
reg ap_block_state1;
|
| 109 |
+
reg layer58_out_read_local;
|
| 110 |
+
reg [2:0] ap_NS_fsm;
|
| 111 |
+
reg ap_ST_fsm_state1_blk;
|
| 112 |
+
reg ap_ST_fsm_state2_blk;
|
| 113 |
+
reg ap_ST_fsm_state3_blk;
|
| 114 |
+
wire ap_ce_reg;
|
| 115 |
+
|
| 116 |
+
// power-on initialization
|
| 117 |
+
initial begin
|
| 118 |
+
#0 start_once_reg = 1'b0;
|
| 119 |
+
#0 ap_done_reg = 1'b0;
|
| 120 |
+
#0 ap_CS_fsm = 3'd1;
|
| 121 |
+
#0 grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_8u_config35_s_fu_676_ap_start_reg = 1'b0;
|
| 122 |
+
#0 indvar_flatten_fu_666 = 13'd0;
|
| 123 |
+
end
|
| 124 |
+
|
| 125 |
+
myproject_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_8u_config35_s grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_8u_config35_s_fu_676(
|
| 126 |
+
.ap_clk(ap_clk),
|
| 127 |
+
.ap_rst(ap_rst),
|
| 128 |
+
.ap_start(grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_8u_config35_s_fu_676_ap_start),
|
| 129 |
+
.ap_done(grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_8u_config35_s_fu_676_ap_done),
|
| 130 |
+
.ap_idle(grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_8u_config35_s_fu_676_ap_idle),
|
| 131 |
+
.ap_ready(grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_8u_config35_s_fu_676_ap_ready),
|
| 132 |
+
.p_read(trunc_ln58_reg_1537),
|
| 133 |
+
.p_read1(trunc_ln58_s_reg_1542),
|
| 134 |
+
.p_read2(trunc_ln58_10_reg_1547),
|
| 135 |
+
.p_read3(trunc_ln58_11_reg_1552),
|
| 136 |
+
.p_read4(trunc_ln58_12_reg_1557),
|
| 137 |
+
.p_read5(trunc_ln58_13_reg_1562),
|
| 138 |
+
.p_read6(trunc_ln58_14_reg_1567),
|
| 139 |
+
.p_read7(trunc_ln58_15_reg_1572),
|
| 140 |
+
.p_read8(trunc_ln58_16_reg_1577),
|
| 141 |
+
.p_read9(trunc_ln58_17_reg_1582),
|
| 142 |
+
.p_read10(trunc_ln58_18_reg_1587),
|
| 143 |
+
.p_read11(trunc_ln58_19_reg_1592),
|
| 144 |
+
.p_read12(trunc_ln58_20_reg_1597),
|
| 145 |
+
.p_read13(trunc_ln58_21_reg_1602),
|
| 146 |
+
.p_read14(trunc_ln58_22_reg_1607),
|
| 147 |
+
.p_read15(trunc_ln58_23_reg_1612),
|
| 148 |
+
.p_read16(trunc_ln58_24_reg_1617),
|
| 149 |
+
.p_read17(trunc_ln58_25_reg_1622),
|
| 150 |
+
.p_read18(trunc_ln58_26_reg_1627),
|
| 151 |
+
.p_read19(trunc_ln58_27_reg_1632),
|
| 152 |
+
.p_read20(trunc_ln58_28_reg_1637),
|
| 153 |
+
.p_read21(trunc_ln58_29_reg_1642),
|
| 154 |
+
.p_read22(trunc_ln58_30_reg_1647),
|
| 155 |
+
.p_read23(trunc_ln58_31_reg_1652),
|
| 156 |
+
.layer35_out_din(grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_8u_config35_s_fu_676_layer35_out_din),
|
| 157 |
+
.layer35_out_num_data_valid(13'd0),
|
| 158 |
+
.layer35_out_fifo_cap(13'd0),
|
| 159 |
+
.layer35_out_full_n(layer35_out_full_n),
|
| 160 |
+
.layer35_out_write(grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_8u_config35_s_fu_676_layer35_out_write)
|
| 161 |
+
);
|
| 162 |
+
|
| 163 |
+
always @ (posedge ap_clk) begin
|
| 164 |
+
if (ap_rst == 1'b1) begin
|
| 165 |
+
ap_CS_fsm <= ap_ST_fsm_state1;
|
| 166 |
+
end else begin
|
| 167 |
+
ap_CS_fsm <= ap_NS_fsm;
|
| 168 |
+
end
|
| 169 |
+
end
|
| 170 |
+
|
| 171 |
+
always @ (posedge ap_clk) begin
|
| 172 |
+
if (ap_rst == 1'b1) begin
|
| 173 |
+
ap_done_reg <= 1'b0;
|
| 174 |
+
end else begin
|
| 175 |
+
if ((ap_continue == 1'b1)) begin
|
| 176 |
+
ap_done_reg <= 1'b0;
|
| 177 |
+
end else if (((1'b0 == ap_block_state2) & (icmp_ln52_fu_1252_p2 == 1'd1) & (1'b1 == ap_CS_fsm_state2))) begin
|
| 178 |
+
ap_done_reg <= 1'b1;
|
| 179 |
+
end
|
| 180 |
+
end
|
| 181 |
+
end
|
| 182 |
+
|
| 183 |
+
always @ (posedge ap_clk) begin
|
| 184 |
+
if (ap_rst == 1'b1) begin
|
| 185 |
+
grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_8u_config35_s_fu_676_ap_start_reg <= 1'b0;
|
| 186 |
+
end else begin
|
| 187 |
+
if (((1'b0 == ap_block_state2_ignore_call27) & (icmp_ln52_fu_1252_p2 == 1'd0) & (1'b1 == ap_CS_fsm_state2))) begin
|
| 188 |
+
grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_8u_config35_s_fu_676_ap_start_reg <= 1'b1;
|
| 189 |
+
end else if ((grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_8u_config35_s_fu_676_ap_ready == 1'b1)) begin
|
| 190 |
+
grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_8u_config35_s_fu_676_ap_start_reg <= 1'b0;
|
| 191 |
+
end
|
| 192 |
+
end
|
| 193 |
+
end
|
| 194 |
+
|
| 195 |
+
always @ (posedge ap_clk) begin
|
| 196 |
+
if (ap_rst == 1'b1) begin
|
| 197 |
+
start_once_reg <= 1'b0;
|
| 198 |
+
end else begin
|
| 199 |
+
if (((real_start == 1'b1) & (internal_ap_ready == 1'b0))) begin
|
| 200 |
+
start_once_reg <= 1'b1;
|
| 201 |
+
end else if ((internal_ap_ready == 1'b1)) begin
|
| 202 |
+
start_once_reg <= 1'b0;
|
| 203 |
+
end
|
| 204 |
+
end
|
| 205 |
+
end
|
| 206 |
+
|
| 207 |
+
always @ (posedge ap_clk) begin
|
| 208 |
+
if (((1'b0 == ap_block_state1) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 209 |
+
indvar_flatten_fu_666 <= 13'd0;
|
| 210 |
+
end else if (((1'b0 == ap_block_state2) & (icmp_ln52_fu_1252_p2 == 1'd0) & (1'b1 == ap_CS_fsm_state2))) begin
|
| 211 |
+
indvar_flatten_fu_666 <= add_ln52_fu_1258_p2;
|
| 212 |
+
end
|
| 213 |
+
end
|
| 214 |
+
|
| 215 |
+
always @ (posedge ap_clk) begin
|
| 216 |
+
if (((1'b0 == ap_block_state2) & (1'b1 == ap_CS_fsm_state2))) begin
|
| 217 |
+
trunc_ln58_10_reg_1547 <= {{layer58_out_dout[47:32]}};
|
| 218 |
+
trunc_ln58_11_reg_1552 <= {{layer58_out_dout[63:48]}};
|
| 219 |
+
trunc_ln58_12_reg_1557 <= {{layer58_out_dout[79:64]}};
|
| 220 |
+
trunc_ln58_13_reg_1562 <= {{layer58_out_dout[95:80]}};
|
| 221 |
+
trunc_ln58_14_reg_1567 <= {{layer58_out_dout[111:96]}};
|
| 222 |
+
trunc_ln58_15_reg_1572 <= {{layer58_out_dout[127:112]}};
|
| 223 |
+
trunc_ln58_16_reg_1577 <= {{layer58_out_dout[143:128]}};
|
| 224 |
+
trunc_ln58_17_reg_1582 <= {{layer58_out_dout[159:144]}};
|
| 225 |
+
trunc_ln58_18_reg_1587 <= {{layer58_out_dout[175:160]}};
|
| 226 |
+
trunc_ln58_19_reg_1592 <= {{layer58_out_dout[191:176]}};
|
| 227 |
+
trunc_ln58_20_reg_1597 <= {{layer58_out_dout[207:192]}};
|
| 228 |
+
trunc_ln58_21_reg_1602 <= {{layer58_out_dout[223:208]}};
|
| 229 |
+
trunc_ln58_22_reg_1607 <= {{layer58_out_dout[239:224]}};
|
| 230 |
+
trunc_ln58_23_reg_1612 <= {{layer58_out_dout[255:240]}};
|
| 231 |
+
trunc_ln58_24_reg_1617 <= {{layer58_out_dout[271:256]}};
|
| 232 |
+
trunc_ln58_25_reg_1622 <= {{layer58_out_dout[287:272]}};
|
| 233 |
+
trunc_ln58_26_reg_1627 <= {{layer58_out_dout[303:288]}};
|
| 234 |
+
trunc_ln58_27_reg_1632 <= {{layer58_out_dout[319:304]}};
|
| 235 |
+
trunc_ln58_28_reg_1637 <= {{layer58_out_dout[335:320]}};
|
| 236 |
+
trunc_ln58_29_reg_1642 <= {{layer58_out_dout[351:336]}};
|
| 237 |
+
trunc_ln58_30_reg_1647 <= {{layer58_out_dout[367:352]}};
|
| 238 |
+
trunc_ln58_31_reg_1652 <= {{layer58_out_dout[383:368]}};
|
| 239 |
+
trunc_ln58_reg_1537 <= trunc_ln58_fu_1264_p1;
|
| 240 |
+
trunc_ln58_s_reg_1542 <= {{layer58_out_dout[31:16]}};
|
| 241 |
+
end
|
| 242 |
+
end
|
| 243 |
+
|
| 244 |
+
always @ (*) begin
|
| 245 |
+
if ((1'b1 == ap_block_state1)) begin
|
| 246 |
+
ap_ST_fsm_state1_blk = 1'b1;
|
| 247 |
+
end else begin
|
| 248 |
+
ap_ST_fsm_state1_blk = 1'b0;
|
| 249 |
+
end
|
| 250 |
+
end
|
| 251 |
+
|
| 252 |
+
always @ (*) begin
|
| 253 |
+
if ((1'b1 == ap_block_state2)) begin
|
| 254 |
+
ap_ST_fsm_state2_blk = 1'b1;
|
| 255 |
+
end else begin
|
| 256 |
+
ap_ST_fsm_state2_blk = 1'b0;
|
| 257 |
+
end
|
| 258 |
+
end
|
| 259 |
+
|
| 260 |
+
always @ (*) begin
|
| 261 |
+
if ((grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_8u_config35_s_fu_676_ap_done == 1'b0)) begin
|
| 262 |
+
ap_ST_fsm_state3_blk = 1'b1;
|
| 263 |
+
end else begin
|
| 264 |
+
ap_ST_fsm_state3_blk = 1'b0;
|
| 265 |
+
end
|
| 266 |
+
end
|
| 267 |
+
|
| 268 |
+
always @ (*) begin
|
| 269 |
+
if (((1'b0 == ap_block_state2) & (icmp_ln52_fu_1252_p2 == 1'd1) & (1'b1 == ap_CS_fsm_state2))) begin
|
| 270 |
+
ap_done = 1'b1;
|
| 271 |
+
end else begin
|
| 272 |
+
ap_done = ap_done_reg;
|
| 273 |
+
end
|
| 274 |
+
end
|
| 275 |
+
|
| 276 |
+
always @ (*) begin
|
| 277 |
+
if (((real_start == 1'b0) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 278 |
+
ap_idle = 1'b1;
|
| 279 |
+
end else begin
|
| 280 |
+
ap_idle = 1'b0;
|
| 281 |
+
end
|
| 282 |
+
end
|
| 283 |
+
|
| 284 |
+
always @ (*) begin
|
| 285 |
+
if (((1'b0 == ap_block_state2) & (icmp_ln52_fu_1252_p2 == 1'd1) & (1'b1 == ap_CS_fsm_state2))) begin
|
| 286 |
+
internal_ap_ready = 1'b1;
|
| 287 |
+
end else begin
|
| 288 |
+
internal_ap_ready = 1'b0;
|
| 289 |
+
end
|
| 290 |
+
end
|
| 291 |
+
|
| 292 |
+
always @ (*) begin
|
| 293 |
+
if ((1'b1 == ap_CS_fsm_state3)) begin
|
| 294 |
+
layer35_out_write = grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_8u_config35_s_fu_676_layer35_out_write;
|
| 295 |
+
end else begin
|
| 296 |
+
layer35_out_write = 1'b0;
|
| 297 |
+
end
|
| 298 |
+
end
|
| 299 |
+
|
| 300 |
+
always @ (*) begin
|
| 301 |
+
if (((icmp_ln52_fu_1252_p2 == 1'd0) & (1'b1 == ap_CS_fsm_state2))) begin
|
| 302 |
+
layer58_out_blk_n = layer58_out_empty_n;
|
| 303 |
+
end else begin
|
| 304 |
+
layer58_out_blk_n = 1'b1;
|
| 305 |
+
end
|
| 306 |
+
end
|
| 307 |
+
|
| 308 |
+
always @ (*) begin
|
| 309 |
+
if (((1'b0 == ap_block_state2) & (icmp_ln52_fu_1252_p2 == 1'd0) & (1'b1 == ap_CS_fsm_state2))) begin
|
| 310 |
+
layer58_out_read_local = 1'b1;
|
| 311 |
+
end else begin
|
| 312 |
+
layer58_out_read_local = 1'b0;
|
| 313 |
+
end
|
| 314 |
+
end
|
| 315 |
+
|
| 316 |
+
always @ (*) begin
|
| 317 |
+
if (((start_once_reg == 1'b0) & (start_full_n == 1'b0))) begin
|
| 318 |
+
real_start = 1'b0;
|
| 319 |
+
end else begin
|
| 320 |
+
real_start = ap_start;
|
| 321 |
+
end
|
| 322 |
+
end
|
| 323 |
+
|
| 324 |
+
always @ (*) begin
|
| 325 |
+
if (((real_start == 1'b1) & (start_once_reg == 1'b0))) begin
|
| 326 |
+
start_write = 1'b1;
|
| 327 |
+
end else begin
|
| 328 |
+
start_write = 1'b0;
|
| 329 |
+
end
|
| 330 |
+
end
|
| 331 |
+
|
| 332 |
+
always @ (*) begin
|
| 333 |
+
case (ap_CS_fsm)
|
| 334 |
+
ap_ST_fsm_state1 : begin
|
| 335 |
+
if (((1'b0 == ap_block_state1) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 336 |
+
ap_NS_fsm = ap_ST_fsm_state2;
|
| 337 |
+
end else begin
|
| 338 |
+
ap_NS_fsm = ap_ST_fsm_state1;
|
| 339 |
+
end
|
| 340 |
+
end
|
| 341 |
+
ap_ST_fsm_state2 : begin
|
| 342 |
+
if (((1'b0 == ap_block_state2) & (icmp_ln52_fu_1252_p2 == 1'd1) & (1'b1 == ap_CS_fsm_state2))) begin
|
| 343 |
+
ap_NS_fsm = ap_ST_fsm_state1;
|
| 344 |
+
end else if (((1'b0 == ap_block_state2) & (icmp_ln52_fu_1252_p2 == 1'd0) & (1'b1 == ap_CS_fsm_state2))) begin
|
| 345 |
+
ap_NS_fsm = ap_ST_fsm_state3;
|
| 346 |
+
end else begin
|
| 347 |
+
ap_NS_fsm = ap_ST_fsm_state2;
|
| 348 |
+
end
|
| 349 |
+
end
|
| 350 |
+
ap_ST_fsm_state3 : begin
|
| 351 |
+
if (((1'b1 == ap_CS_fsm_state3) & (grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_8u_config35_s_fu_676_ap_done == 1'b1))) begin
|
| 352 |
+
ap_NS_fsm = ap_ST_fsm_state2;
|
| 353 |
+
end else begin
|
| 354 |
+
ap_NS_fsm = ap_ST_fsm_state3;
|
| 355 |
+
end
|
| 356 |
+
end
|
| 357 |
+
default : begin
|
| 358 |
+
ap_NS_fsm = 'bx;
|
| 359 |
+
end
|
| 360 |
+
endcase
|
| 361 |
+
end
|
| 362 |
+
|
| 363 |
+
assign add_ln52_fu_1258_p2 = (indvar_flatten_fu_666 + 13'd1);
|
| 364 |
+
|
| 365 |
+
assign ap_CS_fsm_state1 = ap_CS_fsm[32'd0];
|
| 366 |
+
|
| 367 |
+
assign ap_CS_fsm_state2 = ap_CS_fsm[32'd1];
|
| 368 |
+
|
| 369 |
+
assign ap_CS_fsm_state3 = ap_CS_fsm[32'd2];
|
| 370 |
+
|
| 371 |
+
always @ (*) begin
|
| 372 |
+
ap_block_state1 = ((real_start == 1'b0) | (ap_done_reg == 1'b1));
|
| 373 |
+
end
|
| 374 |
+
|
| 375 |
+
always @ (*) begin
|
| 376 |
+
ap_block_state2 = ((icmp_ln52_fu_1252_p2 == 1'd0) & (layer58_out_empty_n == 1'b0));
|
| 377 |
+
end
|
| 378 |
+
|
| 379 |
+
always @ (*) begin
|
| 380 |
+
ap_block_state2_ignore_call27 = ((icmp_ln52_fu_1252_p2 == 1'd0) & (layer58_out_empty_n == 1'b0));
|
| 381 |
+
end
|
| 382 |
+
|
| 383 |
+
assign ap_ready = internal_ap_ready;
|
| 384 |
+
|
| 385 |
+
assign grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_8u_config35_s_fu_676_ap_start = grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_8u_config35_s_fu_676_ap_start_reg;
|
| 386 |
+
|
| 387 |
+
assign icmp_ln52_fu_1252_p2 = ((indvar_flatten_fu_666 == 13'd4356) ? 1'b1 : 1'b0);
|
| 388 |
+
|
| 389 |
+
assign layer35_out_din = grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_8u_config35_s_fu_676_layer35_out_din;
|
| 390 |
+
|
| 391 |
+
assign layer58_out_read = layer58_out_read_local;
|
| 392 |
+
|
| 393 |
+
assign start_out = real_start;
|
| 394 |
+
|
| 395 |
+
assign trunc_ln58_fu_1264_p1 = layer58_out_dout[15:0];
|
| 396 |
+
|
| 397 |
+
endmodule //myproject_conv_2d_cl_array_ap_fixed_24u_array_ap_fixed_41_21_5_3_0_8u_config35_s
|
myproject_prj/solution1/impl/verilog/myproject_conv_2d_cl_array_array_ap_fixed_41_21_5_3_0_32u_config12_s.v
ADDED
|
@@ -0,0 +1,373 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// ==============================================================
|
| 2 |
+
// Generated by Vitis HLS v2024.1
|
| 3 |
+
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
| 4 |
+
// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
|
| 5 |
+
// ==============================================================
|
| 6 |
+
|
| 7 |
+
`timescale 1 ns / 1 ps
|
| 8 |
+
|
| 9 |
+
module myproject_conv_2d_cl_array_array_ap_fixed_41_21_5_3_0_32u_config12_s (
|
| 10 |
+
ap_clk,
|
| 11 |
+
ap_rst,
|
| 12 |
+
ap_start,
|
| 13 |
+
start_full_n,
|
| 14 |
+
ap_done,
|
| 15 |
+
ap_continue,
|
| 16 |
+
ap_idle,
|
| 17 |
+
ap_ready,
|
| 18 |
+
start_out,
|
| 19 |
+
start_write,
|
| 20 |
+
layer50_out_dout,
|
| 21 |
+
layer50_out_num_data_valid,
|
| 22 |
+
layer50_out_fifo_cap,
|
| 23 |
+
layer50_out_empty_n,
|
| 24 |
+
layer50_out_read,
|
| 25 |
+
layer12_out_din,
|
| 26 |
+
layer12_out_num_data_valid,
|
| 27 |
+
layer12_out_fifo_cap,
|
| 28 |
+
layer12_out_full_n,
|
| 29 |
+
layer12_out_write
|
| 30 |
+
);
|
| 31 |
+
|
| 32 |
+
parameter ap_ST_fsm_state1 = 3'd1;
|
| 33 |
+
parameter ap_ST_fsm_state2 = 3'd2;
|
| 34 |
+
parameter ap_ST_fsm_state3 = 3'd4;
|
| 35 |
+
|
| 36 |
+
input ap_clk;
|
| 37 |
+
input ap_rst;
|
| 38 |
+
input ap_start;
|
| 39 |
+
input start_full_n;
|
| 40 |
+
output ap_done;
|
| 41 |
+
input ap_continue;
|
| 42 |
+
output ap_idle;
|
| 43 |
+
output ap_ready;
|
| 44 |
+
output start_out;
|
| 45 |
+
output start_write;
|
| 46 |
+
input [255:0] layer50_out_dout;
|
| 47 |
+
input [9:0] layer50_out_num_data_valid;
|
| 48 |
+
input [9:0] layer50_out_fifo_cap;
|
| 49 |
+
input layer50_out_empty_n;
|
| 50 |
+
output layer50_out_read;
|
| 51 |
+
output [1311:0] layer12_out_din;
|
| 52 |
+
input [8:0] layer12_out_num_data_valid;
|
| 53 |
+
input [8:0] layer12_out_fifo_cap;
|
| 54 |
+
input layer12_out_full_n;
|
| 55 |
+
output layer12_out_write;
|
| 56 |
+
|
| 57 |
+
reg ap_done;
|
| 58 |
+
reg ap_idle;
|
| 59 |
+
reg start_write;
|
| 60 |
+
reg layer12_out_write;
|
| 61 |
+
|
| 62 |
+
reg real_start;
|
| 63 |
+
reg start_once_reg;
|
| 64 |
+
reg ap_done_reg;
|
| 65 |
+
(* fsm_encoding = "none" *) reg [2:0] ap_CS_fsm;
|
| 66 |
+
wire ap_CS_fsm_state1;
|
| 67 |
+
reg internal_ap_ready;
|
| 68 |
+
reg layer50_out_blk_n;
|
| 69 |
+
wire ap_CS_fsm_state2;
|
| 70 |
+
wire [0:0] icmp_ln52_fu_860_p2;
|
| 71 |
+
wire [15:0] trunc_ln58_fu_872_p1;
|
| 72 |
+
reg [15:0] trunc_ln58_reg_1057;
|
| 73 |
+
reg ap_block_state2;
|
| 74 |
+
reg [15:0] trunc_ln58_s_reg_1062;
|
| 75 |
+
reg [15:0] trunc_ln58_226_reg_1067;
|
| 76 |
+
reg [15:0] trunc_ln58_227_reg_1072;
|
| 77 |
+
reg [15:0] trunc_ln58_228_reg_1077;
|
| 78 |
+
reg [15:0] trunc_ln58_229_reg_1082;
|
| 79 |
+
reg [15:0] trunc_ln58_230_reg_1087;
|
| 80 |
+
reg [15:0] trunc_ln58_231_reg_1092;
|
| 81 |
+
reg [15:0] trunc_ln58_232_reg_1097;
|
| 82 |
+
reg [15:0] trunc_ln58_233_reg_1102;
|
| 83 |
+
reg [15:0] trunc_ln58_234_reg_1107;
|
| 84 |
+
reg [15:0] trunc_ln58_235_reg_1112;
|
| 85 |
+
reg [15:0] trunc_ln58_236_reg_1117;
|
| 86 |
+
reg [15:0] trunc_ln58_237_reg_1122;
|
| 87 |
+
reg [15:0] trunc_ln58_238_reg_1127;
|
| 88 |
+
reg [15:0] trunc_ln58_239_reg_1132;
|
| 89 |
+
wire grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_32u_config12_s_fu_468_ap_start;
|
| 90 |
+
wire grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_32u_config12_s_fu_468_ap_done;
|
| 91 |
+
wire grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_32u_config12_s_fu_468_ap_idle;
|
| 92 |
+
wire grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_32u_config12_s_fu_468_ap_ready;
|
| 93 |
+
wire [1311:0] grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_32u_config12_s_fu_468_layer12_out_din;
|
| 94 |
+
wire grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_32u_config12_s_fu_468_layer12_out_write;
|
| 95 |
+
reg grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_32u_config12_s_fu_468_ap_start_reg;
|
| 96 |
+
reg ap_block_state2_ignore_call19;
|
| 97 |
+
wire ap_CS_fsm_state3;
|
| 98 |
+
reg [8:0] indvar_flatten_fu_458;
|
| 99 |
+
wire [8:0] add_ln52_fu_866_p2;
|
| 100 |
+
reg ap_block_state1;
|
| 101 |
+
reg layer50_out_read_local;
|
| 102 |
+
reg [2:0] ap_NS_fsm;
|
| 103 |
+
reg ap_ST_fsm_state1_blk;
|
| 104 |
+
reg ap_ST_fsm_state2_blk;
|
| 105 |
+
reg ap_ST_fsm_state3_blk;
|
| 106 |
+
wire ap_ce_reg;
|
| 107 |
+
|
| 108 |
+
// power-on initialization
|
| 109 |
+
initial begin
|
| 110 |
+
#0 start_once_reg = 1'b0;
|
| 111 |
+
#0 ap_done_reg = 1'b0;
|
| 112 |
+
#0 ap_CS_fsm = 3'd1;
|
| 113 |
+
#0 grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_32u_config12_s_fu_468_ap_start_reg = 1'b0;
|
| 114 |
+
#0 indvar_flatten_fu_458 = 9'd0;
|
| 115 |
+
end
|
| 116 |
+
|
| 117 |
+
myproject_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_32u_config12_s grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_32u_config12_s_fu_468(
|
| 118 |
+
.ap_clk(ap_clk),
|
| 119 |
+
.ap_rst(ap_rst),
|
| 120 |
+
.ap_start(grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_32u_config12_s_fu_468_ap_start),
|
| 121 |
+
.ap_done(grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_32u_config12_s_fu_468_ap_done),
|
| 122 |
+
.ap_idle(grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_32u_config12_s_fu_468_ap_idle),
|
| 123 |
+
.ap_ready(grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_32u_config12_s_fu_468_ap_ready),
|
| 124 |
+
.p_read(trunc_ln58_reg_1057),
|
| 125 |
+
.p_read1(trunc_ln58_s_reg_1062),
|
| 126 |
+
.p_read2(trunc_ln58_226_reg_1067),
|
| 127 |
+
.p_read3(trunc_ln58_227_reg_1072),
|
| 128 |
+
.p_read4(trunc_ln58_228_reg_1077),
|
| 129 |
+
.p_read5(trunc_ln58_229_reg_1082),
|
| 130 |
+
.p_read6(trunc_ln58_230_reg_1087),
|
| 131 |
+
.p_read7(trunc_ln58_231_reg_1092),
|
| 132 |
+
.p_read8(trunc_ln58_232_reg_1097),
|
| 133 |
+
.p_read9(trunc_ln58_233_reg_1102),
|
| 134 |
+
.p_read10(trunc_ln58_234_reg_1107),
|
| 135 |
+
.p_read11(trunc_ln58_235_reg_1112),
|
| 136 |
+
.p_read12(trunc_ln58_236_reg_1117),
|
| 137 |
+
.p_read13(trunc_ln58_237_reg_1122),
|
| 138 |
+
.p_read14(trunc_ln58_238_reg_1127),
|
| 139 |
+
.p_read15(trunc_ln58_239_reg_1132),
|
| 140 |
+
.layer12_out_din(grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_32u_config12_s_fu_468_layer12_out_din),
|
| 141 |
+
.layer12_out_num_data_valid(9'd0),
|
| 142 |
+
.layer12_out_fifo_cap(9'd0),
|
| 143 |
+
.layer12_out_full_n(layer12_out_full_n),
|
| 144 |
+
.layer12_out_write(grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_32u_config12_s_fu_468_layer12_out_write)
|
| 145 |
+
);
|
| 146 |
+
|
| 147 |
+
always @ (posedge ap_clk) begin
|
| 148 |
+
if (ap_rst == 1'b1) begin
|
| 149 |
+
ap_CS_fsm <= ap_ST_fsm_state1;
|
| 150 |
+
end else begin
|
| 151 |
+
ap_CS_fsm <= ap_NS_fsm;
|
| 152 |
+
end
|
| 153 |
+
end
|
| 154 |
+
|
| 155 |
+
always @ (posedge ap_clk) begin
|
| 156 |
+
if (ap_rst == 1'b1) begin
|
| 157 |
+
ap_done_reg <= 1'b0;
|
| 158 |
+
end else begin
|
| 159 |
+
if ((ap_continue == 1'b1)) begin
|
| 160 |
+
ap_done_reg <= 1'b0;
|
| 161 |
+
end else if (((1'b0 == ap_block_state2) & (icmp_ln52_fu_860_p2 == 1'd1) & (1'b1 == ap_CS_fsm_state2))) begin
|
| 162 |
+
ap_done_reg <= 1'b1;
|
| 163 |
+
end
|
| 164 |
+
end
|
| 165 |
+
end
|
| 166 |
+
|
| 167 |
+
always @ (posedge ap_clk) begin
|
| 168 |
+
if (ap_rst == 1'b1) begin
|
| 169 |
+
grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_32u_config12_s_fu_468_ap_start_reg <= 1'b0;
|
| 170 |
+
end else begin
|
| 171 |
+
if (((1'b0 == ap_block_state2_ignore_call19) & (icmp_ln52_fu_860_p2 == 1'd0) & (1'b1 == ap_CS_fsm_state2))) begin
|
| 172 |
+
grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_32u_config12_s_fu_468_ap_start_reg <= 1'b1;
|
| 173 |
+
end else if ((grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_32u_config12_s_fu_468_ap_ready == 1'b1)) begin
|
| 174 |
+
grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_32u_config12_s_fu_468_ap_start_reg <= 1'b0;
|
| 175 |
+
end
|
| 176 |
+
end
|
| 177 |
+
end
|
| 178 |
+
|
| 179 |
+
always @ (posedge ap_clk) begin
|
| 180 |
+
if (ap_rst == 1'b1) begin
|
| 181 |
+
start_once_reg <= 1'b0;
|
| 182 |
+
end else begin
|
| 183 |
+
if (((real_start == 1'b1) & (internal_ap_ready == 1'b0))) begin
|
| 184 |
+
start_once_reg <= 1'b1;
|
| 185 |
+
end else if ((internal_ap_ready == 1'b1)) begin
|
| 186 |
+
start_once_reg <= 1'b0;
|
| 187 |
+
end
|
| 188 |
+
end
|
| 189 |
+
end
|
| 190 |
+
|
| 191 |
+
always @ (posedge ap_clk) begin
|
| 192 |
+
if (((1'b0 == ap_block_state1) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 193 |
+
indvar_flatten_fu_458 <= 9'd0;
|
| 194 |
+
end else if (((1'b0 == ap_block_state2) & (icmp_ln52_fu_860_p2 == 1'd0) & (1'b1 == ap_CS_fsm_state2))) begin
|
| 195 |
+
indvar_flatten_fu_458 <= add_ln52_fu_866_p2;
|
| 196 |
+
end
|
| 197 |
+
end
|
| 198 |
+
|
| 199 |
+
always @ (posedge ap_clk) begin
|
| 200 |
+
if (((1'b0 == ap_block_state2) & (1'b1 == ap_CS_fsm_state2))) begin
|
| 201 |
+
trunc_ln58_226_reg_1067 <= {{layer50_out_dout[47:32]}};
|
| 202 |
+
trunc_ln58_227_reg_1072 <= {{layer50_out_dout[63:48]}};
|
| 203 |
+
trunc_ln58_228_reg_1077 <= {{layer50_out_dout[79:64]}};
|
| 204 |
+
trunc_ln58_229_reg_1082 <= {{layer50_out_dout[95:80]}};
|
| 205 |
+
trunc_ln58_230_reg_1087 <= {{layer50_out_dout[111:96]}};
|
| 206 |
+
trunc_ln58_231_reg_1092 <= {{layer50_out_dout[127:112]}};
|
| 207 |
+
trunc_ln58_232_reg_1097 <= {{layer50_out_dout[143:128]}};
|
| 208 |
+
trunc_ln58_233_reg_1102 <= {{layer50_out_dout[159:144]}};
|
| 209 |
+
trunc_ln58_234_reg_1107 <= {{layer50_out_dout[175:160]}};
|
| 210 |
+
trunc_ln58_235_reg_1112 <= {{layer50_out_dout[191:176]}};
|
| 211 |
+
trunc_ln58_236_reg_1117 <= {{layer50_out_dout[207:192]}};
|
| 212 |
+
trunc_ln58_237_reg_1122 <= {{layer50_out_dout[223:208]}};
|
| 213 |
+
trunc_ln58_238_reg_1127 <= {{layer50_out_dout[239:224]}};
|
| 214 |
+
trunc_ln58_239_reg_1132 <= {{layer50_out_dout[255:240]}};
|
| 215 |
+
trunc_ln58_reg_1057 <= trunc_ln58_fu_872_p1;
|
| 216 |
+
trunc_ln58_s_reg_1062 <= {{layer50_out_dout[31:16]}};
|
| 217 |
+
end
|
| 218 |
+
end
|
| 219 |
+
|
| 220 |
+
always @ (*) begin
|
| 221 |
+
if ((1'b1 == ap_block_state1)) begin
|
| 222 |
+
ap_ST_fsm_state1_blk = 1'b1;
|
| 223 |
+
end else begin
|
| 224 |
+
ap_ST_fsm_state1_blk = 1'b0;
|
| 225 |
+
end
|
| 226 |
+
end
|
| 227 |
+
|
| 228 |
+
always @ (*) begin
|
| 229 |
+
if ((1'b1 == ap_block_state2)) begin
|
| 230 |
+
ap_ST_fsm_state2_blk = 1'b1;
|
| 231 |
+
end else begin
|
| 232 |
+
ap_ST_fsm_state2_blk = 1'b0;
|
| 233 |
+
end
|
| 234 |
+
end
|
| 235 |
+
|
| 236 |
+
always @ (*) begin
|
| 237 |
+
if ((grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_32u_config12_s_fu_468_ap_done == 1'b0)) begin
|
| 238 |
+
ap_ST_fsm_state3_blk = 1'b1;
|
| 239 |
+
end else begin
|
| 240 |
+
ap_ST_fsm_state3_blk = 1'b0;
|
| 241 |
+
end
|
| 242 |
+
end
|
| 243 |
+
|
| 244 |
+
always @ (*) begin
|
| 245 |
+
if (((1'b0 == ap_block_state2) & (icmp_ln52_fu_860_p2 == 1'd1) & (1'b1 == ap_CS_fsm_state2))) begin
|
| 246 |
+
ap_done = 1'b1;
|
| 247 |
+
end else begin
|
| 248 |
+
ap_done = ap_done_reg;
|
| 249 |
+
end
|
| 250 |
+
end
|
| 251 |
+
|
| 252 |
+
always @ (*) begin
|
| 253 |
+
if (((real_start == 1'b0) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 254 |
+
ap_idle = 1'b1;
|
| 255 |
+
end else begin
|
| 256 |
+
ap_idle = 1'b0;
|
| 257 |
+
end
|
| 258 |
+
end
|
| 259 |
+
|
| 260 |
+
always @ (*) begin
|
| 261 |
+
if (((1'b0 == ap_block_state2) & (icmp_ln52_fu_860_p2 == 1'd1) & (1'b1 == ap_CS_fsm_state2))) begin
|
| 262 |
+
internal_ap_ready = 1'b1;
|
| 263 |
+
end else begin
|
| 264 |
+
internal_ap_ready = 1'b0;
|
| 265 |
+
end
|
| 266 |
+
end
|
| 267 |
+
|
| 268 |
+
always @ (*) begin
|
| 269 |
+
if ((1'b1 == ap_CS_fsm_state3)) begin
|
| 270 |
+
layer12_out_write = grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_32u_config12_s_fu_468_layer12_out_write;
|
| 271 |
+
end else begin
|
| 272 |
+
layer12_out_write = 1'b0;
|
| 273 |
+
end
|
| 274 |
+
end
|
| 275 |
+
|
| 276 |
+
always @ (*) begin
|
| 277 |
+
if (((icmp_ln52_fu_860_p2 == 1'd0) & (1'b1 == ap_CS_fsm_state2))) begin
|
| 278 |
+
layer50_out_blk_n = layer50_out_empty_n;
|
| 279 |
+
end else begin
|
| 280 |
+
layer50_out_blk_n = 1'b1;
|
| 281 |
+
end
|
| 282 |
+
end
|
| 283 |
+
|
| 284 |
+
always @ (*) begin
|
| 285 |
+
if (((1'b0 == ap_block_state2) & (icmp_ln52_fu_860_p2 == 1'd0) & (1'b1 == ap_CS_fsm_state2))) begin
|
| 286 |
+
layer50_out_read_local = 1'b1;
|
| 287 |
+
end else begin
|
| 288 |
+
layer50_out_read_local = 1'b0;
|
| 289 |
+
end
|
| 290 |
+
end
|
| 291 |
+
|
| 292 |
+
always @ (*) begin
|
| 293 |
+
if (((start_once_reg == 1'b0) & (start_full_n == 1'b0))) begin
|
| 294 |
+
real_start = 1'b0;
|
| 295 |
+
end else begin
|
| 296 |
+
real_start = ap_start;
|
| 297 |
+
end
|
| 298 |
+
end
|
| 299 |
+
|
| 300 |
+
always @ (*) begin
|
| 301 |
+
if (((real_start == 1'b1) & (start_once_reg == 1'b0))) begin
|
| 302 |
+
start_write = 1'b1;
|
| 303 |
+
end else begin
|
| 304 |
+
start_write = 1'b0;
|
| 305 |
+
end
|
| 306 |
+
end
|
| 307 |
+
|
| 308 |
+
always @ (*) begin
|
| 309 |
+
case (ap_CS_fsm)
|
| 310 |
+
ap_ST_fsm_state1 : begin
|
| 311 |
+
if (((1'b0 == ap_block_state1) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 312 |
+
ap_NS_fsm = ap_ST_fsm_state2;
|
| 313 |
+
end else begin
|
| 314 |
+
ap_NS_fsm = ap_ST_fsm_state1;
|
| 315 |
+
end
|
| 316 |
+
end
|
| 317 |
+
ap_ST_fsm_state2 : begin
|
| 318 |
+
if (((1'b0 == ap_block_state2) & (icmp_ln52_fu_860_p2 == 1'd1) & (1'b1 == ap_CS_fsm_state2))) begin
|
| 319 |
+
ap_NS_fsm = ap_ST_fsm_state1;
|
| 320 |
+
end else if (((1'b0 == ap_block_state2) & (icmp_ln52_fu_860_p2 == 1'd0) & (1'b1 == ap_CS_fsm_state2))) begin
|
| 321 |
+
ap_NS_fsm = ap_ST_fsm_state3;
|
| 322 |
+
end else begin
|
| 323 |
+
ap_NS_fsm = ap_ST_fsm_state2;
|
| 324 |
+
end
|
| 325 |
+
end
|
| 326 |
+
ap_ST_fsm_state3 : begin
|
| 327 |
+
if (((1'b1 == ap_CS_fsm_state3) & (grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_32u_config12_s_fu_468_ap_done == 1'b1))) begin
|
| 328 |
+
ap_NS_fsm = ap_ST_fsm_state2;
|
| 329 |
+
end else begin
|
| 330 |
+
ap_NS_fsm = ap_ST_fsm_state3;
|
| 331 |
+
end
|
| 332 |
+
end
|
| 333 |
+
default : begin
|
| 334 |
+
ap_NS_fsm = 'bx;
|
| 335 |
+
end
|
| 336 |
+
endcase
|
| 337 |
+
end
|
| 338 |
+
|
| 339 |
+
assign add_ln52_fu_866_p2 = (indvar_flatten_fu_458 + 9'd1);
|
| 340 |
+
|
| 341 |
+
assign ap_CS_fsm_state1 = ap_CS_fsm[32'd0];
|
| 342 |
+
|
| 343 |
+
assign ap_CS_fsm_state2 = ap_CS_fsm[32'd1];
|
| 344 |
+
|
| 345 |
+
assign ap_CS_fsm_state3 = ap_CS_fsm[32'd2];
|
| 346 |
+
|
| 347 |
+
always @ (*) begin
|
| 348 |
+
ap_block_state1 = ((real_start == 1'b0) | (ap_done_reg == 1'b1));
|
| 349 |
+
end
|
| 350 |
+
|
| 351 |
+
always @ (*) begin
|
| 352 |
+
ap_block_state2 = ((icmp_ln52_fu_860_p2 == 1'd0) & (layer50_out_empty_n == 1'b0));
|
| 353 |
+
end
|
| 354 |
+
|
| 355 |
+
always @ (*) begin
|
| 356 |
+
ap_block_state2_ignore_call19 = ((icmp_ln52_fu_860_p2 == 1'd0) & (layer50_out_empty_n == 1'b0));
|
| 357 |
+
end
|
| 358 |
+
|
| 359 |
+
assign ap_ready = internal_ap_ready;
|
| 360 |
+
|
| 361 |
+
assign grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_32u_config12_s_fu_468_ap_start = grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_32u_config12_s_fu_468_ap_start_reg;
|
| 362 |
+
|
| 363 |
+
assign icmp_ln52_fu_860_p2 = ((indvar_flatten_fu_458 == 9'd324) ? 1'b1 : 1'b0);
|
| 364 |
+
|
| 365 |
+
assign layer12_out_din = grp_compute_output_buffer_2d_array_array_ap_fixed_41_21_5_3_0_32u_config12_s_fu_468_layer12_out_din;
|
| 366 |
+
|
| 367 |
+
assign layer50_out_read = layer50_out_read_local;
|
| 368 |
+
|
| 369 |
+
assign start_out = real_start;
|
| 370 |
+
|
| 371 |
+
assign trunc_ln58_fu_872_p1 = layer50_out_dout[15:0];
|
| 372 |
+
|
| 373 |
+
endmodule //myproject_conv_2d_cl_array_array_ap_fixed_41_21_5_3_0_32u_config12_s
|
myproject_prj/solution1/impl/verilog/myproject_conv_2d_cl_array_array_ap_fixed_43_23_5_3_0_64u_config19_s.v
ADDED
|
@@ -0,0 +1,517 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// ==============================================================
|
| 2 |
+
// Generated by Vitis HLS v2024.1
|
| 3 |
+
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
| 4 |
+
// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
|
| 5 |
+
// ==============================================================
|
| 6 |
+
|
| 7 |
+
`timescale 1 ns / 1 ps
|
| 8 |
+
|
| 9 |
+
module myproject_conv_2d_cl_array_array_ap_fixed_43_23_5_3_0_64u_config19_s (
|
| 10 |
+
ap_clk,
|
| 11 |
+
ap_rst,
|
| 12 |
+
ap_start,
|
| 13 |
+
start_full_n,
|
| 14 |
+
ap_done,
|
| 15 |
+
ap_continue,
|
| 16 |
+
ap_idle,
|
| 17 |
+
ap_ready,
|
| 18 |
+
start_out,
|
| 19 |
+
start_write,
|
| 20 |
+
layer53_out_dout,
|
| 21 |
+
layer53_out_num_data_valid,
|
| 22 |
+
layer53_out_fifo_cap,
|
| 23 |
+
layer53_out_empty_n,
|
| 24 |
+
layer53_out_read,
|
| 25 |
+
layer19_out_din,
|
| 26 |
+
layer19_out_num_data_valid,
|
| 27 |
+
layer19_out_fifo_cap,
|
| 28 |
+
layer19_out_full_n,
|
| 29 |
+
layer19_out_write
|
| 30 |
+
);
|
| 31 |
+
|
| 32 |
+
parameter ap_ST_fsm_state1 = 3'd1;
|
| 33 |
+
parameter ap_ST_fsm_state2 = 3'd2;
|
| 34 |
+
parameter ap_ST_fsm_state3 = 3'd4;
|
| 35 |
+
|
| 36 |
+
input ap_clk;
|
| 37 |
+
input ap_rst;
|
| 38 |
+
input ap_start;
|
| 39 |
+
input start_full_n;
|
| 40 |
+
output ap_done;
|
| 41 |
+
input ap_continue;
|
| 42 |
+
output ap_idle;
|
| 43 |
+
output ap_ready;
|
| 44 |
+
output start_out;
|
| 45 |
+
output start_write;
|
| 46 |
+
input [1023:0] layer53_out_dout;
|
| 47 |
+
input [7:0] layer53_out_num_data_valid;
|
| 48 |
+
input [7:0] layer53_out_fifo_cap;
|
| 49 |
+
input layer53_out_empty_n;
|
| 50 |
+
output layer53_out_read;
|
| 51 |
+
output [2751:0] layer19_out_din;
|
| 52 |
+
input [6:0] layer19_out_num_data_valid;
|
| 53 |
+
input [6:0] layer19_out_fifo_cap;
|
| 54 |
+
input layer19_out_full_n;
|
| 55 |
+
output layer19_out_write;
|
| 56 |
+
|
| 57 |
+
reg ap_done;
|
| 58 |
+
reg ap_idle;
|
| 59 |
+
reg start_write;
|
| 60 |
+
reg layer19_out_write;
|
| 61 |
+
|
| 62 |
+
reg real_start;
|
| 63 |
+
reg start_once_reg;
|
| 64 |
+
reg ap_done_reg;
|
| 65 |
+
(* fsm_encoding = "none" *) reg [2:0] ap_CS_fsm;
|
| 66 |
+
wire ap_CS_fsm_state1;
|
| 67 |
+
reg internal_ap_ready;
|
| 68 |
+
reg layer53_out_blk_n;
|
| 69 |
+
wire ap_CS_fsm_state2;
|
| 70 |
+
wire [0:0] icmp_ln52_fu_3212_p2;
|
| 71 |
+
wire [15:0] trunc_ln58_fu_3224_p1;
|
| 72 |
+
reg [15:0] trunc_ln58_reg_3937;
|
| 73 |
+
reg ap_block_state2;
|
| 74 |
+
reg [15:0] trunc_ln58_s_reg_3942;
|
| 75 |
+
reg [15:0] trunc_ln58_46_reg_3947;
|
| 76 |
+
reg [15:0] trunc_ln58_47_reg_3952;
|
| 77 |
+
reg [15:0] trunc_ln58_48_reg_3957;
|
| 78 |
+
reg [15:0] trunc_ln58_49_reg_3962;
|
| 79 |
+
reg [15:0] trunc_ln58_50_reg_3967;
|
| 80 |
+
reg [15:0] trunc_ln58_51_reg_3972;
|
| 81 |
+
reg [15:0] trunc_ln58_52_reg_3977;
|
| 82 |
+
reg [15:0] trunc_ln58_53_reg_3982;
|
| 83 |
+
reg [15:0] trunc_ln58_54_reg_3987;
|
| 84 |
+
reg [15:0] trunc_ln58_55_reg_3992;
|
| 85 |
+
reg [15:0] trunc_ln58_56_reg_3997;
|
| 86 |
+
reg [15:0] trunc_ln58_57_reg_4002;
|
| 87 |
+
reg [15:0] trunc_ln58_58_reg_4007;
|
| 88 |
+
reg [15:0] trunc_ln58_59_reg_4012;
|
| 89 |
+
reg [15:0] trunc_ln58_60_reg_4017;
|
| 90 |
+
reg [15:0] trunc_ln58_61_reg_4022;
|
| 91 |
+
reg [15:0] trunc_ln58_62_reg_4027;
|
| 92 |
+
reg [15:0] trunc_ln58_63_reg_4032;
|
| 93 |
+
reg [15:0] trunc_ln58_64_reg_4037;
|
| 94 |
+
reg [15:0] trunc_ln58_65_reg_4042;
|
| 95 |
+
reg [15:0] trunc_ln58_66_reg_4047;
|
| 96 |
+
reg [15:0] trunc_ln58_67_reg_4052;
|
| 97 |
+
reg [15:0] trunc_ln58_68_reg_4057;
|
| 98 |
+
reg [15:0] trunc_ln58_69_reg_4062;
|
| 99 |
+
reg [15:0] trunc_ln58_70_reg_4067;
|
| 100 |
+
reg [15:0] trunc_ln58_71_reg_4072;
|
| 101 |
+
reg [15:0] trunc_ln58_72_reg_4077;
|
| 102 |
+
reg [15:0] trunc_ln58_73_reg_4082;
|
| 103 |
+
reg [15:0] trunc_ln58_74_reg_4087;
|
| 104 |
+
reg [15:0] trunc_ln58_75_reg_4092;
|
| 105 |
+
reg [15:0] trunc_ln58_76_reg_4097;
|
| 106 |
+
reg [15:0] trunc_ln58_77_reg_4102;
|
| 107 |
+
reg [15:0] trunc_ln58_78_reg_4107;
|
| 108 |
+
reg [15:0] trunc_ln58_79_reg_4112;
|
| 109 |
+
reg [15:0] trunc_ln58_80_reg_4117;
|
| 110 |
+
reg [15:0] trunc_ln58_81_reg_4122;
|
| 111 |
+
reg [15:0] trunc_ln58_82_reg_4127;
|
| 112 |
+
reg [15:0] trunc_ln58_83_reg_4132;
|
| 113 |
+
reg [15:0] trunc_ln58_84_reg_4137;
|
| 114 |
+
reg [15:0] trunc_ln58_85_reg_4142;
|
| 115 |
+
reg [15:0] trunc_ln58_86_reg_4147;
|
| 116 |
+
reg [15:0] trunc_ln58_87_reg_4152;
|
| 117 |
+
reg [15:0] trunc_ln58_88_reg_4157;
|
| 118 |
+
reg [15:0] trunc_ln58_89_reg_4162;
|
| 119 |
+
reg [15:0] trunc_ln58_90_reg_4167;
|
| 120 |
+
reg [15:0] trunc_ln58_91_reg_4172;
|
| 121 |
+
reg [15:0] trunc_ln58_92_reg_4177;
|
| 122 |
+
reg [15:0] trunc_ln58_93_reg_4182;
|
| 123 |
+
reg [15:0] trunc_ln58_94_reg_4187;
|
| 124 |
+
reg [15:0] trunc_ln58_95_reg_4192;
|
| 125 |
+
reg [15:0] trunc_ln58_96_reg_4197;
|
| 126 |
+
reg [15:0] trunc_ln58_97_reg_4202;
|
| 127 |
+
reg [15:0] trunc_ln58_98_reg_4207;
|
| 128 |
+
reg [15:0] trunc_ln58_99_reg_4212;
|
| 129 |
+
reg [15:0] trunc_ln58_100_reg_4217;
|
| 130 |
+
reg [15:0] trunc_ln58_101_reg_4222;
|
| 131 |
+
reg [15:0] trunc_ln58_102_reg_4227;
|
| 132 |
+
reg [15:0] trunc_ln58_103_reg_4232;
|
| 133 |
+
reg [15:0] trunc_ln58_104_reg_4237;
|
| 134 |
+
reg [15:0] trunc_ln58_105_reg_4242;
|
| 135 |
+
reg [15:0] trunc_ln58_106_reg_4247;
|
| 136 |
+
reg [15:0] trunc_ln58_107_reg_4252;
|
| 137 |
+
wire grp_compute_output_buffer_2d_array_array_ap_fixed_43_23_5_3_0_64u_config19_s_fu_1716_ap_start;
|
| 138 |
+
wire grp_compute_output_buffer_2d_array_array_ap_fixed_43_23_5_3_0_64u_config19_s_fu_1716_ap_done;
|
| 139 |
+
wire grp_compute_output_buffer_2d_array_array_ap_fixed_43_23_5_3_0_64u_config19_s_fu_1716_ap_idle;
|
| 140 |
+
wire grp_compute_output_buffer_2d_array_array_ap_fixed_43_23_5_3_0_64u_config19_s_fu_1716_ap_ready;
|
| 141 |
+
wire [2751:0] grp_compute_output_buffer_2d_array_array_ap_fixed_43_23_5_3_0_64u_config19_s_fu_1716_layer19_out_din;
|
| 142 |
+
wire grp_compute_output_buffer_2d_array_array_ap_fixed_43_23_5_3_0_64u_config19_s_fu_1716_layer19_out_write;
|
| 143 |
+
reg grp_compute_output_buffer_2d_array_array_ap_fixed_43_23_5_3_0_64u_config19_s_fu_1716_ap_start_reg;
|
| 144 |
+
reg ap_block_state2_ignore_call67;
|
| 145 |
+
wire ap_CS_fsm_state3;
|
| 146 |
+
reg [6:0] indvar_flatten_fu_1706;
|
| 147 |
+
wire [6:0] add_ln52_fu_3218_p2;
|
| 148 |
+
reg ap_block_state1;
|
| 149 |
+
reg layer53_out_read_local;
|
| 150 |
+
reg [2:0] ap_NS_fsm;
|
| 151 |
+
reg ap_ST_fsm_state1_blk;
|
| 152 |
+
reg ap_ST_fsm_state2_blk;
|
| 153 |
+
reg ap_ST_fsm_state3_blk;
|
| 154 |
+
wire ap_ce_reg;
|
| 155 |
+
|
| 156 |
+
// power-on initialization
|
| 157 |
+
initial begin
|
| 158 |
+
#0 start_once_reg = 1'b0;
|
| 159 |
+
#0 ap_done_reg = 1'b0;
|
| 160 |
+
#0 ap_CS_fsm = 3'd1;
|
| 161 |
+
#0 grp_compute_output_buffer_2d_array_array_ap_fixed_43_23_5_3_0_64u_config19_s_fu_1716_ap_start_reg = 1'b0;
|
| 162 |
+
#0 indvar_flatten_fu_1706 = 7'd0;
|
| 163 |
+
end
|
| 164 |
+
|
| 165 |
+
myproject_compute_output_buffer_2d_array_array_ap_fixed_43_23_5_3_0_64u_config19_s grp_compute_output_buffer_2d_array_array_ap_fixed_43_23_5_3_0_64u_config19_s_fu_1716(
|
| 166 |
+
.ap_clk(ap_clk),
|
| 167 |
+
.ap_rst(ap_rst),
|
| 168 |
+
.ap_start(grp_compute_output_buffer_2d_array_array_ap_fixed_43_23_5_3_0_64u_config19_s_fu_1716_ap_start),
|
| 169 |
+
.ap_done(grp_compute_output_buffer_2d_array_array_ap_fixed_43_23_5_3_0_64u_config19_s_fu_1716_ap_done),
|
| 170 |
+
.ap_idle(grp_compute_output_buffer_2d_array_array_ap_fixed_43_23_5_3_0_64u_config19_s_fu_1716_ap_idle),
|
| 171 |
+
.ap_ready(grp_compute_output_buffer_2d_array_array_ap_fixed_43_23_5_3_0_64u_config19_s_fu_1716_ap_ready),
|
| 172 |
+
.p_read(trunc_ln58_reg_3937),
|
| 173 |
+
.p_read1(trunc_ln58_s_reg_3942),
|
| 174 |
+
.p_read2(trunc_ln58_46_reg_3947),
|
| 175 |
+
.p_read3(trunc_ln58_47_reg_3952),
|
| 176 |
+
.p_read4(trunc_ln58_48_reg_3957),
|
| 177 |
+
.p_read5(trunc_ln58_49_reg_3962),
|
| 178 |
+
.p_read6(trunc_ln58_50_reg_3967),
|
| 179 |
+
.p_read7(trunc_ln58_51_reg_3972),
|
| 180 |
+
.p_read8(trunc_ln58_52_reg_3977),
|
| 181 |
+
.p_read9(trunc_ln58_53_reg_3982),
|
| 182 |
+
.p_read10(trunc_ln58_54_reg_3987),
|
| 183 |
+
.p_read11(trunc_ln58_55_reg_3992),
|
| 184 |
+
.p_read12(trunc_ln58_56_reg_3997),
|
| 185 |
+
.p_read13(trunc_ln58_57_reg_4002),
|
| 186 |
+
.p_read14(trunc_ln58_58_reg_4007),
|
| 187 |
+
.p_read15(trunc_ln58_59_reg_4012),
|
| 188 |
+
.p_read16(trunc_ln58_60_reg_4017),
|
| 189 |
+
.p_read17(trunc_ln58_61_reg_4022),
|
| 190 |
+
.p_read18(trunc_ln58_62_reg_4027),
|
| 191 |
+
.p_read19(trunc_ln58_63_reg_4032),
|
| 192 |
+
.p_read20(trunc_ln58_64_reg_4037),
|
| 193 |
+
.p_read21(trunc_ln58_65_reg_4042),
|
| 194 |
+
.p_read22(trunc_ln58_66_reg_4047),
|
| 195 |
+
.p_read23(trunc_ln58_67_reg_4052),
|
| 196 |
+
.p_read24(trunc_ln58_68_reg_4057),
|
| 197 |
+
.p_read25(trunc_ln58_69_reg_4062),
|
| 198 |
+
.p_read26(trunc_ln58_70_reg_4067),
|
| 199 |
+
.p_read27(trunc_ln58_71_reg_4072),
|
| 200 |
+
.p_read28(trunc_ln58_72_reg_4077),
|
| 201 |
+
.p_read29(trunc_ln58_73_reg_4082),
|
| 202 |
+
.p_read30(trunc_ln58_74_reg_4087),
|
| 203 |
+
.p_read31(trunc_ln58_75_reg_4092),
|
| 204 |
+
.p_read32(trunc_ln58_76_reg_4097),
|
| 205 |
+
.p_read33(trunc_ln58_77_reg_4102),
|
| 206 |
+
.p_read34(trunc_ln58_78_reg_4107),
|
| 207 |
+
.p_read35(trunc_ln58_79_reg_4112),
|
| 208 |
+
.p_read36(trunc_ln58_80_reg_4117),
|
| 209 |
+
.p_read37(trunc_ln58_81_reg_4122),
|
| 210 |
+
.p_read38(trunc_ln58_82_reg_4127),
|
| 211 |
+
.p_read39(trunc_ln58_83_reg_4132),
|
| 212 |
+
.p_read40(trunc_ln58_84_reg_4137),
|
| 213 |
+
.p_read41(trunc_ln58_85_reg_4142),
|
| 214 |
+
.p_read42(trunc_ln58_86_reg_4147),
|
| 215 |
+
.p_read43(trunc_ln58_87_reg_4152),
|
| 216 |
+
.p_read44(trunc_ln58_88_reg_4157),
|
| 217 |
+
.p_read45(trunc_ln58_89_reg_4162),
|
| 218 |
+
.p_read46(trunc_ln58_90_reg_4167),
|
| 219 |
+
.p_read47(trunc_ln58_91_reg_4172),
|
| 220 |
+
.p_read48(trunc_ln58_92_reg_4177),
|
| 221 |
+
.p_read49(trunc_ln58_93_reg_4182),
|
| 222 |
+
.p_read50(trunc_ln58_94_reg_4187),
|
| 223 |
+
.p_read51(trunc_ln58_95_reg_4192),
|
| 224 |
+
.p_read52(trunc_ln58_96_reg_4197),
|
| 225 |
+
.p_read53(trunc_ln58_97_reg_4202),
|
| 226 |
+
.p_read54(trunc_ln58_98_reg_4207),
|
| 227 |
+
.p_read55(trunc_ln58_99_reg_4212),
|
| 228 |
+
.p_read56(trunc_ln58_100_reg_4217),
|
| 229 |
+
.p_read57(trunc_ln58_101_reg_4222),
|
| 230 |
+
.p_read58(trunc_ln58_102_reg_4227),
|
| 231 |
+
.p_read59(trunc_ln58_103_reg_4232),
|
| 232 |
+
.p_read60(trunc_ln58_104_reg_4237),
|
| 233 |
+
.p_read61(trunc_ln58_105_reg_4242),
|
| 234 |
+
.p_read62(trunc_ln58_106_reg_4247),
|
| 235 |
+
.p_read63(trunc_ln58_107_reg_4252),
|
| 236 |
+
.layer19_out_din(grp_compute_output_buffer_2d_array_array_ap_fixed_43_23_5_3_0_64u_config19_s_fu_1716_layer19_out_din),
|
| 237 |
+
.layer19_out_num_data_valid(7'd0),
|
| 238 |
+
.layer19_out_fifo_cap(7'd0),
|
| 239 |
+
.layer19_out_full_n(layer19_out_full_n),
|
| 240 |
+
.layer19_out_write(grp_compute_output_buffer_2d_array_array_ap_fixed_43_23_5_3_0_64u_config19_s_fu_1716_layer19_out_write)
|
| 241 |
+
);
|
| 242 |
+
|
| 243 |
+
always @ (posedge ap_clk) begin
|
| 244 |
+
if (ap_rst == 1'b1) begin
|
| 245 |
+
ap_CS_fsm <= ap_ST_fsm_state1;
|
| 246 |
+
end else begin
|
| 247 |
+
ap_CS_fsm <= ap_NS_fsm;
|
| 248 |
+
end
|
| 249 |
+
end
|
| 250 |
+
|
| 251 |
+
always @ (posedge ap_clk) begin
|
| 252 |
+
if (ap_rst == 1'b1) begin
|
| 253 |
+
ap_done_reg <= 1'b0;
|
| 254 |
+
end else begin
|
| 255 |
+
if ((ap_continue == 1'b1)) begin
|
| 256 |
+
ap_done_reg <= 1'b0;
|
| 257 |
+
end else if (((1'b0 == ap_block_state2) & (icmp_ln52_fu_3212_p2 == 1'd1) & (1'b1 == ap_CS_fsm_state2))) begin
|
| 258 |
+
ap_done_reg <= 1'b1;
|
| 259 |
+
end
|
| 260 |
+
end
|
| 261 |
+
end
|
| 262 |
+
|
| 263 |
+
always @ (posedge ap_clk) begin
|
| 264 |
+
if (ap_rst == 1'b1) begin
|
| 265 |
+
grp_compute_output_buffer_2d_array_array_ap_fixed_43_23_5_3_0_64u_config19_s_fu_1716_ap_start_reg <= 1'b0;
|
| 266 |
+
end else begin
|
| 267 |
+
if (((1'b0 == ap_block_state2_ignore_call67) & (icmp_ln52_fu_3212_p2 == 1'd0) & (1'b1 == ap_CS_fsm_state2))) begin
|
| 268 |
+
grp_compute_output_buffer_2d_array_array_ap_fixed_43_23_5_3_0_64u_config19_s_fu_1716_ap_start_reg <= 1'b1;
|
| 269 |
+
end else if ((grp_compute_output_buffer_2d_array_array_ap_fixed_43_23_5_3_0_64u_config19_s_fu_1716_ap_ready == 1'b1)) begin
|
| 270 |
+
grp_compute_output_buffer_2d_array_array_ap_fixed_43_23_5_3_0_64u_config19_s_fu_1716_ap_start_reg <= 1'b0;
|
| 271 |
+
end
|
| 272 |
+
end
|
| 273 |
+
end
|
| 274 |
+
|
| 275 |
+
always @ (posedge ap_clk) begin
|
| 276 |
+
if (ap_rst == 1'b1) begin
|
| 277 |
+
start_once_reg <= 1'b0;
|
| 278 |
+
end else begin
|
| 279 |
+
if (((real_start == 1'b1) & (internal_ap_ready == 1'b0))) begin
|
| 280 |
+
start_once_reg <= 1'b1;
|
| 281 |
+
end else if ((internal_ap_ready == 1'b1)) begin
|
| 282 |
+
start_once_reg <= 1'b0;
|
| 283 |
+
end
|
| 284 |
+
end
|
| 285 |
+
end
|
| 286 |
+
|
| 287 |
+
always @ (posedge ap_clk) begin
|
| 288 |
+
if (((1'b0 == ap_block_state1) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 289 |
+
indvar_flatten_fu_1706 <= 7'd0;
|
| 290 |
+
end else if (((1'b0 == ap_block_state2) & (icmp_ln52_fu_3212_p2 == 1'd0) & (1'b1 == ap_CS_fsm_state2))) begin
|
| 291 |
+
indvar_flatten_fu_1706 <= add_ln52_fu_3218_p2;
|
| 292 |
+
end
|
| 293 |
+
end
|
| 294 |
+
|
| 295 |
+
always @ (posedge ap_clk) begin
|
| 296 |
+
if (((1'b0 == ap_block_state2) & (1'b1 == ap_CS_fsm_state2))) begin
|
| 297 |
+
trunc_ln58_100_reg_4217 <= {{layer53_out_dout[911:896]}};
|
| 298 |
+
trunc_ln58_101_reg_4222 <= {{layer53_out_dout[927:912]}};
|
| 299 |
+
trunc_ln58_102_reg_4227 <= {{layer53_out_dout[943:928]}};
|
| 300 |
+
trunc_ln58_103_reg_4232 <= {{layer53_out_dout[959:944]}};
|
| 301 |
+
trunc_ln58_104_reg_4237 <= {{layer53_out_dout[975:960]}};
|
| 302 |
+
trunc_ln58_105_reg_4242 <= {{layer53_out_dout[991:976]}};
|
| 303 |
+
trunc_ln58_106_reg_4247 <= {{layer53_out_dout[1007:992]}};
|
| 304 |
+
trunc_ln58_107_reg_4252 <= {{layer53_out_dout[1023:1008]}};
|
| 305 |
+
trunc_ln58_46_reg_3947 <= {{layer53_out_dout[47:32]}};
|
| 306 |
+
trunc_ln58_47_reg_3952 <= {{layer53_out_dout[63:48]}};
|
| 307 |
+
trunc_ln58_48_reg_3957 <= {{layer53_out_dout[79:64]}};
|
| 308 |
+
trunc_ln58_49_reg_3962 <= {{layer53_out_dout[95:80]}};
|
| 309 |
+
trunc_ln58_50_reg_3967 <= {{layer53_out_dout[111:96]}};
|
| 310 |
+
trunc_ln58_51_reg_3972 <= {{layer53_out_dout[127:112]}};
|
| 311 |
+
trunc_ln58_52_reg_3977 <= {{layer53_out_dout[143:128]}};
|
| 312 |
+
trunc_ln58_53_reg_3982 <= {{layer53_out_dout[159:144]}};
|
| 313 |
+
trunc_ln58_54_reg_3987 <= {{layer53_out_dout[175:160]}};
|
| 314 |
+
trunc_ln58_55_reg_3992 <= {{layer53_out_dout[191:176]}};
|
| 315 |
+
trunc_ln58_56_reg_3997 <= {{layer53_out_dout[207:192]}};
|
| 316 |
+
trunc_ln58_57_reg_4002 <= {{layer53_out_dout[223:208]}};
|
| 317 |
+
trunc_ln58_58_reg_4007 <= {{layer53_out_dout[239:224]}};
|
| 318 |
+
trunc_ln58_59_reg_4012 <= {{layer53_out_dout[255:240]}};
|
| 319 |
+
trunc_ln58_60_reg_4017 <= {{layer53_out_dout[271:256]}};
|
| 320 |
+
trunc_ln58_61_reg_4022 <= {{layer53_out_dout[287:272]}};
|
| 321 |
+
trunc_ln58_62_reg_4027 <= {{layer53_out_dout[303:288]}};
|
| 322 |
+
trunc_ln58_63_reg_4032 <= {{layer53_out_dout[319:304]}};
|
| 323 |
+
trunc_ln58_64_reg_4037 <= {{layer53_out_dout[335:320]}};
|
| 324 |
+
trunc_ln58_65_reg_4042 <= {{layer53_out_dout[351:336]}};
|
| 325 |
+
trunc_ln58_66_reg_4047 <= {{layer53_out_dout[367:352]}};
|
| 326 |
+
trunc_ln58_67_reg_4052 <= {{layer53_out_dout[383:368]}};
|
| 327 |
+
trunc_ln58_68_reg_4057 <= {{layer53_out_dout[399:384]}};
|
| 328 |
+
trunc_ln58_69_reg_4062 <= {{layer53_out_dout[415:400]}};
|
| 329 |
+
trunc_ln58_70_reg_4067 <= {{layer53_out_dout[431:416]}};
|
| 330 |
+
trunc_ln58_71_reg_4072 <= {{layer53_out_dout[447:432]}};
|
| 331 |
+
trunc_ln58_72_reg_4077 <= {{layer53_out_dout[463:448]}};
|
| 332 |
+
trunc_ln58_73_reg_4082 <= {{layer53_out_dout[479:464]}};
|
| 333 |
+
trunc_ln58_74_reg_4087 <= {{layer53_out_dout[495:480]}};
|
| 334 |
+
trunc_ln58_75_reg_4092 <= {{layer53_out_dout[511:496]}};
|
| 335 |
+
trunc_ln58_76_reg_4097 <= {{layer53_out_dout[527:512]}};
|
| 336 |
+
trunc_ln58_77_reg_4102 <= {{layer53_out_dout[543:528]}};
|
| 337 |
+
trunc_ln58_78_reg_4107 <= {{layer53_out_dout[559:544]}};
|
| 338 |
+
trunc_ln58_79_reg_4112 <= {{layer53_out_dout[575:560]}};
|
| 339 |
+
trunc_ln58_80_reg_4117 <= {{layer53_out_dout[591:576]}};
|
| 340 |
+
trunc_ln58_81_reg_4122 <= {{layer53_out_dout[607:592]}};
|
| 341 |
+
trunc_ln58_82_reg_4127 <= {{layer53_out_dout[623:608]}};
|
| 342 |
+
trunc_ln58_83_reg_4132 <= {{layer53_out_dout[639:624]}};
|
| 343 |
+
trunc_ln58_84_reg_4137 <= {{layer53_out_dout[655:640]}};
|
| 344 |
+
trunc_ln58_85_reg_4142 <= {{layer53_out_dout[671:656]}};
|
| 345 |
+
trunc_ln58_86_reg_4147 <= {{layer53_out_dout[687:672]}};
|
| 346 |
+
trunc_ln58_87_reg_4152 <= {{layer53_out_dout[703:688]}};
|
| 347 |
+
trunc_ln58_88_reg_4157 <= {{layer53_out_dout[719:704]}};
|
| 348 |
+
trunc_ln58_89_reg_4162 <= {{layer53_out_dout[735:720]}};
|
| 349 |
+
trunc_ln58_90_reg_4167 <= {{layer53_out_dout[751:736]}};
|
| 350 |
+
trunc_ln58_91_reg_4172 <= {{layer53_out_dout[767:752]}};
|
| 351 |
+
trunc_ln58_92_reg_4177 <= {{layer53_out_dout[783:768]}};
|
| 352 |
+
trunc_ln58_93_reg_4182 <= {{layer53_out_dout[799:784]}};
|
| 353 |
+
trunc_ln58_94_reg_4187 <= {{layer53_out_dout[815:800]}};
|
| 354 |
+
trunc_ln58_95_reg_4192 <= {{layer53_out_dout[831:816]}};
|
| 355 |
+
trunc_ln58_96_reg_4197 <= {{layer53_out_dout[847:832]}};
|
| 356 |
+
trunc_ln58_97_reg_4202 <= {{layer53_out_dout[863:848]}};
|
| 357 |
+
trunc_ln58_98_reg_4207 <= {{layer53_out_dout[879:864]}};
|
| 358 |
+
trunc_ln58_99_reg_4212 <= {{layer53_out_dout[895:880]}};
|
| 359 |
+
trunc_ln58_reg_3937 <= trunc_ln58_fu_3224_p1;
|
| 360 |
+
trunc_ln58_s_reg_3942 <= {{layer53_out_dout[31:16]}};
|
| 361 |
+
end
|
| 362 |
+
end
|
| 363 |
+
|
| 364 |
+
always @ (*) begin
|
| 365 |
+
if ((1'b1 == ap_block_state1)) begin
|
| 366 |
+
ap_ST_fsm_state1_blk = 1'b1;
|
| 367 |
+
end else begin
|
| 368 |
+
ap_ST_fsm_state1_blk = 1'b0;
|
| 369 |
+
end
|
| 370 |
+
end
|
| 371 |
+
|
| 372 |
+
always @ (*) begin
|
| 373 |
+
if ((1'b1 == ap_block_state2)) begin
|
| 374 |
+
ap_ST_fsm_state2_blk = 1'b1;
|
| 375 |
+
end else begin
|
| 376 |
+
ap_ST_fsm_state2_blk = 1'b0;
|
| 377 |
+
end
|
| 378 |
+
end
|
| 379 |
+
|
| 380 |
+
always @ (*) begin
|
| 381 |
+
if ((grp_compute_output_buffer_2d_array_array_ap_fixed_43_23_5_3_0_64u_config19_s_fu_1716_ap_done == 1'b0)) begin
|
| 382 |
+
ap_ST_fsm_state3_blk = 1'b1;
|
| 383 |
+
end else begin
|
| 384 |
+
ap_ST_fsm_state3_blk = 1'b0;
|
| 385 |
+
end
|
| 386 |
+
end
|
| 387 |
+
|
| 388 |
+
always @ (*) begin
|
| 389 |
+
if (((1'b0 == ap_block_state2) & (icmp_ln52_fu_3212_p2 == 1'd1) & (1'b1 == ap_CS_fsm_state2))) begin
|
| 390 |
+
ap_done = 1'b1;
|
| 391 |
+
end else begin
|
| 392 |
+
ap_done = ap_done_reg;
|
| 393 |
+
end
|
| 394 |
+
end
|
| 395 |
+
|
| 396 |
+
always @ (*) begin
|
| 397 |
+
if (((real_start == 1'b0) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 398 |
+
ap_idle = 1'b1;
|
| 399 |
+
end else begin
|
| 400 |
+
ap_idle = 1'b0;
|
| 401 |
+
end
|
| 402 |
+
end
|
| 403 |
+
|
| 404 |
+
always @ (*) begin
|
| 405 |
+
if (((1'b0 == ap_block_state2) & (icmp_ln52_fu_3212_p2 == 1'd1) & (1'b1 == ap_CS_fsm_state2))) begin
|
| 406 |
+
internal_ap_ready = 1'b1;
|
| 407 |
+
end else begin
|
| 408 |
+
internal_ap_ready = 1'b0;
|
| 409 |
+
end
|
| 410 |
+
end
|
| 411 |
+
|
| 412 |
+
always @ (*) begin
|
| 413 |
+
if ((1'b1 == ap_CS_fsm_state3)) begin
|
| 414 |
+
layer19_out_write = grp_compute_output_buffer_2d_array_array_ap_fixed_43_23_5_3_0_64u_config19_s_fu_1716_layer19_out_write;
|
| 415 |
+
end else begin
|
| 416 |
+
layer19_out_write = 1'b0;
|
| 417 |
+
end
|
| 418 |
+
end
|
| 419 |
+
|
| 420 |
+
always @ (*) begin
|
| 421 |
+
if (((icmp_ln52_fu_3212_p2 == 1'd0) & (1'b1 == ap_CS_fsm_state2))) begin
|
| 422 |
+
layer53_out_blk_n = layer53_out_empty_n;
|
| 423 |
+
end else begin
|
| 424 |
+
layer53_out_blk_n = 1'b1;
|
| 425 |
+
end
|
| 426 |
+
end
|
| 427 |
+
|
| 428 |
+
always @ (*) begin
|
| 429 |
+
if (((1'b0 == ap_block_state2) & (icmp_ln52_fu_3212_p2 == 1'd0) & (1'b1 == ap_CS_fsm_state2))) begin
|
| 430 |
+
layer53_out_read_local = 1'b1;
|
| 431 |
+
end else begin
|
| 432 |
+
layer53_out_read_local = 1'b0;
|
| 433 |
+
end
|
| 434 |
+
end
|
| 435 |
+
|
| 436 |
+
always @ (*) begin
|
| 437 |
+
if (((start_once_reg == 1'b0) & (start_full_n == 1'b0))) begin
|
| 438 |
+
real_start = 1'b0;
|
| 439 |
+
end else begin
|
| 440 |
+
real_start = ap_start;
|
| 441 |
+
end
|
| 442 |
+
end
|
| 443 |
+
|
| 444 |
+
always @ (*) begin
|
| 445 |
+
if (((real_start == 1'b1) & (start_once_reg == 1'b0))) begin
|
| 446 |
+
start_write = 1'b1;
|
| 447 |
+
end else begin
|
| 448 |
+
start_write = 1'b0;
|
| 449 |
+
end
|
| 450 |
+
end
|
| 451 |
+
|
| 452 |
+
always @ (*) begin
|
| 453 |
+
case (ap_CS_fsm)
|
| 454 |
+
ap_ST_fsm_state1 : begin
|
| 455 |
+
if (((1'b0 == ap_block_state1) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 456 |
+
ap_NS_fsm = ap_ST_fsm_state2;
|
| 457 |
+
end else begin
|
| 458 |
+
ap_NS_fsm = ap_ST_fsm_state1;
|
| 459 |
+
end
|
| 460 |
+
end
|
| 461 |
+
ap_ST_fsm_state2 : begin
|
| 462 |
+
if (((1'b0 == ap_block_state2) & (icmp_ln52_fu_3212_p2 == 1'd1) & (1'b1 == ap_CS_fsm_state2))) begin
|
| 463 |
+
ap_NS_fsm = ap_ST_fsm_state1;
|
| 464 |
+
end else if (((1'b0 == ap_block_state2) & (icmp_ln52_fu_3212_p2 == 1'd0) & (1'b1 == ap_CS_fsm_state2))) begin
|
| 465 |
+
ap_NS_fsm = ap_ST_fsm_state3;
|
| 466 |
+
end else begin
|
| 467 |
+
ap_NS_fsm = ap_ST_fsm_state2;
|
| 468 |
+
end
|
| 469 |
+
end
|
| 470 |
+
ap_ST_fsm_state3 : begin
|
| 471 |
+
if (((grp_compute_output_buffer_2d_array_array_ap_fixed_43_23_5_3_0_64u_config19_s_fu_1716_ap_done == 1'b1) & (1'b1 == ap_CS_fsm_state3))) begin
|
| 472 |
+
ap_NS_fsm = ap_ST_fsm_state2;
|
| 473 |
+
end else begin
|
| 474 |
+
ap_NS_fsm = ap_ST_fsm_state3;
|
| 475 |
+
end
|
| 476 |
+
end
|
| 477 |
+
default : begin
|
| 478 |
+
ap_NS_fsm = 'bx;
|
| 479 |
+
end
|
| 480 |
+
endcase
|
| 481 |
+
end
|
| 482 |
+
|
| 483 |
+
assign add_ln52_fu_3218_p2 = (indvar_flatten_fu_1706 + 7'd1);
|
| 484 |
+
|
| 485 |
+
assign ap_CS_fsm_state1 = ap_CS_fsm[32'd0];
|
| 486 |
+
|
| 487 |
+
assign ap_CS_fsm_state2 = ap_CS_fsm[32'd1];
|
| 488 |
+
|
| 489 |
+
assign ap_CS_fsm_state3 = ap_CS_fsm[32'd2];
|
| 490 |
+
|
| 491 |
+
always @ (*) begin
|
| 492 |
+
ap_block_state1 = ((real_start == 1'b0) | (ap_done_reg == 1'b1));
|
| 493 |
+
end
|
| 494 |
+
|
| 495 |
+
always @ (*) begin
|
| 496 |
+
ap_block_state2 = ((icmp_ln52_fu_3212_p2 == 1'd0) & (layer53_out_empty_n == 1'b0));
|
| 497 |
+
end
|
| 498 |
+
|
| 499 |
+
always @ (*) begin
|
| 500 |
+
ap_block_state2_ignore_call67 = ((icmp_ln52_fu_3212_p2 == 1'd0) & (layer53_out_empty_n == 1'b0));
|
| 501 |
+
end
|
| 502 |
+
|
| 503 |
+
assign ap_ready = internal_ap_ready;
|
| 504 |
+
|
| 505 |
+
assign grp_compute_output_buffer_2d_array_array_ap_fixed_43_23_5_3_0_64u_config19_s_fu_1716_ap_start = grp_compute_output_buffer_2d_array_array_ap_fixed_43_23_5_3_0_64u_config19_s_fu_1716_ap_start_reg;
|
| 506 |
+
|
| 507 |
+
assign icmp_ln52_fu_3212_p2 = ((indvar_flatten_fu_1706 == 7'd100) ? 1'b1 : 1'b0);
|
| 508 |
+
|
| 509 |
+
assign layer19_out_din = grp_compute_output_buffer_2d_array_array_ap_fixed_43_23_5_3_0_64u_config19_s_fu_1716_layer19_out_din;
|
| 510 |
+
|
| 511 |
+
assign layer53_out_read = layer53_out_read_local;
|
| 512 |
+
|
| 513 |
+
assign start_out = real_start;
|
| 514 |
+
|
| 515 |
+
assign trunc_ln58_fu_3224_p1 = layer53_out_dout[15:0];
|
| 516 |
+
|
| 517 |
+
endmodule //myproject_conv_2d_cl_array_array_ap_fixed_43_23_5_3_0_64u_config19_s
|
myproject_prj/solution1/impl/verilog/myproject_dense_resource_rf_gt_nin_rem0_ap_fixed_ap_fixed_37_17_5_3_0_config2_mult_s_oudEe.v
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// ==============================================================
|
| 2 |
+
// Generated by Vitis HLS v2024.1
|
| 3 |
+
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
| 4 |
+
// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
|
| 5 |
+
// ==============================================================
|
| 6 |
+
`timescale 1 ns / 1 ps
|
| 7 |
+
module myproject_dense_resource_rf_gt_nin_rem0_ap_fixed_ap_fixed_37_17_5_3_0_config2_mult_s_oudEe (
|
| 8 |
+
address0, ce0, q0,
|
| 9 |
+
reset, clk);
|
| 10 |
+
|
| 11 |
+
parameter DataWidth = 3;
|
| 12 |
+
parameter AddressWidth = 7;
|
| 13 |
+
parameter AddressRange = 72;
|
| 14 |
+
|
| 15 |
+
input[AddressWidth-1:0] address0;
|
| 16 |
+
input ce0;
|
| 17 |
+
output reg[DataWidth-1:0] q0;
|
| 18 |
+
|
| 19 |
+
input reset;
|
| 20 |
+
input clk;
|
| 21 |
+
|
| 22 |
+
|
| 23 |
+
reg [DataWidth-1:0] rom0[0:AddressRange-1];
|
| 24 |
+
|
| 25 |
+
|
| 26 |
+
initial begin
|
| 27 |
+
|
| 28 |
+
$readmemh("./myproject_dense_resource_rf_gt_nin_rem0_ap_fixed_ap_fixed_37_17_5_3_0_config2_mult_s_oudEe.dat", rom0);
|
| 29 |
+
end
|
| 30 |
+
|
| 31 |
+
|
| 32 |
+
always @(posedge clk)
|
| 33 |
+
begin
|
| 34 |
+
if (ce0)
|
| 35 |
+
begin
|
| 36 |
+
q0 <= rom0[address0];
|
| 37 |
+
end
|
| 38 |
+
end
|
| 39 |
+
|
| 40 |
+
|
| 41 |
+
endmodule
|
| 42 |
+
|
myproject_prj/solution1/impl/verilog/myproject_dense_resource_rf_gt_nin_rem0_ap_fixed_ap_fixed_config14_mult_s_w14_ROM_NP_BRdlF.dat
ADDED
|
@@ -0,0 +1,576 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
056000D0031FF7B000DFFAB00D0FFCC006CFF40FFEC00250043FFF2FFB00004
|
| 2 |
+
066FFF5FF3EFF98005B01070071FFF9007F002800070006FFDAFFDC00CE0009
|
| 3 |
+
39AFFBEFFF500800049FF47FF630057005C0070001600550000003CFFABFF9F
|
| 4 |
+
3E6FFFB0010FFBCFFEAFFD9008EFFFB008B002CFFC80024FFE80054007EFF4F
|
| 5 |
+
0260005004E00A7006300A90015003C00140037FFD0FF46FFB8002B00BD0069
|
| 6 |
+
3A4FF7C000900E5002AFFC70075001600350015001AFFDEFFA0FF8FFF53FF34
|
| 7 |
+
3E7FFD1FE0200DBFFA100C20021004F001E006B0013FE3AFFA4FFF1FF770086
|
| 8 |
+
396FFD2FF35FFD6FFCEFFD5FF8F00340030FFD2FF9C000DFF6EFFDE00180015
|
| 9 |
+
0820003009DFFE1001D000E008FFF9BFFE8FFAAFFABFFF40031000EFF650048
|
| 10 |
+
3C400010090FF16FFD60086FFC700310002005F0031FFDDFFE9FFD200280088
|
| 11 |
+
020002D002BFFA70020FFDA0059FFE0FFB8000B0061FFADFFFA0000FFC8FFA4
|
| 12 |
+
062FFFD00D5FF36001DFF56FF7CFF86005AFFE300060061001AFFEAFFBBFFB6
|
| 13 |
+
365FFC5FF75FFA0FFFE0023FF4E000200390009FFE2FF7EFFD5FFF4FFA8FFD4
|
| 14 |
+
048FFD0FFAAFF3600140093FFA3FFEAFFFFFF4E003600660046FF7FFFDAFF22
|
| 15 |
+
02D0040FFC1FFFFFFEAFF56FFF8FF560074FFA6FFB8005C002BFFF0FFF5FF98
|
| 16 |
+
35F003CFF7A0008FFCBFFB900240021FFB2003EFFDBFEFBFFAD0014FFCDFF4C
|
| 17 |
+
3BFFFADFFAB003C000FFFCDFFBB0042003E004900BCFF53FF9CFFE80005FFAF
|
| 18 |
+
3EFFF68FFFDFF8FFF72FF39000D000EFFB2FFD7FFDA001D004CFFECFF7DFF8E
|
| 19 |
+
38A0020FF89FFB8FF7200CB0066FF7FFFA8FFDC000CFF85FFFB00150012FF51
|
| 20 |
+
007FFF2FFBBFFCF000600C30058000BFFE3FFE8FF950029FFDEFFA90027FFCB
|
| 21 |
+
3300013FF15FF99FF9C006BFFE9FFD1FF77FF8BFF580068FFE1FFABFFD6FF3C
|
| 22 |
+
397FF490043FFBD0031FF090060FFF30023000E0028000EFFB7FFF80036FF83
|
| 23 |
+
3E10011FF85008F00290076FFFF002EFF72FFC5FFC3007CFFE9FFD3FF96FFE6
|
| 24 |
+
37EFF6A00D2FFFAFFE3FF59001400530033002D000BFF98FFDA0004FF50FFD0
|
| 25 |
+
3ECFFEC00F300B20048FECF00F900320078FF730063FFF6FFCFFFE1001D0052
|
| 26 |
+
3D3FFD4FF9EFEB8FFFBFF79FFB0FF9CFFF1FF92FFC500D6FFF2FFE3FFE7FFE3
|
| 27 |
+
06600190061FF610034FFB6FFCA006B002A0007FFE1007800260052003BFFDF
|
| 28 |
+
01DFFE8FFB6FFF5FF94FF52FEEC00ADFFF8FF8E005500CD00440001FFD0FFA6
|
| 29 |
+
09CFFF2FF55FE7400080021FF17FF0C00CBFF29FF9B007E001C001EFFA8FFAC
|
| 30 |
+
3CF000E006DFFBEFFB7FF30FF9CFFAF0055FFB90044FFF60006FFD1FFAEFFD5
|
| 31 |
+
3CCFEC8FFDF0034005FFFC6001EFEB8FF68005900330059FFDEFFB3FFB8FFC0
|
| 32 |
+
3EB005CFF58FEDC0005FF1AFF1CFFCA0018FFDB008AFFFF000DFFB20004FFF0
|
| 33 |
+
007FF38000400A9007B008E000FFFB8004DFF74FFD7FFE7FFF5FFBAFF860026
|
| 34 |
+
0910032FFE40037FFF3FFA7FF6C000F0034FFE5FFE500CC0047FF9000B9FFB2
|
| 35 |
+
027FFF70072006F00400056FEC8FFF8FFEC001C006000210014FFB3FF6AFFF8
|
| 36 |
+
3C80017FFD20010FF6DFFC8FFA4FFEEFF6B0035FFEAFFA70007003100DBFF5C
|
| 37 |
+
048001200B600A2FFD20002FFED0037003EFFF4007AFFEEFFF1002900B00058
|
| 38 |
+
015001800240078FFCD006600100004FF7D0007000CFF1CFFC2FFF800730025
|
| 39 |
+
3DD0090FEE40053FFB4FFC00064003B00B700620019FF00FF52004CFFA7FFC3
|
| 40 |
+
008FFA0FF84FF8E0049FFCDFF9A007500C00048FF8F0076000CFFEB0017FF19
|
| 41 |
+
06FFF75FFAEFFB3006EFFFD00C8FFD80030FFD7FF91FFEF002AFFE6FFFC0024
|
| 42 |
+
3FC004DFFD5FFDA0001FF2BFF79FFE9FF94FFDA004DFF80FFFEFFC40056006E
|
| 43 |
+
3A1001B000AFE7A002A007A00C4FFBCFFECFFD8FFA6FEFA0007003AFFEAFF95
|
| 44 |
+
061FFC80026FFAA003C005E003EFFCF0041FFE1003F00740067FFB2FFE2FF8E
|
| 45 |
+
35CFFBEFF7AFFA0FF850047FFB2FFD9FF7DFFCFFFE5FF9FFF88FFECFFB50033
|
| 46 |
+
02CFFCEFFF5FFA50016009D0059000E000FFFCC002EFFF1FFE3FFCE0018FF09
|
| 47 |
+
063FFACFFB8002E000900CE002BFF62002FFFC3001A001C0030FFE2FFABFF11
|
| 48 |
+
3BC001EFFF10000FFC7FEBA000A0052FFD1008CFF95FFB3FFC10056FF96FF5D
|
| 49 |
+
07A002CFEC9001BFFF5FFCB000B0042FFC8FFC9FFF9000AFFE8FFEB001FFF64
|
| 50 |
+
3F9FFDB0092FFAEFFCBFFCFFF9BFFF60011FFDCFFF0001A00400014FF46FF83
|
| 51 |
+
3920050000EFF83FFE9007FFF9DFFD3FF510054FFC0FF87FFE200810073FF54
|
| 52 |
+
00B000CFF9000080012FF6EFF94FFEBFFA2000900290007FFC3FFCAFFEFFFFE
|
| 53 |
+
3E7FF92FF61FFBB0054009AFF41FFD70027FF7800300042FFD70001FFF9FF44
|
| 54 |
+
01BFFD2FFCAFFDAFFBD0088FFAAFFE9FFD1FFAF001C004FFFFD0001FFAB0044
|
| 55 |
+
003FFCD001AFFEB0022FFBFFFB9001300BF002A0018FFC2FF950020002BFFCF
|
| 56 |
+
3CA00620111FFD600510083FFA90008FFDC002500760044FFE7FFC700080071
|
| 57 |
+
067004D004F0059FFD800A6004C0013FF2BFF6BFFCD0009FFD5001600F2FFE7
|
| 58 |
+
3E3FF51FF44FF74000E0030FFE3FFA4FFDBFF98FFEA00AE0010FFDAFF6EFF0D
|
| 59 |
+
0010035FF75FFE0FFA50053FF95000800320053FFEE006B003E0006FFC4FF44
|
| 60 |
+
3C1FFC5FF14FFD0FFDC003FFFC7FFFB0060FF8A00180023005BFFB7000FFF2D
|
| 61 |
+
075FF28FF9B00590056004CFF59FF53FFD0FFCAFFC000700016FFCA000AFF44
|
| 62 |
+
0390012001EFF4B0018FFAD0024FFFC00ADFF5A006800510071FF9E0005FFD8
|
| 63 |
+
3960053FFDFFF740020FFAC00D4FEFB001C002EFFFEFFE1FFFA001100010079
|
| 64 |
+
03D00FAFFB3FF47FFEE001BFFF50032FFE5FFE20044FFE00025FF9BFF63003F
|
| 65 |
+
02DFF53FFD4009400FCFFE1FEFFFFCDFF90FFE4FFF40005FFFBFFA900010037
|
| 66 |
+
3B80002FFEF0099001D0034001F002000190030FFC4FFDB0000002E008E0027
|
| 67 |
+
3BB0021FFF2FFCF0094FFCFFF59FFE5FE92FFDC0045FFF60005FFBAFFE2FFCA
|
| 68 |
+
04A00200057006CFFFA0094FF660009002D001AFFE40049FFE800780085FFA8
|
| 69 |
+
00400B5003300A0FFCE00D0FFF4003300600040004C0027FFFCFFDB00BE002C
|
| 70 |
+
03A004E00690075FF8DFE67FE330006FF14FFE2FF8BFFDFFFE0001FFFFAFF39
|
| 71 |
+
03B0087002E0021FFE500790027FFDD0052001B0026FFC1FFC8001EFED5FFB1
|
| 72 |
+
32AFFC2003CFF2DFFECFFE9005E0019FF930049FFC1FFB2001A00220074FF0F
|
| 73 |
+
02DFECEFEA300520007FF9AFFB0FFB200240037FFD2FFD4002300180001FFE2
|
| 74 |
+
01F0017FFDCFFD7FF44004CFFD2004000C6007E0015FFCE001CFFAB00810096
|
| 75 |
+
3CFFFE2FF760016FF8AFF21FFFCFF210122FFDAFF9FFFCBFFE9FFC2FFBEFF79
|
| 76 |
+
018FF54FF4100330042FFECFF78FFD3FFC9FFAFFFCFFFC80052FF8EFF78FF6E
|
| 77 |
+
3C7004EFF99FF88FF5500A3FFB4FFFAFFCBFFEFFFF2FFFCFFCA000100750078
|
| 78 |
+
02D000EFFE1FF6F0018003AFFFFFFE0FF6AFFF3FFFAFFD3001200030015FF7B
|
| 79 |
+
3E7FFEA003BFFBE005E00ADFF3EFF6CFEF3001D0010FFC2002AFF8EFFB2FFBA
|
| 80 |
+
3DF001B00A0FFA50000FFD600040042FFB90044FF750042FFF30044FFB1FFC1
|
| 81 |
+
01600020004FFB9001CFFB6FEDB0017FE0FFF76FFA0004EFFD0FFE0003DFF4C
|
| 82 |
+
031FFFD0067FFD80021011800FFFFD3003CFFFD000CFFDF001CFFB5FF76FFE2
|
| 83 |
+
3C5004EFF8DFF9AFFE400D0FF9FFF74003B0031FF6AFFFDFFCA00420035FFB3
|
| 84 |
+
34F0003FFA3006DFFDF008BFF4AFFF300750018FFE7FF80FFEF0047002A0021
|
| 85 |
+
3D8FFA1FFB2FF76002EFF87FEA5FFBEFF25FFC5FFD7003D003F006200CCFFB8
|
| 86 |
+
3CC0019FFC7FFF8FFC30032FF660003FF32FFFAFFBE0031FFCEFFEDFFDFFFA3
|
| 87 |
+
3E80016FFCDFF87FF83FF85FDF00025FFBE0006FFA800160032001F000C003A
|
| 88 |
+
32F00A5009BFF3500460050012BFFECFF5EFFCDFFCA0016001EFF9C0043FFC8
|
| 89 |
+
00A001600B3FFFAFFEDFE820009FFE7FE08FF8EFFA0000E003DFFFBFFF2FEEE
|
| 90 |
+
3C4FF65FFB2FF50FFF4FFCE000EFF93001BFFA1FF47FFFF001FFFE5FFB3FFA7
|
| 91 |
+
3C50003FF190061FFB80089006BFFCCFF53003F000FFFA4000EFFC3FF4BFF91
|
| 92 |
+
3C80044FFA4FF4FFF5100590178FFE8FFD5FFC4FFE5FFA4000FFF8CFFEDFFF4
|
| 93 |
+
081FF05FF9E00B600350018FDECFF720098FFC9FF45FFE50000FFBAFFF5FFA3
|
| 94 |
+
3D1FF83FF4CFEF3FFEA0090FF60FFDC0007FFFBFFF1FFC00047FFA3FFD40013
|
| 95 |
+
02F00ACFFF5FF33FF92FFD10130FF38007D001A000400390045FFD700340080
|
| 96 |
+
04F0034FF36FF9D001C0065FFBEFFAA00030010006CFF63003F0007FF6B0036
|
| 97 |
+
05B006FFFA5FEC9FFE900A70005FFF50032000D0025FFAA001E00180051FFBD
|
| 98 |
+
02A005EFF6DFF5B0090FFF100680041005F0011FFE50054FFE4FF8B003D000E
|
| 99 |
+
3A1FFDE00CB005F0023FF65000AFF8C00A70098000400120012005AFFB10087
|
| 100 |
+
3ECFF6F0016FFFA000EFF77FFB9FFCF0064FFF2003DFFEAFFCA001FFFD400AE
|
| 101 |
+
030000100150031008D0015011E00320007FFF8FFF2FFECFF8A000A0094006D
|
| 102 |
+
3BDFF0BFFFC003C001500AAFFE8000EFFEE001AFF73FF68FFA6FFC40062FF59
|
| 103 |
+
004FF22FE670024FFEA00FFFFDC0047FFEB001CFFAAFFC7FFD3FFC5004DFF02
|
| 104 |
+
3D90014FFE00009FFD0FFF3FE56001BFFDEFF76FFEC002700030042FF9700D8
|
| 105 |
+
01CFFD1FFCDFF7D0024009E0096FFA0FFABFF8BFFD3FFADFFFBFFF6003600AA
|
| 106 |
+
009004FFF6EFFFBFFCF000D002A001BFF88FFF8FF95000D0011FF950029FFC1
|
| 107 |
+
040FF9AFFCA001F001AFF61001EFFEDFFAB0026007DFF93FFECFFEEFFA5002C
|
| 108 |
+
041002B0103FF7E005CFF84FF74FFF100020052FFA6FFFBFFE60031001B008A
|
| 109 |
+
371FFB8FF23003DFFF0FF92FFF3000E005E0035FFB8FF26FF430008FF2D0009
|
| 110 |
+
3C80052FF55FF99003FFFA6001EFFED005EFFBAFF73FFF1FFC8FFE1FFE2005E
|
| 111 |
+
053005E0134FFF7FFD6FFD7FF400034005DFFF0FFEB005F0003FFE6FF960059
|
| 112 |
+
382001DFF0DFFAD000DFFF4FF57004E001EFFE8FFEAFF77FF670023FF70009B
|
| 113 |
+
3BBFFC20068001FFFA5FFED00220070FFD5009A0030FFDCFFC6FFFFFF8EFFA1
|
| 114 |
+
37AFE95005FFF9A0003FFCCFF5F0022FFE6FF87004F0028004BFFC6FF59FF0A
|
| 115 |
+
384FF5F0009001CFFD6001F006B0069FF69FFA9FFFD00210029FFEFFF41004F
|
| 116 |
+
012001CFF11FFE9004AFFD7005F00080039FF7BFF73FFF3FFEFFFC4002CFFB8
|
| 117 |
+
352002B005DFFC5FFA8FFE7FEB9FFD6FF8FFFD3FFB100100011FFF1FFA50035
|
| 118 |
+
3BDFFB1FFAFFF68003BFF2FFFE50048003200590003FF88FFECFFD6000AFF81
|
| 119 |
+
05FFECBFFC8FFDB0032001A00230067FFDA000C0032FFF8005F0031001CFFAC
|
| 120 |
+
38E004C00820018FFFB005E009300110006009DFFBAFF8DFFD40012FFEBFFA9
|
| 121 |
+
329FFBE000CFFCC0017FFCA009B001CFFEBFFE9FFB4FFB9FF93FF7CFFD4FFF9
|
| 122 |
+
031008D00C1FF9EFFF3FF70FFA4FF71003E0014002A0047006CFFF6FF7AFFE4
|
| 123 |
+
0B8008A00E5FFD90014FFD000350042003BFF86FFC3FFEC005E001EFFD50068
|
| 124 |
+
048FFE8FF53FFF4FFF1FFA1002A00DB0000002AFFDFFFE0004A004100070031
|
| 125 |
+
067006E0113FF1CFFD5FF45FF5EFF380056000BFFC1FFE500440032FF8FFFD4
|
| 126 |
+
00CFFE200640021FFCEFF9EFFCEFFDC0059FFEEFFD5FF9D0035FFA6FF430048
|
| 127 |
+
3B8FF06FF5F00560019FF960072FF36FF84005CFFC3000FFF97FFDCFF27FF9D
|
| 128 |
+
3BDFFD3FF62FF1600000037FE23001200AFFFA9000A005CFFF5FFDE000B0055
|
| 129 |
+
038FFEAFFCF0076001B00E4FFBC001CFFB7FFF00037FF9CFFA4FF7F003C0027
|
| 130 |
+
0300016FF9BFFA20036FF47FF9D001D008300160079000D0005001800010038
|
| 131 |
+
3D8001C00BE0040003F0066002EFFB00013007DFFF200390017FFABFFE5003E
|
| 132 |
+
3D5FFBEFFFFFFECFFC5FF6BFF3DFFD8FF6AFFED0006001000050006FFFDFFE5
|
| 133 |
+
048000E007C00A7FFBFFFD0000C00330004000100630065FFEA004300100031
|
| 134 |
+
011FF3C002BFF5FFFFB00C5FFD4FFFCFFC80001FFFCFF670006FFE500970056
|
| 135 |
+
3F4FF05FEF100370007007CFF8800500016FFF1FFEFFFD9FFD400100094FFC3
|
| 136 |
+
3D50065FFF50040FFE90002FF2F00AC0032001E0000FF85FFF0001AFF9C0030
|
| 137 |
+
0040013FF210001003F00630083FF99003FFFE3FF82FFACFFE1FFF2FFE50001
|
| 138 |
+
3FB0092FF56FFAEFFBFFFFBFF5AFFCDFFECFF5BFFA6FF7A000BFFB4000AFFB3
|
| 139 |
+
38B0007FF8BFF3400060001FFEEFFB4FFB5FFE8FF95FF2DFFEB0050FFA8FFBA
|
| 140 |
+
059000A0003FFD60046FFEB00DB00000007004000100036001A002200160044
|
| 141 |
+
3BFFF9FFF4D0025FF8B0026FF1DFFCFFFD30036FF6CFF6CFF77FFCFFFC9FFC3
|
| 142 |
+
0600031FF6DFFF4002AFF9200B6FFD8001E0028FFCC003AFFAA003FFF98001D
|
| 143 |
+
04E002B007E0002002400E5006400140018FFA2FFDF0015FFEAFFC9FF93FFD0
|
| 144 |
+
3A300500017FFF2000C0007FFD7007BFFD5FFF0FFD20014FFC00019FF770002
|
| 145 |
+
003FFE5FFC90045FF890051FFE8005700140037FFFF0032FFFFFFADFF63FF55
|
| 146 |
+
344FFD100E8002C0053FFBEFE88FFF6FFBFFFD6FFF8FF9F0019FFFC00400010
|
| 147 |
+
3E0FFE200310008FFD9001CFED10011FF92001BFFB4006D001A005AFFA8FFC9
|
| 148 |
+
036000B0046FFD80027FF68FF19000A0008FF42FFA9FFB6FFACFFECFFD00032
|
| 149 |
+
3D3FFC0008B003CFFF50019FF7A0006003EFFC20047FF8500170021FF74FFE2
|
| 150 |
+
3FC0026FFBFFFB9FFA60046FEF100150016FFE5FFF5FFE80030FFB90049004F
|
| 151 |
+
3F2FF3CFFA9007AFFF20024FFB4FFF5FFF60067FFD1FFF200070017FF06FFF4
|
| 152 |
+
3F9002E0096FFD3002B0130FFDAFFDFFFC8FFDE006E0024FFD4FFC9005F003B
|
| 153 |
+
00AFFAFFFC5FFA9FFDB008A00670009FF90FFC60022004C0001FFA80062002D
|
| 154 |
+
3ED00250026FFF50026000800B3FF9B004C0004001BFFE900530034FF50FF97
|
| 155 |
+
00E002F0008FFFCFFF2001200AA0025006DFFDFFFA2FFC00045002D0010FFBD
|
| 156 |
+
391FF9B000F0052FFB8001E00A200400065FFA1FFADFF5CFFFE0039009EFFD6
|
| 157 |
+
06E0025009800540009FFEC0012FF5DFFE200310021FFC1FFE10001FF7EFF99
|
| 158 |
+
008FF74FFE50030003FFF37009EFFF30056FFD4FFB5FFA9002D0002FFEA0024
|
| 159 |
+
3F9FFE5FF83FF25FFF70070FFE4FF68000D0035FFFEFFDEFFC6004DFFCAFF8F
|
| 160 |
+
38BFFD5FF63FFE2FFA60077FE630033FFFDFFE100040019FFEEFFF0FFEF0039
|
| 161 |
+
054001CFFEE001B00680060FFAB0043FF3FFFEB0028000CFFDAFF7B008B0098
|
| 162 |
+
3ADFFEDFFB700340030006200230046001FFFEF009AFF9CFF980029001A006E
|
| 163 |
+
3DFFFF7FFF0000D005FFF3F004DFF6DFF2B0012FFE7000EFFE40003006F0029
|
| 164 |
+
3C9FF71010B0028FFC40047FE16FFE7004EFFE0FFC20037FFE100B1FFF8FFD1
|
| 165 |
+
00B00130079007E0025005D00DA004BFFE4FFF60030000FFFE0FFD90022005F
|
| 166 |
+
3FC001F00ABFFAA001E0065FEFCFFF1FF47FF9E0045FFDAFF8DFFF700410034
|
| 167 |
+
029001B00420024FFD9006AFFA6FFD9FFA9FF970023FFED0012FFCC0092007A
|
| 168 |
+
38FFFEE0069FFF2000D009800030058FF010054FFE8FFD2FFDDFF9900000026
|
| 169 |
+
3EDFFE7FEA0007FFFE80057FFD0FFE2FFDF0032FF87FFC8FFDE001EFFD2FFA6
|
| 170 |
+
05D0031FFD7FFD7FF3F0048FF2A001D015EFFECFFE3FFE3001AFFD500C3FFB3
|
| 171 |
+
364FFE0FFFB0061FF79FF02FF55FF3100D1FFDBFF7DFFE6FFA0FFEFFFC8FF9E
|
| 172 |
+
3A6FFD7FF4A001B001EFF5A0066FFA3FF9F0007FF89FFD80006000A0001FFEC
|
| 173 |
+
039006CFF81FFDCFF65001AFED6FFD2FFFD0019FF97FF97FFE5FFED00120016
|
| 174 |
+
3F1FFEEFEF700190011FFA4FF05FFACFF690005FFC30014FFEB0097FFE5FFDF
|
| 175 |
+
3F1002A0026FF9D007000950010004CFF14FFDBFFD4FFEDFFFAFFE5002AFFD5
|
| 176 |
+
003FFF80020FFF2001AFFD9007A008BFFF2FFC1FFD4001A0042FFD0FFE10015
|
| 177 |
+
020FFCDFF64FFB70036FF50002A0002FF6DFFDAFF940058FFD1FF8AFFE7005F
|
| 178 |
+
3F4006300300043FFC50071FFE4FFA7006A00210017FFC30013000B003F0094
|
| 179 |
+
017FFBA0066FF77FFBA0025FDC2FFED00B0FFEDFFC60046000D0049FFC7FFE0
|
| 180 |
+
3FBFFF9FFE2FFA7FFC800EDFF1C000300C6FF43000AFFDCFFE500CD004B000C
|
| 181 |
+
031FF86002FFFCC0023FF850085FFD1FF8BFFBA0013FF9000440000FFFA0009
|
| 182 |
+
3C4002FFF46000EFF9E001EFF350024FFAEFFB0FFD90019000DFFB4FFF5FFE6
|
| 183 |
+
3D0FFBBFFAD0054FFCBFF7F0095FFFDFFFDFFE5FFE500880036FFB6FF800034
|
| 184 |
+
36EFFD400400018FFAAFFDFFF93FFA3FFAA0028FFFDFFEF0023FFC7FFF7009E
|
| 185 |
+
38AFFCCFFFE00040024FF62005AFFE3FF61FFB40016001A002EFF9EFFD6FFE5
|
| 186 |
+
3ECFFD6FF6F004C00210012003CFF68004BFFB6FFF1FFC6002B0025FF45FFFB
|
| 187 |
+
3C8FFEDFF6B00490025000D00E8FFDE005A0034FF9DFF8F0005FFFBFFF5FFDF
|
| 188 |
+
393FFD700E10081FF25003F00B9FFCA005C0014FF8BFF31000E0052FF830035
|
| 189 |
+
0870013FF8000A0003700210012FFAC0002FF82FFC2FFBDFFE8FF9C0006FF6B
|
| 190 |
+
3F6FF53FEC4FF8D001F001EFF80FFD1005F0058FF42FFB0004300400000FFAE
|
| 191 |
+
3E800D9000DFF5EFFB9FF93FFC4FF58004BFFD5001400260036FFD2FF8DFFF0
|
| 192 |
+
367FFEE005B0031FF7E00BBFEA10017FFB100290000FF9DFFF7006A0075000A
|
| 193 |
+
02B001BFF5AFF0EFF59FE2FFFE10096FFCD0070FFB2003E003E0039FFF5FFF0
|
| 194 |
+
022000E0051002DFFEB001900A9FFBCFFC9FFD4FFF90006FF63FFBC0017001C
|
| 195 |
+
387FF71FFF4FFFE0018FF920036FFCA005DFFFE0077FFFE00320076FFDA007E
|
| 196 |
+
00FFFAAFFC4002EFF860006002CFFC1FF18FF5500BFFFDBFFCEFFD6FF520080
|
| 197 |
+
04D009300B50040FFD0002E0092000FFFACFFB60000FFACFF75FF80FF380089
|
| 198 |
+
3AFFFDCFFD600200003FF7BFFE1000E00360031FF2C0010FFD300300061FF99
|
| 199 |
+
08AFF72FFF4FFCA000F00500178001C004E0010FF83009BFFE0FF95FFD6FE4C
|
| 200 |
+
3FCFFACFF7E00000078FF97FF7DFF86FFA2FF50FFFDFF89FFC30024FF1F005A
|
| 201 |
+
377FF9EFF66FFDEFFEEFF560057FF38FF8300090055FFEEFFF0001A00A1005B
|
| 202 |
+
012FF77FFADFFD10027FFCF002D000D0023FF93FEC30094FFF8FFEF009C0094
|
| 203 |
+
013FF46FFDF00500012FF710032FFF1FFB50035009B000D0032FFE9000C0015
|
| 204 |
+
3D80043000B003EFFD7FF5EFF5CFF84FF7E0035FFFFFFBEFF87002E00E200AD
|
| 205 |
+
2FFFF3AFF3A0030000B0014001BFFF1001D00140052FF9FFFA7FFF0FF630025
|
| 206 |
+
360FF99FE7700010028FFD00090FFB60009FFF700100007FF6F003FFFEC0011
|
| 207 |
+
02D00060050003AFFEBFE8EFFF800770040FF6F0020FFDF00090036FF2C0053
|
| 208 |
+
3830039FF810027FFE3FFA3FFE1FF0E00480020008CFFBEFFADFFEFFF8900F5
|
| 209 |
+
03CFFB4003EFFBD00120051004A0066FFC70034001AFFE9003AFFDB0019FFBC
|
| 210 |
+
3D6FF76FFD7FEF80013FF5C00810009FFE8FF7EFFAD0056FFF40005FECAFF6D
|
| 211 |
+
3A4FF7EFF80FFE50014FFC5FFD3FFA0FF67FFA10065001E0018FFECFFA8003A
|
| 212 |
+
35FFF330010FF650030FF910011FF770064FF97FF7C0054FFBD0012005B0070
|
| 213 |
+
3C2FFAE0030005400040000FF89FF56FF8C00280023FFECFFEEFFF0FFA8001F
|
| 214 |
+
32BFFE6FF41FFF800130003FF7F0056FFFB0045FE650000FFD4FFE3FFDAFF2E
|
| 215 |
+
376FF1D0022000D006B009C00420012FFFD000AFFDA007AFFEAFFD3FFDDFFC7
|
| 216 |
+
3C20019FEFDFFDDFFFDFE850058FFD9005E008EFFC3002AFF9F0008FFAFFF37
|
| 217 |
+
3CDFFF0FF62FFF2FFC8000C00C7002E00930020FEEC004000010019FFE0FF48
|
| 218 |
+
04500AD00D00067000A0045FFCFFF8FFFB60021008B002A00170015FFA7001C
|
| 219 |
+
0C9007000070013FFDBFF77004A000AFEF8FF6C0031FFBC0000FFB6FF650049
|
| 220 |
+
041FFFBFFD0007DFF9A00570020000DFE84FFEA0088FFDF0008FFE1FF57FFAE
|
| 221 |
+
0D9007400B6FFDB001DFF4DFF6E0089005AFF080057FFA900300026FF9A004C
|
| 222 |
+
3AEFF4FFED40006FF88003FFEE6FF65FFABFF370014FF9DFF9FFFCAFF540084
|
| 223 |
+
042FF4A000000BC0032FF4700350017002C000BFFF00045FFD4FFCAFF58FFDA
|
| 224 |
+
3AFFF3BFF66FFA0FFEBFEE30112FF6F00070058FFDA000FFFBF007DFF72008F
|
| 225 |
+
045FFD8FF0D0095FFBBFF44FF5B005AFFEF0040FFE6FFD6FFC50029005CFFE4
|
| 226 |
+
064FF9B014C00B3FFB1FFD3FF3DFFD9003C001700AC003800090022FFCE005B
|
| 227 |
+
37A00050012FFE90014000F0002FF7FFFC20020003DFFDD0027FFCE008C006B
|
| 228 |
+
3E0FFF5FFE7004FFFCEFFE3FFA80038FEF7FFB500DA00590005FFDEFE9CFFAD
|
| 229 |
+
04200BE00200015FFB600110044000BFF8CFFF0008700C3FFE4FFC0FF490039
|
| 230 |
+
373FF97FFD4FF8DFFA4FFE4FF90FFE6006B001BFFBEFFEC0022000AFEFBFFE8
|
| 231 |
+
0BFFEA8FF6DFFC5003D0005FFEF00450025FFE8FF800011FFFBFFF10037FF68
|
| 232 |
+
3EE0050FFBA00490026FFAD0074FFDCFFF4001C007CFF9D001FFFFA0026FFB1
|
| 233 |
+
308FFE6FFF70054FFAAFEE1FFD9FFE60020FFFE004EFFB9FFFF0023FEBF0001
|
| 234 |
+
0250099FF42FFF6FF9D0081FEC00017FFECFFA2FF7100500004FFFEFFF10013
|
| 235 |
+
3EFFFF2005F001C0001FFD200A1FFD7FF910007004BFFF5000C001EFF59FFDC
|
| 236 |
+
3B0FFC300840051FFD9FF63FFE7FFD2FFEE004D0012FFFA0005FFFEFFDD0044
|
| 237 |
+
389FF56FF6E000D00070062FFB8FFC0FF42001FFFF9FFC8000CFFEB0048FFF1
|
| 238 |
+
05AFFA6FF82003100140030FFD4FFB2FFFB006AFFB00013FFEA0037FFD0002D
|
| 239 |
+
034002CFFA1FF000025003200A200290007FF860075FFD3FFDFFFACFFD3002F
|
| 240 |
+
00C00CAFFC5FFE4FFCCFF4700D8FF82FF8C00010056FFD6FFFAFFC00058FFFD
|
| 241 |
+
3FAFFD100840043FFE200360061002F003FFFE7FFBF00210000FFF60085FFC3
|
| 242 |
+
3A1FF9D0043FFBA0022FFEFFF51003BFF42FFDEFFD4FFBBFFC0001DFF2FFFC1
|
| 243 |
+
039002BFFF8FFD10042FF7FFFD9FFF7FFF700090043006D006D0034FF24FF94
|
| 244 |
+
3EFFF640010FFB1FFBEFFB7FF31FF99FFCEFF75FF47003FFFBBFFD9FF840094
|
| 245 |
+
3E800660092FFE2000100120031FFB9FF9DFFFC008BFFAB0009FF7A0085FFE7
|
| 246 |
+
2F3001BFFE0002BFFA10013FF08004100290004FED40000FFF5FFD8FF3AFFDF
|
| 247 |
+
024FF9B0031008B003C004D009AFFF6FFDD009CFF51FFAF0008FFA400D7FFEB
|
| 248 |
+
028FFED0036FFF0FFB500B9FF96FF6AFFC6FFF9FFA30017FFC7001700AEFFEB
|
| 249 |
+
3D1FF3E0024FF9CFF6F0024FFA20039000E0033FF03001EFFED000AFF7E003A
|
| 250 |
+
0010068FFD000420022FFDC00DFFFA4FFDAFFCD00BDFFD90025001D00200003
|
| 251 |
+
00D005EFFE30006FFF8000E005F0006002FFF920012FFAFFFDDFFD9004EFFF1
|
| 252 |
+
3950010FFFF0016FFE3FF450048FFA5004FFF830032FFFAFFE9FFAD00C90007
|
| 253 |
+
0A40047FF96FFD60013FF6CFFED00AAFF72FFF8005DFFE0FFFCFFD80066003A
|
| 254 |
+
3F9FF2CFF53FFBE0025FF9EFFA1FFB6004B0003FFDAFFE7FFEC001EFFCB0089
|
| 255 |
+
3FBFF68FF84FFF60009FFE8FFD70024FFE40022FFC50007000500170056FF66
|
| 256 |
+
375FF57FF70008E0002FF41FF3BFF6CFF4E003EFFC9001AFFCD0054FFDC0044
|
| 257 |
+
08C0059FED6FFF9FFF3FF37FF560079FFA5FFDC001C0060FFD50004FFE9003B
|
| 258 |
+
3E1FF220058014E000E0080002F0019000A0071009A000BFFEFFFE6FF68001C
|
| 259 |
+
3C0FFDE002FFF4A000FFED60081FF47FF7DFFF00018FFF0FFB1FFF900D30055
|
| 260 |
+
39BFFF200B4008DFFCBFFF4FE4DFFFC00210025FFD100670031005D0062FFB8
|
| 261 |
+
3FE007D00A2005B00320099017B0034FFE4FFF300680093FFF0FFDDFF00001D
|
| 262 |
+
00FFF5C00B0FFA0FFEEFFE6FD9800050040FFE40019005A001E002CFF370036
|
| 263 |
+
002FF43009CFF80FFEAFFCEFEE0FFE6FFADFFBCFF90000CFFAA002D005E0066
|
| 264 |
+
0370052002AFF22001600BD00B3FFE6FF21FFEF0072FFB8002FFF8E0075FFF2
|
| 265 |
+
3790028FFCD00C9FF3AFFE1FEC2005EFFC70044FFA7FFCF0031000BFF9EFFBF
|
| 266 |
+
3E0FFFFFFF8FFF9FF24FFC5FFE00030008BFFF800640038FFD60042FF88FFE5
|
| 267 |
+
39800320107007FFFD0FF12FDC8FF68001A0047FF990047FFEAFFCC0026FFBB
|
| 268 |
+
2D4FFB3003E004FFFC4FF25FFACFFE8002E000DFFC400090012FFFAFF7FFFD1
|
| 269 |
+
399FFFFFF50FFB0FFF30060FFB7FF91FFF9FFFAFF9EFFB7001CFFEF00650032
|
| 270 |
+
3F1FF89FF5E00800063FFD30075FFCB001D0048000C002C001E005CFF6E0020
|
| 271 |
+
0170070FFC5FE900078FFDBFFE7008AFEF6FFAB004DFFFA0016FF77011F000C
|
| 272 |
+
04F006AFFD7FFCA000BFF5B00CBFF57FFB0FFD50004FFDBFFE2001300960020
|
| 273 |
+
3C8FFCD0084FFAC0000005900AFFFBF00620019FF97000EFFC8FFFA003C00A3
|
| 274 |
+
329000BFFFB005CFFA6FED8FF55FFF1001C00540038FFDCFFCF001EFFD6FFDE
|
| 275 |
+
3E0002AFF8D0024FFF1FFE6FDF7FF160063FFC1FFDF00510017005A005CFF9E
|
| 276 |
+
3D7FFA00029FFC8FFAF00A10048FFFF0064FF930010002DFFE90024FED3002E
|
| 277 |
+
0300014FFBCFDE4FFCE005A0041FFD6FFC3FFCA005DFFB3001BFFBFFF6E0003
|
| 278 |
+
30AFFCFFF8DFF9DFFC3001D0025003FFFFD0011FF78004BFFFE0018FEA6FFF6
|
| 279 |
+
0780039FF89FFD4000400A700C7FFB50044FFE4FFFC00630056FFE5006D0011
|
| 280 |
+
3FCFF070053FFFEFF68FF42FF1BFFCD0095002D0010FFFD0015004700830055
|
| 281 |
+
01BFEC3FFC6FF7F0024FFD9FEED0043FF5CFFDFFFD90022FFCD0033FF350066
|
| 282 |
+
049FFD6FF1600890017FFCC000CFF3EFFCDFFB5FFE900050013002600B0FFAB
|
| 283 |
+
008FFA1001A0028FFF9FF97004EFFAC0024FFFFFFAFFFC1FFF4FFD8FFE9FFE1
|
| 284 |
+
3E1FFCE009EFFFFFF90FF7E0032FF7CFFC00021FFF60099002AFFFDFF310006
|
| 285 |
+
0850050FF13FF4F00370030FFF60091002FFFE1001EFFFA002FFF5EFFC2FFC2
|
| 286 |
+
3C9FF4AFEE0003DFFFA0011FFE3FFB800380093FF5600160048003CFF77FFC1
|
| 287 |
+
3D4FFFB000900120028FF70FF3DFFCA00190000FFF70042000FFFCFFFCF0007
|
| 288 |
+
36C0005FFBA0064FFBCFEBEFFCDFF8FFF6AFFEAFF520018FFE8006DFF390055
|
| 289 |
+
39BFFB6004AFFDAFFF2007100ABFF7A00040036FFEEFFC70068FF84FFD1000D
|
| 290 |
+
02DFFDB00BB007C001201000123009EFF2A0079FFE800A1FFDA0001001E0004
|
| 291 |
+
07FFFAA0015FFA4FFE70067FFE600BAFF57FFA7FFEFFF8F0004FFEDFFEAFFD3
|
| 292 |
+
01A0024FEAE0015FFF6FEB7FF8EFFAE0024FFE600080024FF85FEFCFF3DFFEF
|
| 293 |
+
32A000DFEBCFFC4FFF8FE77FFEB0057003F001A000200B3FF10FF3DFFB30027
|
| 294 |
+
30F00400028FFC40009FF76FF88FF74FE7FFFE8FFF5FFCE005C0064FFC8FF94
|
| 295 |
+
346009CFE790063001200CD00180067002800330013006FFFF7FE91001A0082
|
| 296 |
+
01BFFCC01340031FFCC01A000F9004D0040FFFE000D0051FFF3FFDA0053001C
|
| 297 |
+
0550015000DFFA6FFE4FF92FFC2FFC4FFDF00360003FFBAFE6CFF650030FFE9
|
| 298 |
+
3A0FFD100230006000EFF33FF66FF76FFF70003FFE9002FFED800590054003A
|
| 299 |
+
06DFFFE0061FF8A0014FFF3FFB1FFC8FF5C003900530016001A0043FF9D001A
|
| 300 |
+
37BFFA1FFB5FFBF001B000F0013FFF0FFCAFFD8FFFFFFF6FFCC00500041FFB5
|
| 301 |
+
033FF65FF5FFF5FFFE0FF67FFA50017FFBE00520039FFB0FFD8FFDAFFF3FFFB
|
| 302 |
+
00B000800610069001E0180011A0090FF120048000B000E0125000E0028FFD9
|
| 303 |
+
3A100100050FFE6FFE0FFDDFFCAFF980025FFBCFFEEFFC8FFBF0036FFB6FFCC
|
| 304 |
+
3C3FFE00112FF93001AFF63FED6FFA3FF5AFFF2FFF90046FF00FF8D0002FFA5
|
| 305 |
+
065000E0026FF720001FEB9FF2EFFB8006EFFCF0022FF79FEBA000100500004
|
| 306 |
+
3B5002BFF0F0064FFDBFF68FFAFFF410034FFC6FFD500350031008100770069
|
| 307 |
+
0B20044FEC6001AFFE2FE2EFED100510007FFC000430028FE90FF66FFA40030
|
| 308 |
+
3B1006000310046FFED0007FFFAFF4CFF310069000A002D00120071005EFFDF
|
| 309 |
+
3D5005500CD0050FFDD0074FFEE001CFFB8FF9A0011FF91001E00A60033000A
|
| 310 |
+
3D8FFC500B90004000C0012FF9AFFAD0080FFFE0001FFD4FFB400410069FFD7
|
| 311 |
+
04CFFEAFF5EFFECFFFD00BB001BFFD7FF43001700540035009BFFE600250055
|
| 312 |
+
363FF5EFF98004FFFE2FFBAFF35FF7DFFD5FFB8FFEE003BFEB9FF7F003C002E
|
| 313 |
+
3E5FFD8FFDBFF9FFFFFFDC5FEEF00AF003D0025FFF70008FFBB002200190014
|
| 314 |
+
048001B007B0004000400B2004E00420047FFD40001FFF0005B007500210005
|
| 315 |
+
05F0046FFF9FFEE0027001C0028FF140073FFE8000AFFA7FFF900350020FFC1
|
| 316 |
+
01800320042002B002300230021FF9F00C8FFD1FFC90005001200740043FFD8
|
| 317 |
+
3EFFFDF0012005CFFEC00C700E1000CFFFFFFEAFFE6000100E300290005005A
|
| 318 |
+
03EFFCD0034FFAB003200560057FF3D00290045FF590074FF3DFFB4FFF10041
|
| 319 |
+
3E7FF93FF50FFEE0011FF07FFD70084FFFEFFEC0001002FFEB900770025FFCB
|
| 320 |
+
34BFFB0000D005E001E007E005700880027FFC9FF9B0020FFFC000CFFC70048
|
| 321 |
+
3A3FFF9FFF8FFA300480058002D0005005000510002FF61FFE5FFDFFF8CFFF0
|
| 322 |
+
05BFFD60052FFD5FFD300060029003CFF3D000DFFB3005B00CA00C0FFCBFFD0
|
| 323 |
+
06AFFFC0064FFB0001B003FFFC70024FFBDFFE0FFF3FF6FFFB90014FF85FFD5
|
| 324 |
+
3DB0002FE9FFFFFFFAEFFFA001000ACFF3FFF480040FFF0FF2EFEAB002B0029
|
| 325 |
+
356FFC1FFB30076FFB4003900010044FF7E0051FFC80024FFA9FF80FF3D0033
|
| 326 |
+
3520008FF75FF5C00320059FF3EFFCCFF89002E0023FF81FF61FF7AFFD6FF9E
|
| 327 |
+
330008BFF8DFF98001800A20023003A0021FFE70063FFE0FF8DFF11004A001C
|
| 328 |
+
0C000000051004FFFDEFFD0FFCA00070032FF64FFFBFFB20078FFCBFFE5FFD3
|
| 329 |
+
037FFFEFF7BFFE400040053FF3DFFE40023006C0005FFBDFEE2FFB10040FFBD
|
| 330 |
+
37DFF26FFE6FF8EFFC9FF770022FF5700040042FFB1002CFFE0007AFFC80002
|
| 331 |
+
385FFE00063FF79001F001A0036FEF4FFED0024FFE3FFED007BFF38FFCFFFE0
|
| 332 |
+
3F70001FFFCFFE10041FF3CFF980003FFC50038FFF5FF73FFC300330005FFA4
|
| 333 |
+
33CFFA2FE77FFE1FFC8FFADFF71FFEF0009FFB8FFEBFFAFFF9DFFDE00C4FFF7
|
| 334 |
+
392FFC2FFC80032000DFEFAFF9E0032000A000EFFFD006B005FFFFC0030FFDE
|
| 335 |
+
06800300078FFEEFFFA0033FF0600340015FFF1FFE6FF9C0039002BFF71FFD6
|
| 336 |
+
01B002400DFFFD60041FF60FF0EFF5A002A0006002E002DFE69FF03008CFFEA
|
| 337 |
+
066FFE7FFC4FFC2004A003800C600080033FFFF001AFFC40047FFD7FFDCFFAC
|
| 338 |
+
331001100360028FFD3003FFFCFFF32FFE4FF780013000B00470082001A004C
|
| 339 |
+
03B0016FF4FFFAFFFDC0032FF80FFFDFFF3FF830053005AFF85FF9E004CFFFB
|
| 340 |
+
3ADFFD30046FFA8FFB9FF5AFFAA0019FF90FFC6FFE3004AFFED00AFFFA5000A
|
| 341 |
+
0370047009B004F002BFFEAFF48FFDF0024FFE6FFFBFFBE0018003BFFFEFFE3
|
| 342 |
+
3DFFFABFFD300190009FFFFFFF7002300350021FFD4FF8DFFD9FFDE0036000E
|
| 343 |
+
3CAFFC3FF3C0006FFD90015FFE20033FF65006400170071FFF2FFAFFFF80029
|
| 344 |
+
305000AFFE00026FFCF005F0055FFEDFFC4FF9A0008002700090016001C002C
|
| 345 |
+
3DAFFDBFF9CFFEE0018FF3FFF46FFF10008005A0018FFDDFF31FFBA001E0044
|
| 346 |
+
0CE00030031000F0011FFBCFF6C0059001B0029FFFBFF7600230045006FFFFC
|
| 347 |
+
09E0038FFB4FFA6FFE40000000B0031004BFFF0001F001700C4FFE70062FFB1
|
| 348 |
+
09EFFE3FFBE004BFFCFFFD8FFF20028005BFFE4FFF1001EFFBA0032FFE90014
|
| 349 |
+
05BFFE1006200080015000D00320011FFF90014FFF8FFEA00B300180018FFF7
|
| 350 |
+
3F4FFCF003000060005FFF0FFB3003BFFDB008DFF200009FFEEFFFAFFC0FFCB
|
| 351 |
+
3CFFFA6FF0C0048FFECFFC2FF16FF59FFE2FFB3FFCCFFF1FF4E0039003C0026
|
| 352 |
+
332001CFF3AFF97FFF400B300450063FF5FFEE3FFBA0018FFF90024FFCC008C
|
| 353 |
+
039FFF000110098002AFFBEFF5BFFEF0114FFDBFFF4FF57FF92FFFBFE5A0021
|
| 354 |
+
068FFE00073FF970003FFE0006800B8FE98008AFFF10011001300370007FFE4
|
| 355 |
+
09000480074FFBF0064FFC60069FF880055FFCFFFFCFF9800310018FE2AFFAC
|
| 356 |
+
33DFFE7007CFEFFFFC1FFF5FFD1003FFE9EFFA60012FFF9006AFFFA0069FFFB
|
| 357 |
+
314001D00B20015FFA9001C0069FFE1FEAB0007FFC1001900520016FF060001
|
| 358 |
+
36F0022FEFF001F0022006CFF4B0081007AFFEDFFDCFF94FFD0000AFF580036
|
| 359 |
+
38E0045FFA9FF5C001C001C0004FFEE0050001E00260023FF4AFFB90050FFD2
|
| 360 |
+
0F50005005D0060FFC0FFA9FF27FF6B0017FF88001FFFB7FF8FFF97FFBC0008
|
| 361 |
+
38F0003FF9200CA0004FF6FFFC8004E0075007DFFCBFFB2FF02FFDE0038FFB0
|
| 362 |
+
38AFF23FFAAFF4CFFE800B0006D0038FF8D0085FFD30001FFE2FFCE000AFFF9
|
| 363 |
+
3C0FFB100AAFFB40025000800F700C90066003DFFAD000B0127FFEC005BFFF6
|
| 364 |
+
00C000D001900AA0050FFB9FF9AFFD9006A0079FFD3FF3FFFE3FFFEFFDEFFD1
|
| 365 |
+
28CFFC8FF07FFFAFF87FFE8FFB40022FFA3FFAB0005FFE2FF34FFC8018D0051
|
| 366 |
+
02EFFE7FF1500190051FF7FFFAA0030003E00190048000FFFD5FFF8FFEAFFD5
|
| 367 |
+
061002F007D003A00320000FF2A0077006AFF95FFEBFFCD0010FFFEFE52FF9C
|
| 368 |
+
365001CFFA0FFD6001BFFB5FF26FF8400C10025000C0004FF2BFFE20071FFF9
|
| 369 |
+
0E60006FFF40063003600A8FFE9002E00810070000EFFB900C6FFD6FD98FF7D
|
| 370 |
+
350000E00470023000DFFD50043FFECFFEC0032003CFFEC000EFF9200C9FFF0
|
| 371 |
+
2E8FFF50074FF8F00080041005FFF6F0012FFC5FFFFFFEA0093000100B10011
|
| 372 |
+
35EFFE8FFCFFE850012FFD200230082FFCB000DFFCD000BFF8CFFE4FFFBFFED
|
| 373 |
+
0870037FF76002DFFEE0037FF04FFFB006FFFFDFFE1FFA0002EFFB5FE8B0021
|
| 374 |
+
024FFCEFE71000200250001FFC8FF2F0087FFBBFFEDFFA0FF8DFF9300090011
|
| 375 |
+
36E0018FD1F008CFFD1FE1DFF88FF91006AFFEBFFD20005FFF1FF6D00BA002D
|
| 376 |
+
3B1FFE000E3003B0016000700C8002EFFC9000F002E0088FFE0002700A1FFCE
|
| 377 |
+
01B003CFE5CFFDA001300D8FF0BFFD20073FFEA000AFFA3FFAC0016FEC4001A
|
| 378 |
+
0BF0026FEB0003B0015FFC9FF66002F006E0022FFE3FF87FFF4FFBC00AC001B
|
| 379 |
+
001000DFF24002FFFCDFFBF002F005E005FFF8B0020003D0025FF8D005FFFA0
|
| 380 |
+
3A7FFA3FF8E0061FFDC00110024FF9AFFCEFF66000A000700BA0034FF84FFF7
|
| 381 |
+
090FFD9FF33FFEFFFDE0076FEAAFFEC00980000FF86FFAEFFECFF9BFE9A002F
|
| 382 |
+
38DFFCBFFA100830017FF5BFFC9FF73FFF80046FFA70032FF8CFFC10030FFC4
|
| 383 |
+
31C0006FFDB0082FFA000C100710015FFE6FFCB0022000B0047001B01480065
|
| 384 |
+
329FFE0FFC3FFE2FFD8FFE6FFCCFFBBFF37FF81FFEB0019FF940055FF9F0049
|
| 385 |
+
377002BFF13FFC2FFDA00010063FEE8FFEEFFF0FFEB00210059FF9C00090014
|
| 386 |
+
01EFFD7FFFC0032FFE4003D0031FFF3FF940057001B00BDFFFB008500310030
|
| 387 |
+
021FFBDFFD2FFD4FFD300A3FFD0FFAEFF87FFA5000B008B004EFFAF0002FFD9
|
| 388 |
+
3EBFFF5004EFFAF000AFF880078FEF90067002FFFECFFC000480012FF080011
|
| 389 |
+
054005400CAFFDF000F003200C60047007D007D0004004DFFE3FFB800300032
|
| 390 |
+
3CFFF97FF30FFD500110099FFDFFFB3FF30FFDC0013000FFF660031FFE4FFB4
|
| 391 |
+
3D20050FF32002F00230020003200000001FFEDFFE1002DFFBCFFE4FFD4FFEE
|
| 392 |
+
008007CFF10FFFFFFC20175FFDEFFAC002FFFFE0017002C0025007DFFB80039
|
| 393 |
+
398FFDDFFFBFF8FFFD8FEE8FF04FFA2FFD7FFE1FFEDFF850035FFD3FFF4003B
|
| 394 |
+
053FFCEFFAF00690034FF290020009000420021001BFFE7FFAB000CFFC2FFFE
|
| 395 |
+
3D30033FF55FFE60008FF93FF83007AFFE00049001C0064FFC3FFF2FFCF0005
|
| 396 |
+
3B0FFF60087FF95FFF30012FF52FFB0FFFCFFC8000A004400230034FFAA0018
|
| 397 |
+
0890004FF19FF4BFFCDFFC00009FFE6FF700016003B00230019FF850047FFB5
|
| 398 |
+
008FFE6004F0072FFDF003AFF8FFFCEFFCDFFDAFFE6FF9D007E005A0029FFE2
|
| 399 |
+
380FFE6FFB0FFA2FFE200640061FFE1001DFF8AFFF0FF970001FFD80060FFE5
|
| 400 |
+
02F000E00F0FF88FFF100A90028FFDDFFA4FFC00018FFC2FFCFFFD6FFEAFFDC
|
| 401 |
+
0170049FF98FFA20001FF9C0015FF320031FFA9FFEA0027FEDEFFBD0006FFCA
|
| 402 |
+
00D003F0061004E0032FFF2FF2100AEFFBFFFE1FFA4FF90FFE800170003FF65
|
| 403 |
+
359000BFFA5FFC6000CFED2FF7AFF26FFD60053001B0014FFDE0005FFA5FFEF
|
| 404 |
+
063FFDCFF9E0025000EFF1B00230046FFA3003EFFF30009FF8A004B0047FFEE
|
| 405 |
+
3B8FFE3001FFFF3FFD400AAFFFEFFFFFFC5FF9F0000FFABFF620041FFAF000F
|
| 406 |
+
0080009011C005C00150022FFD5FF9B003AFFA9FFFB0021FFB400180033FF63
|
| 407 |
+
3E50050FF91FFE1FFFEFFE6FF91FF8BFF89FFBBFFE9008C0079006E0026FFAB
|
| 408 |
+
04BFFC9FFA8007BFFD700C4FF14FF8BFFDCFF4FFFC500A3FF52003E0008FF4F
|
| 409 |
+
000FF1EFFD6FFC60018FF53001800040039FFE40011FFDFFED5FFBF0041FF86
|
| 410 |
+
3FBFFE5004F0044000B0046FF7DFFC70005FFF1FFF9000CFFFE009CFFE5001D
|
| 411 |
+
05D002200180017000D001100A4FEB80030FFB5FFECFF5200200003FF880012
|
| 412 |
+
0620077FF9D0058001AFFE9006CFFB600720026000EFF61FFE3FFDDFF2F0046
|
| 413 |
+
3A2FFF9FFD10083FFF1FFC0FFE5FFDB0059FFC8000DFFEA00930005001F005E
|
| 414 |
+
3BA000E000EFFE40015FFF3FFDCFF01FFD5FFC5FFCE0072FFC0000AFF35004E
|
| 415 |
+
037FFE00067FF9A0005FFCBFFE000FDFFA2FFFEFFEB004DFF17FFFBFFB3FF8B
|
| 416 |
+
08C0005FE99FF8C000DFFDFFF9CFFDDFFE8001BFFADFF9E009B000DFFD3FFF3
|
| 417 |
+
318004FFF4CFFB4000F0069001C004BFFD6FFCA0013FFDBFFEBFFC1FFFE0005
|
| 418 |
+
090FFD10066FFC6FFC0FFA0FFA7FFE3FFF40008FFE6004BFFE90039FFC1004E
|
| 419 |
+
3E90031003FFFF1FFE6FFE1FFC7FFF6FFB1000CFFFD001B0000FFE6001B0008
|
| 420 |
+
3FDFFF5002EFFB0FFFC0090FFBC0042FFA9FFE7FFE7001CFFB7FFE1FFF2FFEF
|
| 421 |
+
0A700050081007DFFE400300002001E0019009FFFF0006E003A002CFFF8001D
|
| 422 |
+
00DFFA9FFD7FFD700310039FFD9FFAAFF88FFEB0034FFDFFFB8FFCAFFE2FFB5
|
| 423 |
+
3E2FFEAFF61FFFF002F0021004DFF95FFD9FF7D0054FFDAFF6800020040FFE8
|
| 424 |
+
3BE003800500055FFE70066FFE4FF0DFFD00010FFF20042FFE2FFF100490033
|
| 425 |
+
3F9003DFFCBFFD40001006600130005FFB9FFF3FFF00030002DFFB6FFF70029
|
| 426 |
+
040FFE6FF60FF8FFFEEFF8000740033FFB10051FFE5FFE6FF95FFD6FF75FFC1
|
| 427 |
+
3E2FFB2004CFFFA000F0062FF8BFF7BFFB70001FFD5000C003CFF8BFFED0014
|
| 428 |
+
3B2002FFFE6FFDA0006FF90FFBA0004FFD500080005FFB9FFCDFFE4FFBA000F
|
| 429 |
+
3EC0023FEAAFFD5FFD5FFDFFFC7FFF6FFDFFFBBFFF1FFC1FFBDFFBF00010014
|
| 430 |
+
009FFD6FF8EFFE90001FF61FF7CFFE4003AFFF9FFFDFFBA0018001A000FFFD7
|
| 431 |
+
3DF000D0026000EFFE4008BFFF5001FFFD1FFA7FFFBFFD70054FF9D001CFFD7
|
| 432 |
+
04F002300C9FF8F001C00100032FFB30013FFD0002CFF71FFEDFFBE0042FFD4
|
| 433 |
+
036FFDA0040FFE30021000EFFD4FFBFFFE9FFA9FFF4000DFFC400570017FFF4
|
| 434 |
+
3BBFFE5008CFF7FFFF8FFAAFF80FF90FF48FFBBFFEAFFD9FF9AFFC8FFDEFFC5
|
| 435 |
+
003FFCCFF83FF5BFFFC0091FFF40000FFFAFF88FFF1FFEFFFDCFF9B0014FF92
|
| 436 |
+
01E00070001FF93FFFEFFCE006100CEFFFEFFD2001B00180032FFFBFFD7FFF2
|
| 437 |
+
3D7FFDF009900050003FFAFFFCDFF8C0005FFFF0007FFF9FFDE000500010007
|
| 438 |
+
003FF9CFFCD0047000BFFBEFFB0FF9AFFC8FF7DFFEEFF91FFE6FFEFFFD1FFDF
|
| 439 |
+
00C0004001C004EFFF40027FFE2FECEFFCBFFD700370016005A00230064FFFA
|
| 440 |
+
3A20032FFE7FFC1FFD00047FFEDFFC5FFE4FFB3FFE30010002A000AFFC00001
|
| 441 |
+
3A5FF39005F005F0036FF9CFFC6FF77FFECFF8A001F0008FFCE002F002FFFAA
|
| 442 |
+
03E0000FFF50063001FFF8BFF3BFFAEFFE900660019FFB9FF850012002AFFF6
|
| 443 |
+
045000FFFDCFFE8FFD1FFC10057FFD7FFDE000A001B0029002CFFDD002EFFE9
|
| 444 |
+
3D900540000006BFFCFFFFDFFB1FF2AFF86004F00100018FEE1FFDAFFCF0079
|
| 445 |
+
315003D00740014002F0001FFE50015FFDBFFEA002C002B0084FFFC004F0014
|
| 446 |
+
34A0038FFC7FFC5FFF2FFE0FF450047FF86FFF9FFB2001BFFB4FFF8FF8BFFC9
|
| 447 |
+
04D0004FFAC0042FFE7FFC0FEE9FFA0FFA2FFB9FFBEFFA6FF91FFF7FF6C0013
|
| 448 |
+
01C0041FFBCFF5EFFC9003FFF820018FF99FF340003FFD0FFC1FFAEFFC00047
|
| 449 |
+
0400010FFE4FFC7FFCD002B004800560001FFE000020014FFB5FFC6FFD8FFE8
|
| 450 |
+
03BFFE9FFE6FFAE000DFFD500360058000EFFD0004E00100031000DFFBCFFAF
|
| 451 |
+
0A900450069FFBC002FFFF7005C000000130092001EFFD8FF97FFE7FF71FFF5
|
| 452 |
+
3AFFFD3005AFF9B0015FFC0FE6EFFEAFF44FFF6FF9E0039000E004EFFD00044
|
| 453 |
+
043FFF700C4FFE9FFF80037008E005EFFB6FFEDFFFB003A009B004CFFBE0032
|
| 454 |
+
392FFDDFF75002F000FFFB1FFBA007C0060FFCB00040022001BFFF300280014
|
| 455 |
+
3B5FFADFFF0002E000BFF9700AC003B0062FFA8003100410012FFFE0017004C
|
| 456 |
+
0010018003B0011FFF8FF3F0067FFC1001A00200049FFF4FFADFF99008E003F
|
| 457 |
+
330FFC3FF98006CFFDCFF460000FFF900190031FFC20003FFECFFE4FFED005E
|
| 458 |
+
032FFD1FF38FE9A00100057005CFFD4FF7F000EFFEF000500E5FF8BFFA6FF80
|
| 459 |
+
28EFFDE00120094002400030065005CFFF4FFA2FF99FFFD0071FFF000110014
|
| 460 |
+
02DFFBFFF910086FFF7FF40FFCE002E00280054FFDBFFD7FF6DFFE7000DFFC7
|
| 461 |
+
3A90022FE31FFE2FFCCFF26FFB30000FFC8FFBBFFE5FFE9FF87FFF3FFED004B
|
| 462 |
+
3C7FFECFE5A00B60012FF01001600150020FFF50003FFC5FF310004000DFFF1
|
| 463 |
+
04CFFDB00920005000EFFD500190048FFDA0019FFF7000F0040FFCFFFC3FF7D
|
| 464 |
+
0A7FFE8005BFFFB0011FF5B001C003000A5FFEC002DFFADFFFBFFD5005EFFDA
|
| 465 |
+
0BAFFBC00A0FFC50042001D004BFF47003500740035FFFF00580022002DFF52
|
| 466 |
+
3F6FF8400F8FF59FFF5FF730080FFFEFF98FFE60017000AFFE8FF5B000D0042
|
| 467 |
+
36AFFE4000BFFF1FFF6004C005900CFFFFAFFBAFF9DFFA9FFF60006003AFFFC
|
| 468 |
+
37DFFFE0021FEC4002DFFD500370027FFF6FF3AFFFFFFCC0088FF8C001BFF81
|
| 469 |
+
022FF9E00BEFFC3FFFBFFDE0090FFF6006000960030FFFB004CFFDC00200029
|
| 470 |
+
007FFADFE4B003F003CFFEDFF39FF7AFFF6FE95FFCFFFE70009FFE6FFD4FFFB
|
| 471 |
+
379FFB900030032FFBFFF1000660035FFE4FFBA004BFFE6FFF6FFF80012002A
|
| 472 |
+
3C600070035FF510000003C006EFFC0FF87006C000AFFC7FFC2FFE0FFB7001B
|
| 473 |
+
3910037FF7A00CC0000008DFFBEFF150036FF95000D000400670036FFEAFFFC
|
| 474 |
+
03FFFF3FFC10086003AFF20FF89FFE4006700C4FFFEFFEF0014FFE7009C000F
|
| 475 |
+
3C70009FF8A0035FFCEFF870076003BFFE80011001FFFE9FFEFFFCB003CFFD2
|
| 476 |
+
34D0027FFC60007FFE8FF440050FFCBFFB9FFF300080027FFBDFFE200880049
|
| 477 |
+
3ED00120054002F0012000EFF99001C00400049003700310078FFB3007C0020
|
| 478 |
+
325002AFF7600310025FFADFFADFF600001001A001D002AFFFBFFBFFFF1FFB0
|
| 479 |
+
3B7001AFFD9005DFFD1FFC2FFF2FF64FFC20013FFD300070055FFF8006C0034
|
| 480 |
+
3520068FFEEFFE0FFC5FFDBFF960002FF91FF0600120039FFB5FFEFFFD5001E
|
| 481 |
+
3C4FFC1FFD5FF9EFFE0FF0C004BFE82FFB5FF4F0011FFDC0095FFE300100002
|
| 482 |
+
038FFBBFFEF00480021006C001F0042FFDB0015FFC7FFB500190025008E006C
|
| 483 |
+
012FF7EFF13FFC5FFE70094FFE4FF87FF8BFFBA001100F80005FF71FFFC0014
|
| 484 |
+
01AFFB2007BFFFCFFF8FF70000DFFF4FFEB00010001FEADFFAA003EFF320012
|
| 485 |
+
0DD000F010D00640008005F00B4FF5E006CFF91FFF4FF36FF7E007100AEFFF3
|
| 486 |
+
01BFFD4FF2F00790016FFCE00010085FFA2001AFFDB0018FFD800780028FFC6
|
| 487 |
+
020FF15012EFFCE0020FFD0FFFB00810047006E000200410076FFF50017FF18
|
| 488 |
+
0B70063FFCC0012001E00A1FFC9FF82FF85FFDFFFF3FF36FFEAFFC7FFE20050
|
| 489 |
+
005007EFF90FFA0FFF9FF23FF7DFF6EFFD7FFEC0001FF580058000E000EFFF2
|
| 490 |
+
3A4FFFDFFC300D2000FFFD00087FFDC00230062000AFFE700A2FFADFFE3FFDC
|
| 491 |
+
3B70079FF49FFDD000EFF0FFFD800DD003B003FFFE3003AFF8E003EFFE2FFAB
|
| 492 |
+
3E1010AFFF9FF65FFCA007B000BFF5FFFFF00080021007CFFBC002AFFD20036
|
| 493 |
+
0400017FF65FF73FFEB006B0073FFA0FF98FFEE001D0093FF590022FFBFFFC0
|
| 494 |
+
3B900AD00550071FFD900380029FFE0001E00C5000EFFCDFF0BFFF70023FFF5
|
| 495 |
+
3EBFEEDFF54001BFFDE00000056FFD7FFA4FFABFFEFFF86FFF2FF88FFD0004D
|
| 496 |
+
00D005A0028FFEBFFE00076FFD0FEF4FFB3FFA3FFF40043FF7EFFBAFFA70027
|
| 497 |
+
01E00070081FF9EFFD5FFC60060FFDC0032FFC4FFE80072FF80FFFD0014FF98
|
| 498 |
+
0280007007D0001000E0072FFB3007C0003FFE4FFD3FF61000DFF5D0007FECE
|
| 499 |
+
2D6FFF2FF9FFFC0FFE7FF3FFF9EFFB4FF2A0035FFD5FFF1FF660000FFB7FFE8
|
| 500 |
+
376FEC4FFA0002C0015FF9D0079FFAD00590011FFB1FFE900480017008D000F
|
| 501 |
+
3C3FF14004300240029003BFFA0FFA6FFCFFF660013FFC0FFE8FF5DFFF0000A
|
| 502 |
+
0110033004C003EFFF3003C004500840010FFD0FFDE0024FFC7FFEA003DFF00
|
| 503 |
+
066006A0092FF9A0004FFD3FF11FEBEFFAAFFEC000300560083000BFFE2FF6F
|
| 504 |
+
051FF5701140006FFEA0095FF9B007D0008FF9AFFDC0018001C0025002DFFA8
|
| 505 |
+
04E0032000FFFF2FFFC003D00AE0115FFAB0076FFECFFE0009F0058006BFFB2
|
| 506 |
+
369004100720032000FFFDEFFB50006FFD4FFE7FFF60016FFA4001BFFAE00C8
|
| 507 |
+
005FEFFFFC900800004000AFFD0FF370006FFDEFFF4FE91FFD0002DFF580124
|
| 508 |
+
08BFF07FF500068001FFFC9FF800045009AFFB6FFEEFEE500050008FEDF0054
|
| 509 |
+
06C0037004D001DFFE7FF6100A0FF43FFDFFF5E0011FF4CFFAEFFD9FFF4003B
|
| 510 |
+
04FFFB4FFC9FFB7FFBE0013FFC8FFA50012FFEB0012FFE2FF51FFE6FFA900BD
|
| 511 |
+
06700560048FEE80000001C004900920009004BFFF900D10014FFEA0015FF31
|
| 512 |
+
36900D7FF84FF43000AFFE8FFE7FF2200100095002AFFAB006B004DFF7CFFC0
|
| 513 |
+
3B0FFADFF83FF74FFFE001F000700B6FFB9FF840023000B0033FFD5001AFFFD
|
| 514 |
+
05F000FFFE5FFD7FFDBFFB7001A007F001AFFEBFFC2FFCF0050007C00030045
|
| 515 |
+
38FFFF3001BFFCDFFFAFFC0FF8CFFDEFFA0FFD600210049FFE0FFAA000B0019
|
| 516 |
+
31BFF9A003BFFA2FFBD007A004A002FFFDEFF9EFFD7FFE4FFD4000AFFC50003
|
| 517 |
+
0CD003200450074FFDD00A80040002E007DFFBE0011002100D5004D0044001C
|
| 518 |
+
06F001A0034FFE6000CFF4D004DFF6BFFE3FFEEFFE4FFF1FFE4004700060010
|
| 519 |
+
076FF4B008AFF8E00120030FFEE006BFFD4FFE5002C0029FFB3FFD8008CFF0C
|
| 520 |
+
3EE0044FFF7003B002400EE005CFF73FF70FFF1002E00370070FFEBFFF2002A
|
| 521 |
+
3F6006CFFF4FF98000A009DFFFDFFA6FFF5FF80FFFDFFFF007DFFEBFFEE002F
|
| 522 |
+
3BB0066FFB00019FFCAFF5D0060003500010063FFFDFF6E0033FFB7FF0A002F
|
| 523 |
+
3AF001100590038000B001EFFC5FFDE001BFFABFFCBFFF300050043FFC40024
|
| 524 |
+
36B0134FFB3FFB2FFF8FF6FFFEFFF1C000FFFF4002FFFD2FFFA00080043005B
|
| 525 |
+
3E5FFD4FFD80017000E005D000AFFD00021FFF10002002DFF1C001BFF740026
|
| 526 |
+
32100850007FFFBFFDBFF5DFFC70003FF900006FFF7001EFFE60002001E0009
|
| 527 |
+
3E0FF41FFAFFFEFFFCD0129FFD50007FF9EFFDF001F002DFFAEFF49FFF10045
|
| 528 |
+
3E100120058FFC2FFE400A00042FF5EFFEBFFC3000CFFFB00030012FF760004
|
| 529 |
+
382002EFFA2FFCAFFE7000E0022001FFFA40038FFFCFFE4FF7F0037FFFDFFEF
|
| 530 |
+
3E60026FFDDFF44FFC9FFEAFFA9FF940000FFFAFFECFFD40030FF400018FF28
|
| 531 |
+
3C7FFC2001DFFE6FFCD00CDFFD2005BFF5BFF91FFDA0054FFF2FFFBFFB8FFE8
|
| 532 |
+
39CFFEA0018FFBCFFF8FFDD00310065FFEEFFADFFAFFFEC002EFFEDFFE3001B
|
| 533 |
+
39CFF0DFF550008000F002F0034FFB7FFDB004E002C00210003FF8BFFE5003A
|
| 534 |
+
033003BFFB30004FFF0FF9DFFF00020FFC2FF64FFBBFFAFFFA80011FFF4FFA6
|
| 535 |
+
351FFBE0014000EFFE0FFEE0052004BFFACFFEB0044FFC5FFFC003CFF640022
|
| 536 |
+
0410032FFF4002C0007FFB3FFBEFF9C00230047FFBDFFD300C7FFD8FFE9FF6D
|
| 537 |
+
059002F00300001FFE9FF4B006BFF5AFF96FFC1FFE5FFEA0022006E0006FFAF
|
| 538 |
+
37A0049FFCFFFE7000700210004FF7BFF8500610021FFC8FF38FF87FFAB0034
|
| 539 |
+
3FBFF99FF9F0008FFD90053000E0013FFA400760011003AFF4BFFF3FFC200B1
|
| 540 |
+
050FF230011FFE1FFD400BCFFCFFF2BFFDE003F001F002AFEC0FFB3FFA60035
|
| 541 |
+
3B00061FFA7FF27FFFDFFEB00D1FFFAFF9CFFB90024002FFF5DFFF4FFB3FFF6
|
| 542 |
+
0180016000FFFEAFF95FF9B00210089FF6F0001FFF40008FF34FFE10025FFFE
|
| 543 |
+
058FFFF0009007CFFDE0051FFAAFF41001C0066000AFFB8FFF50004FF9A000E
|
| 544 |
+
01900CE00A4FF54FFFDFF84FFBA00270024FFFA0027FF9AFFF10046FFF3FFB5
|
| 545 |
+
065FF66002FFF38FFC1003600000131FFC7FFC7000700620008FFBA008AFFFC
|
| 546 |
+
079000A0035FFBC001F00BF0078FFF8005FFFD2FFEEFFF20087002FFFE80002
|
| 547 |
+
02EFFC8FFC8FFAF0022FF82FF7B0006FFED00B100150012FFD9FF960062FFDD
|
| 548 |
+
323FFECFF8D0046FFFBFF45FE5CFF8D000EFFC2FFAC004EFFFB003DFFE3FFED
|
| 549 |
+
034005800D4002FFFF8006B0027FFDF005EFF10000C001D00DD0044FFB8FFF3
|
| 550 |
+
3BC00600018FFFFFFFFFF6D003EFE6BFFF3FFEDFFC5001B0016004DFFE3FFF8
|
| 551 |
+
018FFFBFFC9FFAC00040056006A0048004A0067FFEC0054FFC4FFD3001C0006
|
| 552 |
+
3BF004D0062FFEE0042FF2C003F00F1FF9300320022004A006B00000005FFA7
|
| 553 |
+
36DFFE80056000AFFBEFED7FF67FDE2FFDE003DFFED0011007900280045002A
|
| 554 |
+
0080070FF0FFF13FFE000930018FFD5004BFF5C000FFFD90049FFD7FFBB0002
|
| 555 |
+
3170005006000B00012FFA700AFFF88FF59FFECFFA20002002C006DFFD3FFF4
|
| 556 |
+
3980079FF83FFEFFFF2FEFFFE5DFEA5FFDD002EFFDAFFBA00580006007C007F
|
| 557 |
+
3A5FF55FF5800290021FF13FFDDFFE5004000470007003AFEFD001EFFB2003E
|
| 558 |
+
3F000A5FF6A0069FFECFF95FEE5FFADFFD7FF5CFFDCFFD3FF66FFA00034007B
|
| 559 |
+
056FF06FFD8FFE3FFD7001B0024FFDFFF6E0076FFF90028FFAAFF81FFCEFFE1
|
| 560 |
+
016FFFC007700030004FF1900720085FFCB001EFFDF002DFFC90035FFDFFFF3
|
| 561 |
+
025000600CEFFC00001FFD6002100DFFFD900B10011FFD7FF7AFFDA003DFFD7
|
| 562 |
+
034FFFDFF40FF07FFBDFFFCFFD9FFA5FFB6004FFFF6003D004DFF66003F0034
|
| 563 |
+
3C1FF75FFBD004CFFD8FFB8FF9E0014FFDBFFDEFFB8FFDA00110036FFD8FFE2
|
| 564 |
+
08A006E002DFFA6000B0086FF840099FFE3FE6BFFCBFFE800150012FFBDFFEE
|
| 565 |
+
037FF6A004EFF64FFF2FF1700A000A6006800D8FFD000450034FF750048FFD7
|
| 566 |
+
07A0072FF5C0037000FFFEAFF58FFDDFFACFE0FFFA0FFEEFFF200100006FFDC
|
| 567 |
+
37FFF650159FF6CFFD6007500A80206FFFEFFC9FFFBFFDBFFE90046001DFFF8
|
| 568 |
+
02A004AFFC7FF940013FF6EFF22FEFA003D00A4FFD7FFB300D7FFC5005EFFEB
|
| 569 |
+
01A006DFF4E003FFFF900E1005DFE64FF6AFFCCFFEF0040002A0016FFC90010
|
| 570 |
+
3F5FFF6FF5B0009FFF9FF41007CFF8DFFE400BDFFFD001B005FFFA1FFDDFFF5
|
| 571 |
+
034FF9FFFE00006FFD8FFC6003F0080FF7800A90016004AFF910003FFE6002D
|
| 572 |
+
022FF800105FFCCFFFCFF700004FFBBFF42FF9F000A0034FF85FFA60007FFDF
|
| 573 |
+
3C6FFCF00CCFF22FFC600290042011CFFC20015FFE50043FF37FFCFFFD9FFEC
|
| 574 |
+
3ABFFD60031007BFFC0FFEA0003FFB8FFC7FF3A0001006A000EFFE800130011
|
| 575 |
+
3FAFFFEFFD80051000AFFD00060FFD3FFE50063000D000A0046FFF1FF9E0000
|
| 576 |
+
034004DFFF2FFC80016FFC0002D001C0093FF8DFFF1FFC800A100080019FFB4
|
myproject_prj/solution1/impl/verilog/myproject_dense_resource_rf_gt_nin_rem0_ap_fixed_ap_fixed_config14_mult_s_w14_ROM_NP_BRdlF.v
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// ==============================================================
|
| 2 |
+
// Generated by Vitis HLS v2024.1
|
| 3 |
+
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
| 4 |
+
// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
|
| 5 |
+
// ==============================================================
|
| 6 |
+
`timescale 1 ns / 1 ps
|
| 7 |
+
module myproject_dense_resource_rf_gt_nin_rem0_ap_fixed_ap_fixed_config14_mult_s_w14_ROM_NP_BRdlF (
|
| 8 |
+
address0, ce0, q0,
|
| 9 |
+
reset, clk);
|
| 10 |
+
|
| 11 |
+
parameter DataWidth = 250;
|
| 12 |
+
parameter AddressWidth = 10;
|
| 13 |
+
parameter AddressRange = 576;
|
| 14 |
+
|
| 15 |
+
input[AddressWidth-1:0] address0;
|
| 16 |
+
input ce0;
|
| 17 |
+
output reg[DataWidth-1:0] q0;
|
| 18 |
+
|
| 19 |
+
input reset;
|
| 20 |
+
input clk;
|
| 21 |
+
|
| 22 |
+
|
| 23 |
+
(* rom_style = "block" *)reg [DataWidth-1:0] rom0[0:AddressRange-1];
|
| 24 |
+
|
| 25 |
+
|
| 26 |
+
initial begin
|
| 27 |
+
|
| 28 |
+
$readmemh("./myproject_dense_resource_rf_gt_nin_rem0_ap_fixed_ap_fixed_config14_mult_s_w14_ROM_NP_BRdlF.dat", rom0);
|
| 29 |
+
end
|
| 30 |
+
|
| 31 |
+
|
| 32 |
+
always @(posedge clk)
|
| 33 |
+
begin
|
| 34 |
+
if (ce0)
|
| 35 |
+
begin
|
| 36 |
+
q0 <= rom0[address0];
|
| 37 |
+
end
|
| 38 |
+
end
|
| 39 |
+
|
| 40 |
+
|
| 41 |
+
endmodule
|
| 42 |
+
|
myproject_prj/solution1/impl/verilog/myproject_dense_resource_rf_leq_nin_ap_fixed_ap_fixed_36_16_5_3_0_config58_mult_s.v
ADDED
|
@@ -0,0 +1,648 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// ==============================================================
|
| 2 |
+
// Generated by Vitis HLS v2024.1
|
| 3 |
+
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
| 4 |
+
// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
|
| 5 |
+
// ==============================================================
|
| 6 |
+
|
| 7 |
+
`timescale 1 ns / 1 ps
|
| 8 |
+
|
| 9 |
+
module myproject_dense_resource_rf_leq_nin_ap_fixed_ap_fixed_36_16_5_3_0_config58_mult_s (
|
| 10 |
+
ap_clk,
|
| 11 |
+
ap_rst,
|
| 12 |
+
ap_start,
|
| 13 |
+
ap_done,
|
| 14 |
+
ap_idle,
|
| 15 |
+
ap_ready,
|
| 16 |
+
data_0_val,
|
| 17 |
+
data_1_val,
|
| 18 |
+
data_2_val,
|
| 19 |
+
data_3_val,
|
| 20 |
+
data_4_val,
|
| 21 |
+
data_5_val,
|
| 22 |
+
data_6_val,
|
| 23 |
+
data_7_val,
|
| 24 |
+
ap_return
|
| 25 |
+
);
|
| 26 |
+
|
| 27 |
+
parameter ap_ST_fsm_pp0_stage0 = 1'd1;
|
| 28 |
+
|
| 29 |
+
input ap_clk;
|
| 30 |
+
input ap_rst;
|
| 31 |
+
input ap_start;
|
| 32 |
+
output ap_done;
|
| 33 |
+
output ap_idle;
|
| 34 |
+
output ap_ready;
|
| 35 |
+
input [15:0] data_0_val;
|
| 36 |
+
input [15:0] data_1_val;
|
| 37 |
+
input [15:0] data_2_val;
|
| 38 |
+
input [15:0] data_3_val;
|
| 39 |
+
input [15:0] data_4_val;
|
| 40 |
+
input [15:0] data_5_val;
|
| 41 |
+
input [15:0] data_6_val;
|
| 42 |
+
input [15:0] data_7_val;
|
| 43 |
+
output [29:0] ap_return;
|
| 44 |
+
|
| 45 |
+
reg ap_idle;
|
| 46 |
+
reg[29:0] ap_return;
|
| 47 |
+
|
| 48 |
+
(* fsm_encoding = "none" *) reg [0:0] ap_CS_fsm;
|
| 49 |
+
wire ap_CS_fsm_pp0_stage0;
|
| 50 |
+
wire ap_enable_reg_pp0_iter0;
|
| 51 |
+
reg ap_enable_reg_pp0_iter1;
|
| 52 |
+
reg ap_idle_pp0;
|
| 53 |
+
wire ap_block_pp0_stage0_subdone;
|
| 54 |
+
wire [0:0] icmp_ln46_fu_385_p2;
|
| 55 |
+
reg ap_condition_exit_pp0_iter0_stage0;
|
| 56 |
+
wire ap_loop_exit_ready;
|
| 57 |
+
reg ap_ready_int;
|
| 58 |
+
reg [0:0] do_init_reg_128;
|
| 59 |
+
reg [2:0] phi_ln46_reg_143;
|
| 60 |
+
reg [15:0] data_0_val4_rewind_reg_157;
|
| 61 |
+
reg [15:0] data_1_val5_rewind_reg_171;
|
| 62 |
+
reg [15:0] data_2_val6_rewind_reg_185;
|
| 63 |
+
reg [15:0] data_3_val7_rewind_reg_199;
|
| 64 |
+
reg [15:0] data_4_val8_rewind_reg_213;
|
| 65 |
+
reg [15:0] data_5_val9_rewind_reg_227;
|
| 66 |
+
reg [15:0] data_6_val10_rewind_reg_241;
|
| 67 |
+
reg [15:0] data_7_val11_rewind_reg_255;
|
| 68 |
+
reg [29:0] res_02_reg_269;
|
| 69 |
+
wire ap_block_pp0_stage0_11001;
|
| 70 |
+
wire [2:0] w_index_fu_379_p2;
|
| 71 |
+
reg [2:0] w_index_reg_531;
|
| 72 |
+
reg [0:0] icmp_ln46_reg_536;
|
| 73 |
+
wire signed [29:0] grp_fu_482_p3;
|
| 74 |
+
reg [0:0] ap_phi_mux_do_init_phi_fu_131_p6;
|
| 75 |
+
wire ap_loop_init;
|
| 76 |
+
wire ap_block_pp0_stage0;
|
| 77 |
+
reg [2:0] ap_phi_mux_phi_ln46_phi_fu_146_p6;
|
| 78 |
+
reg [15:0] ap_phi_mux_data_0_val4_phi_phi_fu_287_p4;
|
| 79 |
+
reg [15:0] ap_phi_mux_data_1_val5_phi_phi_fu_299_p4;
|
| 80 |
+
reg [15:0] ap_phi_mux_data_2_val6_phi_phi_fu_311_p4;
|
| 81 |
+
reg [15:0] ap_phi_mux_data_3_val7_phi_phi_fu_323_p4;
|
| 82 |
+
reg [15:0] ap_phi_mux_data_4_val8_phi_phi_fu_335_p4;
|
| 83 |
+
reg [15:0] ap_phi_mux_data_5_val9_phi_phi_fu_347_p4;
|
| 84 |
+
reg [15:0] ap_phi_mux_data_6_val10_phi_phi_fu_359_p4;
|
| 85 |
+
reg [15:0] ap_phi_mux_data_7_val11_phi_phi_fu_371_p4;
|
| 86 |
+
reg signed [29:0] ap_phi_mux_res_02_phi_fu_273_p6;
|
| 87 |
+
reg ap_loop_init_pp0_iter1_reg;
|
| 88 |
+
wire [15:0] ap_phi_reg_pp0_iter0_data_0_val4_phi_reg_283;
|
| 89 |
+
reg [15:0] ap_phi_reg_pp0_iter1_data_0_val4_phi_reg_283;
|
| 90 |
+
wire [15:0] ap_phi_reg_pp0_iter0_data_1_val5_phi_reg_295;
|
| 91 |
+
reg [15:0] ap_phi_reg_pp0_iter1_data_1_val5_phi_reg_295;
|
| 92 |
+
wire [15:0] ap_phi_reg_pp0_iter0_data_2_val6_phi_reg_307;
|
| 93 |
+
reg [15:0] ap_phi_reg_pp0_iter1_data_2_val6_phi_reg_307;
|
| 94 |
+
wire [15:0] ap_phi_reg_pp0_iter0_data_3_val7_phi_reg_319;
|
| 95 |
+
reg [15:0] ap_phi_reg_pp0_iter1_data_3_val7_phi_reg_319;
|
| 96 |
+
wire [15:0] ap_phi_reg_pp0_iter0_data_4_val8_phi_reg_331;
|
| 97 |
+
reg [15:0] ap_phi_reg_pp0_iter1_data_4_val8_phi_reg_331;
|
| 98 |
+
wire [15:0] ap_phi_reg_pp0_iter0_data_5_val9_phi_reg_343;
|
| 99 |
+
reg [15:0] ap_phi_reg_pp0_iter1_data_5_val9_phi_reg_343;
|
| 100 |
+
wire [15:0] ap_phi_reg_pp0_iter0_data_6_val10_phi_reg_355;
|
| 101 |
+
reg [15:0] ap_phi_reg_pp0_iter1_data_6_val10_phi_reg_355;
|
| 102 |
+
wire [15:0] ap_phi_reg_pp0_iter0_data_7_val11_phi_reg_367;
|
| 103 |
+
reg [15:0] ap_phi_reg_pp0_iter1_data_7_val11_phi_reg_367;
|
| 104 |
+
wire [15:0] a_fu_391_p17;
|
| 105 |
+
wire [11:0] w_fu_431_p17;
|
| 106 |
+
wire signed [15:0] a_fu_391_p19;
|
| 107 |
+
wire signed [11:0] w_fu_431_p19;
|
| 108 |
+
reg [29:0] ap_return_preg;
|
| 109 |
+
reg ap_done_reg;
|
| 110 |
+
wire ap_continue_int;
|
| 111 |
+
reg ap_done_int;
|
| 112 |
+
reg ap_loop_exit_ready_pp0_iter1_reg;
|
| 113 |
+
reg [0:0] ap_NS_fsm;
|
| 114 |
+
reg ap_idle_pp0_0to0;
|
| 115 |
+
reg ap_reset_idle_pp0;
|
| 116 |
+
wire ap_enable_pp0;
|
| 117 |
+
wire ap_start_int;
|
| 118 |
+
wire ap_ready_sig;
|
| 119 |
+
wire ap_done_sig;
|
| 120 |
+
reg ap_condition_113;
|
| 121 |
+
reg ap_condition_119;
|
| 122 |
+
wire [2:0] a_fu_391_p1;
|
| 123 |
+
wire [2:0] a_fu_391_p3;
|
| 124 |
+
wire [2:0] a_fu_391_p5;
|
| 125 |
+
wire [2:0] a_fu_391_p7;
|
| 126 |
+
wire signed [2:0] a_fu_391_p9;
|
| 127 |
+
wire signed [2:0] a_fu_391_p11;
|
| 128 |
+
wire signed [2:0] a_fu_391_p13;
|
| 129 |
+
wire signed [2:0] a_fu_391_p15;
|
| 130 |
+
wire [2:0] w_fu_431_p1;
|
| 131 |
+
wire [2:0] w_fu_431_p3;
|
| 132 |
+
wire [2:0] w_fu_431_p5;
|
| 133 |
+
wire [2:0] w_fu_431_p7;
|
| 134 |
+
wire signed [2:0] w_fu_431_p9;
|
| 135 |
+
wire signed [2:0] w_fu_431_p11;
|
| 136 |
+
wire signed [2:0] w_fu_431_p13;
|
| 137 |
+
wire signed [2:0] w_fu_431_p15;
|
| 138 |
+
wire ap_ce_reg;
|
| 139 |
+
|
| 140 |
+
// power-on initialization
|
| 141 |
+
initial begin
|
| 142 |
+
#0 ap_CS_fsm = 1'd1;
|
| 143 |
+
#0 ap_enable_reg_pp0_iter1 = 1'b0;
|
| 144 |
+
#0 ap_return_preg = 30'd0;
|
| 145 |
+
#0 ap_done_reg = 1'b0;
|
| 146 |
+
end
|
| 147 |
+
|
| 148 |
+
(* dissolve_hierarchy = "yes" *) myproject_sparsemux_17_3_16_1_1 #(
|
| 149 |
+
.ID( 1 ),
|
| 150 |
+
.NUM_STAGE( 1 ),
|
| 151 |
+
.CASE0( 3'h0 ),
|
| 152 |
+
.din0_WIDTH( 16 ),
|
| 153 |
+
.CASE1( 3'h1 ),
|
| 154 |
+
.din1_WIDTH( 16 ),
|
| 155 |
+
.CASE2( 3'h2 ),
|
| 156 |
+
.din2_WIDTH( 16 ),
|
| 157 |
+
.CASE3( 3'h3 ),
|
| 158 |
+
.din3_WIDTH( 16 ),
|
| 159 |
+
.CASE4( 3'h4 ),
|
| 160 |
+
.din4_WIDTH( 16 ),
|
| 161 |
+
.CASE5( 3'h5 ),
|
| 162 |
+
.din5_WIDTH( 16 ),
|
| 163 |
+
.CASE6( 3'h6 ),
|
| 164 |
+
.din6_WIDTH( 16 ),
|
| 165 |
+
.CASE7( 3'h7 ),
|
| 166 |
+
.din7_WIDTH( 16 ),
|
| 167 |
+
.def_WIDTH( 16 ),
|
| 168 |
+
.sel_WIDTH( 3 ),
|
| 169 |
+
.dout_WIDTH( 16 ))
|
| 170 |
+
sparsemux_17_3_16_1_1_U10337(
|
| 171 |
+
.din0(ap_phi_mux_data_0_val4_phi_phi_fu_287_p4),
|
| 172 |
+
.din1(ap_phi_mux_data_1_val5_phi_phi_fu_299_p4),
|
| 173 |
+
.din2(ap_phi_mux_data_2_val6_phi_phi_fu_311_p4),
|
| 174 |
+
.din3(ap_phi_mux_data_3_val7_phi_phi_fu_323_p4),
|
| 175 |
+
.din4(ap_phi_mux_data_4_val8_phi_phi_fu_335_p4),
|
| 176 |
+
.din5(ap_phi_mux_data_5_val9_phi_phi_fu_347_p4),
|
| 177 |
+
.din6(ap_phi_mux_data_6_val10_phi_phi_fu_359_p4),
|
| 178 |
+
.din7(ap_phi_mux_data_7_val11_phi_phi_fu_371_p4),
|
| 179 |
+
.def(a_fu_391_p17),
|
| 180 |
+
.sel(phi_ln46_reg_143),
|
| 181 |
+
.dout(a_fu_391_p19)
|
| 182 |
+
);
|
| 183 |
+
|
| 184 |
+
(* dissolve_hierarchy = "yes" *) myproject_sparsemux_17_3_12_1_1 #(
|
| 185 |
+
.ID( 1 ),
|
| 186 |
+
.NUM_STAGE( 1 ),
|
| 187 |
+
.CASE0( 3'h0 ),
|
| 188 |
+
.din0_WIDTH( 12 ),
|
| 189 |
+
.CASE1( 3'h1 ),
|
| 190 |
+
.din1_WIDTH( 12 ),
|
| 191 |
+
.CASE2( 3'h2 ),
|
| 192 |
+
.din2_WIDTH( 12 ),
|
| 193 |
+
.CASE3( 3'h3 ),
|
| 194 |
+
.din3_WIDTH( 12 ),
|
| 195 |
+
.CASE4( 3'h4 ),
|
| 196 |
+
.din4_WIDTH( 12 ),
|
| 197 |
+
.CASE5( 3'h5 ),
|
| 198 |
+
.din5_WIDTH( 12 ),
|
| 199 |
+
.CASE6( 3'h6 ),
|
| 200 |
+
.din6_WIDTH( 12 ),
|
| 201 |
+
.CASE7( 3'h7 ),
|
| 202 |
+
.din7_WIDTH( 12 ),
|
| 203 |
+
.def_WIDTH( 12 ),
|
| 204 |
+
.sel_WIDTH( 3 ),
|
| 205 |
+
.dout_WIDTH( 12 ))
|
| 206 |
+
sparsemux_17_3_12_1_1_U10338(
|
| 207 |
+
.din0(12'd3452),
|
| 208 |
+
.din1(12'd978),
|
| 209 |
+
.din2(12'd3298),
|
| 210 |
+
.din3(12'd3581),
|
| 211 |
+
.din4(12'd3649),
|
| 212 |
+
.din5(12'd624),
|
| 213 |
+
.din6(12'd3542),
|
| 214 |
+
.din7(12'd2852),
|
| 215 |
+
.def(w_fu_431_p17),
|
| 216 |
+
.sel(phi_ln46_reg_143),
|
| 217 |
+
.dout(w_fu_431_p19)
|
| 218 |
+
);
|
| 219 |
+
|
| 220 |
+
myproject_mac_muladd_16s_12s_30s_30_1_1 #(
|
| 221 |
+
.ID( 1 ),
|
| 222 |
+
.NUM_STAGE( 1 ),
|
| 223 |
+
.din0_WIDTH( 16 ),
|
| 224 |
+
.din1_WIDTH( 12 ),
|
| 225 |
+
.din2_WIDTH( 30 ),
|
| 226 |
+
.dout_WIDTH( 30 ))
|
| 227 |
+
mac_muladd_16s_12s_30s_30_1_1_U10339(
|
| 228 |
+
.din0(a_fu_391_p19),
|
| 229 |
+
.din1(w_fu_431_p19),
|
| 230 |
+
.din2(ap_phi_mux_res_02_phi_fu_273_p6),
|
| 231 |
+
.dout(grp_fu_482_p3)
|
| 232 |
+
);
|
| 233 |
+
|
| 234 |
+
myproject_flow_control_loop_pipe_no_ap_cont flow_control_loop_pipe_no_ap_cont_U(
|
| 235 |
+
.ap_clk(ap_clk),
|
| 236 |
+
.ap_rst(ap_rst),
|
| 237 |
+
.ap_start(ap_start),
|
| 238 |
+
.ap_ready(ap_ready_sig),
|
| 239 |
+
.ap_done(ap_done_sig),
|
| 240 |
+
.ap_start_int(ap_start_int),
|
| 241 |
+
.ap_loop_init(ap_loop_init),
|
| 242 |
+
.ap_ready_int(ap_ready_int),
|
| 243 |
+
.ap_loop_exit_ready(ap_condition_exit_pp0_iter0_stage0),
|
| 244 |
+
.ap_loop_exit_done(ap_done_int),
|
| 245 |
+
.ap_continue_int(ap_continue_int),
|
| 246 |
+
.ap_done_int(ap_done_int)
|
| 247 |
+
);
|
| 248 |
+
|
| 249 |
+
always @ (posedge ap_clk) begin
|
| 250 |
+
if (ap_rst == 1'b1) begin
|
| 251 |
+
ap_CS_fsm <= ap_ST_fsm_pp0_stage0;
|
| 252 |
+
end else begin
|
| 253 |
+
ap_CS_fsm <= ap_NS_fsm;
|
| 254 |
+
end
|
| 255 |
+
end
|
| 256 |
+
|
| 257 |
+
always @ (posedge ap_clk) begin
|
| 258 |
+
if (ap_rst == 1'b1) begin
|
| 259 |
+
ap_done_reg <= 1'b0;
|
| 260 |
+
end else begin
|
| 261 |
+
if ((ap_continue_int == 1'b1)) begin
|
| 262 |
+
ap_done_reg <= 1'b0;
|
| 263 |
+
end else if (((1'b0 == ap_block_pp0_stage0_subdone) & (ap_loop_exit_ready_pp0_iter1_reg == 1'b1) & (1'b1 == ap_CS_fsm_pp0_stage0))) begin
|
| 264 |
+
ap_done_reg <= 1'b1;
|
| 265 |
+
end
|
| 266 |
+
end
|
| 267 |
+
end
|
| 268 |
+
|
| 269 |
+
always @ (posedge ap_clk) begin
|
| 270 |
+
if (ap_rst == 1'b1) begin
|
| 271 |
+
ap_enable_reg_pp0_iter1 <= 1'b0;
|
| 272 |
+
end else begin
|
| 273 |
+
if (((1'b0 == ap_block_pp0_stage0_subdone) & (1'b1 == ap_CS_fsm_pp0_stage0))) begin
|
| 274 |
+
ap_enable_reg_pp0_iter1 <= ap_start_int;
|
| 275 |
+
end
|
| 276 |
+
end
|
| 277 |
+
end
|
| 278 |
+
|
| 279 |
+
always @ (posedge ap_clk) begin
|
| 280 |
+
if (ap_rst == 1'b1) begin
|
| 281 |
+
ap_return_preg <= 30'd0;
|
| 282 |
+
end else begin
|
| 283 |
+
if (((1'b0 == ap_block_pp0_stage0_11001) & (1'b1 == ap_CS_fsm_pp0_stage0) & (icmp_ln46_reg_536 == 1'd1))) begin
|
| 284 |
+
ap_return_preg <= grp_fu_482_p3;
|
| 285 |
+
end
|
| 286 |
+
end
|
| 287 |
+
end
|
| 288 |
+
|
| 289 |
+
always @ (posedge ap_clk) begin
|
| 290 |
+
if ((1'b1 == ap_CS_fsm_pp0_stage0)) begin
|
| 291 |
+
if (((ap_loop_exit_ready == 1'b0) & (1'b0 == ap_block_pp0_stage0_subdone))) begin
|
| 292 |
+
ap_loop_exit_ready_pp0_iter1_reg <= 1'b0;
|
| 293 |
+
end else if ((1'b0 == ap_block_pp0_stage0_11001)) begin
|
| 294 |
+
ap_loop_exit_ready_pp0_iter1_reg <= ap_loop_exit_ready;
|
| 295 |
+
end
|
| 296 |
+
end
|
| 297 |
+
end
|
| 298 |
+
|
| 299 |
+
always @ (posedge ap_clk) begin
|
| 300 |
+
if ((1'b1 == ap_condition_113)) begin
|
| 301 |
+
if ((ap_phi_mux_do_init_phi_fu_131_p6 == 1'd1)) begin
|
| 302 |
+
ap_phi_reg_pp0_iter1_data_0_val4_phi_reg_283 <= data_0_val;
|
| 303 |
+
end else if ((1'b1 == 1'b1)) begin
|
| 304 |
+
ap_phi_reg_pp0_iter1_data_0_val4_phi_reg_283 <= ap_phi_reg_pp0_iter0_data_0_val4_phi_reg_283;
|
| 305 |
+
end
|
| 306 |
+
end
|
| 307 |
+
end
|
| 308 |
+
|
| 309 |
+
always @ (posedge ap_clk) begin
|
| 310 |
+
if ((1'b1 == ap_condition_113)) begin
|
| 311 |
+
if ((ap_phi_mux_do_init_phi_fu_131_p6 == 1'd1)) begin
|
| 312 |
+
ap_phi_reg_pp0_iter1_data_1_val5_phi_reg_295 <= data_1_val;
|
| 313 |
+
end else if ((1'b1 == 1'b1)) begin
|
| 314 |
+
ap_phi_reg_pp0_iter1_data_1_val5_phi_reg_295 <= ap_phi_reg_pp0_iter0_data_1_val5_phi_reg_295;
|
| 315 |
+
end
|
| 316 |
+
end
|
| 317 |
+
end
|
| 318 |
+
|
| 319 |
+
always @ (posedge ap_clk) begin
|
| 320 |
+
if ((1'b1 == ap_condition_113)) begin
|
| 321 |
+
if ((ap_phi_mux_do_init_phi_fu_131_p6 == 1'd1)) begin
|
| 322 |
+
ap_phi_reg_pp0_iter1_data_2_val6_phi_reg_307 <= data_2_val;
|
| 323 |
+
end else if ((1'b1 == 1'b1)) begin
|
| 324 |
+
ap_phi_reg_pp0_iter1_data_2_val6_phi_reg_307 <= ap_phi_reg_pp0_iter0_data_2_val6_phi_reg_307;
|
| 325 |
+
end
|
| 326 |
+
end
|
| 327 |
+
end
|
| 328 |
+
|
| 329 |
+
always @ (posedge ap_clk) begin
|
| 330 |
+
if ((1'b1 == ap_condition_113)) begin
|
| 331 |
+
if ((ap_phi_mux_do_init_phi_fu_131_p6 == 1'd1)) begin
|
| 332 |
+
ap_phi_reg_pp0_iter1_data_3_val7_phi_reg_319 <= data_3_val;
|
| 333 |
+
end else if ((1'b1 == 1'b1)) begin
|
| 334 |
+
ap_phi_reg_pp0_iter1_data_3_val7_phi_reg_319 <= ap_phi_reg_pp0_iter0_data_3_val7_phi_reg_319;
|
| 335 |
+
end
|
| 336 |
+
end
|
| 337 |
+
end
|
| 338 |
+
|
| 339 |
+
always @ (posedge ap_clk) begin
|
| 340 |
+
if ((1'b1 == ap_condition_113)) begin
|
| 341 |
+
if ((ap_phi_mux_do_init_phi_fu_131_p6 == 1'd1)) begin
|
| 342 |
+
ap_phi_reg_pp0_iter1_data_4_val8_phi_reg_331 <= data_4_val;
|
| 343 |
+
end else if ((1'b1 == 1'b1)) begin
|
| 344 |
+
ap_phi_reg_pp0_iter1_data_4_val8_phi_reg_331 <= ap_phi_reg_pp0_iter0_data_4_val8_phi_reg_331;
|
| 345 |
+
end
|
| 346 |
+
end
|
| 347 |
+
end
|
| 348 |
+
|
| 349 |
+
always @ (posedge ap_clk) begin
|
| 350 |
+
if ((1'b1 == ap_condition_113)) begin
|
| 351 |
+
if ((ap_phi_mux_do_init_phi_fu_131_p6 == 1'd1)) begin
|
| 352 |
+
ap_phi_reg_pp0_iter1_data_5_val9_phi_reg_343 <= data_5_val;
|
| 353 |
+
end else if ((1'b1 == 1'b1)) begin
|
| 354 |
+
ap_phi_reg_pp0_iter1_data_5_val9_phi_reg_343 <= ap_phi_reg_pp0_iter0_data_5_val9_phi_reg_343;
|
| 355 |
+
end
|
| 356 |
+
end
|
| 357 |
+
end
|
| 358 |
+
|
| 359 |
+
always @ (posedge ap_clk) begin
|
| 360 |
+
if ((1'b1 == ap_condition_113)) begin
|
| 361 |
+
if ((ap_phi_mux_do_init_phi_fu_131_p6 == 1'd1)) begin
|
| 362 |
+
ap_phi_reg_pp0_iter1_data_6_val10_phi_reg_355 <= data_6_val;
|
| 363 |
+
end else if ((1'b1 == 1'b1)) begin
|
| 364 |
+
ap_phi_reg_pp0_iter1_data_6_val10_phi_reg_355 <= ap_phi_reg_pp0_iter0_data_6_val10_phi_reg_355;
|
| 365 |
+
end
|
| 366 |
+
end
|
| 367 |
+
end
|
| 368 |
+
|
| 369 |
+
always @ (posedge ap_clk) begin
|
| 370 |
+
if ((1'b1 == ap_condition_113)) begin
|
| 371 |
+
if ((ap_phi_mux_do_init_phi_fu_131_p6 == 1'd1)) begin
|
| 372 |
+
ap_phi_reg_pp0_iter1_data_7_val11_phi_reg_367 <= data_7_val;
|
| 373 |
+
end else if ((1'b1 == 1'b1)) begin
|
| 374 |
+
ap_phi_reg_pp0_iter1_data_7_val11_phi_reg_367 <= ap_phi_reg_pp0_iter0_data_7_val11_phi_reg_367;
|
| 375 |
+
end
|
| 376 |
+
end
|
| 377 |
+
end
|
| 378 |
+
|
| 379 |
+
always @ (posedge ap_clk) begin
|
| 380 |
+
if (((1'b0 == ap_block_pp0_stage0_11001) & (ap_enable_reg_pp0_iter1 == 1'b1) & (1'b1 == ap_CS_fsm_pp0_stage0) & (icmp_ln46_reg_536 == 1'd0))) begin
|
| 381 |
+
do_init_reg_128 <= 1'd0;
|
| 382 |
+
end else if ((((1'b0 == ap_block_pp0_stage0_11001) & (ap_enable_reg_pp0_iter1 == 1'b1) & (1'b1 == ap_CS_fsm_pp0_stage0) & (icmp_ln46_reg_536 == 1'd1)) | ((1'b0 == ap_block_pp0_stage0_subdone) & (1'b1 == ap_CS_fsm_pp0_stage0) & (ap_loop_init == 1'b1)))) begin
|
| 383 |
+
do_init_reg_128 <= 1'd1;
|
| 384 |
+
end
|
| 385 |
+
end
|
| 386 |
+
|
| 387 |
+
always @ (posedge ap_clk) begin
|
| 388 |
+
if (((1'b0 == ap_block_pp0_stage0_11001) & (ap_enable_reg_pp0_iter1 == 1'b1) & (1'b1 == ap_CS_fsm_pp0_stage0) & (icmp_ln46_reg_536 == 1'd0))) begin
|
| 389 |
+
phi_ln46_reg_143 <= w_index_reg_531;
|
| 390 |
+
end else if ((((1'b0 == ap_block_pp0_stage0_11001) & (ap_enable_reg_pp0_iter1 == 1'b1) & (1'b1 == ap_CS_fsm_pp0_stage0) & (icmp_ln46_reg_536 == 1'd1)) | ((1'b0 == ap_block_pp0_stage0_subdone) & (1'b1 == ap_CS_fsm_pp0_stage0) & (ap_loop_init == 1'b1)))) begin
|
| 391 |
+
phi_ln46_reg_143 <= 3'd0;
|
| 392 |
+
end
|
| 393 |
+
end
|
| 394 |
+
|
| 395 |
+
always @ (posedge ap_clk) begin
|
| 396 |
+
if ((1'b1 == ap_condition_119)) begin
|
| 397 |
+
if ((icmp_ln46_reg_536 == 1'd1)) begin
|
| 398 |
+
res_02_reg_269 <= 30'd1073627136;
|
| 399 |
+
end else if ((icmp_ln46_reg_536 == 1'd0)) begin
|
| 400 |
+
res_02_reg_269 <= grp_fu_482_p3;
|
| 401 |
+
end
|
| 402 |
+
end
|
| 403 |
+
end
|
| 404 |
+
|
| 405 |
+
always @ (posedge ap_clk) begin
|
| 406 |
+
if (((1'b0 == ap_block_pp0_stage0_11001) & (1'b1 == ap_CS_fsm_pp0_stage0))) begin
|
| 407 |
+
ap_loop_init_pp0_iter1_reg <= ap_loop_init;
|
| 408 |
+
icmp_ln46_reg_536 <= icmp_ln46_fu_385_p2;
|
| 409 |
+
end
|
| 410 |
+
end
|
| 411 |
+
|
| 412 |
+
always @ (posedge ap_clk) begin
|
| 413 |
+
if (((1'b0 == ap_block_pp0_stage0_11001) & (ap_enable_reg_pp0_iter1 == 1'b1) & (1'b1 == ap_CS_fsm_pp0_stage0) & (icmp_ln46_reg_536 == 1'd0))) begin
|
| 414 |
+
data_0_val4_rewind_reg_157 <= ap_phi_mux_data_0_val4_phi_phi_fu_287_p4;
|
| 415 |
+
data_1_val5_rewind_reg_171 <= ap_phi_mux_data_1_val5_phi_phi_fu_299_p4;
|
| 416 |
+
data_2_val6_rewind_reg_185 <= ap_phi_mux_data_2_val6_phi_phi_fu_311_p4;
|
| 417 |
+
data_3_val7_rewind_reg_199 <= ap_phi_mux_data_3_val7_phi_phi_fu_323_p4;
|
| 418 |
+
data_4_val8_rewind_reg_213 <= ap_phi_mux_data_4_val8_phi_phi_fu_335_p4;
|
| 419 |
+
data_5_val9_rewind_reg_227 <= ap_phi_mux_data_5_val9_phi_phi_fu_347_p4;
|
| 420 |
+
data_6_val10_rewind_reg_241 <= ap_phi_mux_data_6_val10_phi_phi_fu_359_p4;
|
| 421 |
+
data_7_val11_rewind_reg_255 <= ap_phi_mux_data_7_val11_phi_phi_fu_371_p4;
|
| 422 |
+
end
|
| 423 |
+
end
|
| 424 |
+
|
| 425 |
+
always @ (posedge ap_clk) begin
|
| 426 |
+
if (((1'b0 == ap_block_pp0_stage0_11001) & (ap_enable_reg_pp0_iter0 == 1'b1) & (1'b1 == ap_CS_fsm_pp0_stage0))) begin
|
| 427 |
+
w_index_reg_531 <= w_index_fu_379_p2;
|
| 428 |
+
end
|
| 429 |
+
end
|
| 430 |
+
|
| 431 |
+
always @ (*) begin
|
| 432 |
+
if (((icmp_ln46_fu_385_p2 == 1'd1) & (1'b0 == ap_block_pp0_stage0_subdone) & (ap_enable_reg_pp0_iter0 == 1'b1) & (1'b1 == ap_CS_fsm_pp0_stage0))) begin
|
| 433 |
+
ap_condition_exit_pp0_iter0_stage0 = 1'b1;
|
| 434 |
+
end else begin
|
| 435 |
+
ap_condition_exit_pp0_iter0_stage0 = 1'b0;
|
| 436 |
+
end
|
| 437 |
+
end
|
| 438 |
+
|
| 439 |
+
always @ (*) begin
|
| 440 |
+
if (((1'b0 == ap_block_pp0_stage0_subdone) & (ap_loop_exit_ready_pp0_iter1_reg == 1'b1) & (1'b1 == ap_CS_fsm_pp0_stage0))) begin
|
| 441 |
+
ap_done_int = 1'b1;
|
| 442 |
+
end else begin
|
| 443 |
+
ap_done_int = ap_done_reg;
|
| 444 |
+
end
|
| 445 |
+
end
|
| 446 |
+
|
| 447 |
+
always @ (*) begin
|
| 448 |
+
if (((ap_start_int == 1'b0) & (ap_idle_pp0 == 1'b1) & (1'b1 == ap_CS_fsm_pp0_stage0))) begin
|
| 449 |
+
ap_idle = 1'b1;
|
| 450 |
+
end else begin
|
| 451 |
+
ap_idle = 1'b0;
|
| 452 |
+
end
|
| 453 |
+
end
|
| 454 |
+
|
| 455 |
+
always @ (*) begin
|
| 456 |
+
if (((ap_enable_reg_pp0_iter1 == 1'b0) & (ap_enable_reg_pp0_iter0 == 1'b0))) begin
|
| 457 |
+
ap_idle_pp0 = 1'b1;
|
| 458 |
+
end else begin
|
| 459 |
+
ap_idle_pp0 = 1'b0;
|
| 460 |
+
end
|
| 461 |
+
end
|
| 462 |
+
|
| 463 |
+
always @ (*) begin
|
| 464 |
+
if ((ap_enable_reg_pp0_iter0 == 1'b0)) begin
|
| 465 |
+
ap_idle_pp0_0to0 = 1'b1;
|
| 466 |
+
end else begin
|
| 467 |
+
ap_idle_pp0_0to0 = 1'b0;
|
| 468 |
+
end
|
| 469 |
+
end
|
| 470 |
+
|
| 471 |
+
always @ (*) begin
|
| 472 |
+
if ((do_init_reg_128 == 1'd0)) begin
|
| 473 |
+
ap_phi_mux_data_0_val4_phi_phi_fu_287_p4 = data_0_val4_rewind_reg_157;
|
| 474 |
+
end else begin
|
| 475 |
+
ap_phi_mux_data_0_val4_phi_phi_fu_287_p4 = ap_phi_reg_pp0_iter1_data_0_val4_phi_reg_283;
|
| 476 |
+
end
|
| 477 |
+
end
|
| 478 |
+
|
| 479 |
+
always @ (*) begin
|
| 480 |
+
if ((do_init_reg_128 == 1'd0)) begin
|
| 481 |
+
ap_phi_mux_data_1_val5_phi_phi_fu_299_p4 = data_1_val5_rewind_reg_171;
|
| 482 |
+
end else begin
|
| 483 |
+
ap_phi_mux_data_1_val5_phi_phi_fu_299_p4 = ap_phi_reg_pp0_iter1_data_1_val5_phi_reg_295;
|
| 484 |
+
end
|
| 485 |
+
end
|
| 486 |
+
|
| 487 |
+
always @ (*) begin
|
| 488 |
+
if ((do_init_reg_128 == 1'd0)) begin
|
| 489 |
+
ap_phi_mux_data_2_val6_phi_phi_fu_311_p4 = data_2_val6_rewind_reg_185;
|
| 490 |
+
end else begin
|
| 491 |
+
ap_phi_mux_data_2_val6_phi_phi_fu_311_p4 = ap_phi_reg_pp0_iter1_data_2_val6_phi_reg_307;
|
| 492 |
+
end
|
| 493 |
+
end
|
| 494 |
+
|
| 495 |
+
always @ (*) begin
|
| 496 |
+
if ((do_init_reg_128 == 1'd0)) begin
|
| 497 |
+
ap_phi_mux_data_3_val7_phi_phi_fu_323_p4 = data_3_val7_rewind_reg_199;
|
| 498 |
+
end else begin
|
| 499 |
+
ap_phi_mux_data_3_val7_phi_phi_fu_323_p4 = ap_phi_reg_pp0_iter1_data_3_val7_phi_reg_319;
|
| 500 |
+
end
|
| 501 |
+
end
|
| 502 |
+
|
| 503 |
+
always @ (*) begin
|
| 504 |
+
if ((do_init_reg_128 == 1'd0)) begin
|
| 505 |
+
ap_phi_mux_data_4_val8_phi_phi_fu_335_p4 = data_4_val8_rewind_reg_213;
|
| 506 |
+
end else begin
|
| 507 |
+
ap_phi_mux_data_4_val8_phi_phi_fu_335_p4 = ap_phi_reg_pp0_iter1_data_4_val8_phi_reg_331;
|
| 508 |
+
end
|
| 509 |
+
end
|
| 510 |
+
|
| 511 |
+
always @ (*) begin
|
| 512 |
+
if ((do_init_reg_128 == 1'd0)) begin
|
| 513 |
+
ap_phi_mux_data_5_val9_phi_phi_fu_347_p4 = data_5_val9_rewind_reg_227;
|
| 514 |
+
end else begin
|
| 515 |
+
ap_phi_mux_data_5_val9_phi_phi_fu_347_p4 = ap_phi_reg_pp0_iter1_data_5_val9_phi_reg_343;
|
| 516 |
+
end
|
| 517 |
+
end
|
| 518 |
+
|
| 519 |
+
always @ (*) begin
|
| 520 |
+
if ((do_init_reg_128 == 1'd0)) begin
|
| 521 |
+
ap_phi_mux_data_6_val10_phi_phi_fu_359_p4 = data_6_val10_rewind_reg_241;
|
| 522 |
+
end else begin
|
| 523 |
+
ap_phi_mux_data_6_val10_phi_phi_fu_359_p4 = ap_phi_reg_pp0_iter1_data_6_val10_phi_reg_355;
|
| 524 |
+
end
|
| 525 |
+
end
|
| 526 |
+
|
| 527 |
+
always @ (*) begin
|
| 528 |
+
if ((do_init_reg_128 == 1'd0)) begin
|
| 529 |
+
ap_phi_mux_data_7_val11_phi_phi_fu_371_p4 = data_7_val11_rewind_reg_255;
|
| 530 |
+
end else begin
|
| 531 |
+
ap_phi_mux_data_7_val11_phi_phi_fu_371_p4 = ap_phi_reg_pp0_iter1_data_7_val11_phi_reg_367;
|
| 532 |
+
end
|
| 533 |
+
end
|
| 534 |
+
|
| 535 |
+
always @ (*) begin
|
| 536 |
+
if (((1'b0 == ap_block_pp0_stage0) & (ap_enable_reg_pp0_iter1 == 1'b1) & (1'b1 == ap_CS_fsm_pp0_stage0) & (icmp_ln46_reg_536 == 1'd0))) begin
|
| 537 |
+
ap_phi_mux_do_init_phi_fu_131_p6 = 1'd0;
|
| 538 |
+
end else if ((((1'b1 == ap_CS_fsm_pp0_stage0) & (ap_loop_init == 1'b1)) | ((1'b0 == ap_block_pp0_stage0) & (ap_enable_reg_pp0_iter1 == 1'b1) & (1'b1 == ap_CS_fsm_pp0_stage0) & (icmp_ln46_reg_536 == 1'd1)))) begin
|
| 539 |
+
ap_phi_mux_do_init_phi_fu_131_p6 = 1'd1;
|
| 540 |
+
end else begin
|
| 541 |
+
ap_phi_mux_do_init_phi_fu_131_p6 = do_init_reg_128;
|
| 542 |
+
end
|
| 543 |
+
end
|
| 544 |
+
|
| 545 |
+
always @ (*) begin
|
| 546 |
+
if (((1'b0 == ap_block_pp0_stage0) & (ap_enable_reg_pp0_iter1 == 1'b1) & (1'b1 == ap_CS_fsm_pp0_stage0) & (icmp_ln46_reg_536 == 1'd0))) begin
|
| 547 |
+
ap_phi_mux_phi_ln46_phi_fu_146_p6 = w_index_reg_531;
|
| 548 |
+
end else if ((((1'b1 == ap_CS_fsm_pp0_stage0) & (ap_loop_init == 1'b1)) | ((1'b0 == ap_block_pp0_stage0) & (ap_enable_reg_pp0_iter1 == 1'b1) & (1'b1 == ap_CS_fsm_pp0_stage0) & (icmp_ln46_reg_536 == 1'd1)))) begin
|
| 549 |
+
ap_phi_mux_phi_ln46_phi_fu_146_p6 = 3'd0;
|
| 550 |
+
end else begin
|
| 551 |
+
ap_phi_mux_phi_ln46_phi_fu_146_p6 = phi_ln46_reg_143;
|
| 552 |
+
end
|
| 553 |
+
end
|
| 554 |
+
|
| 555 |
+
always @ (*) begin
|
| 556 |
+
if (((1'b1 == ap_CS_fsm_pp0_stage0) & (ap_loop_init_pp0_iter1_reg == 1'b1))) begin
|
| 557 |
+
ap_phi_mux_res_02_phi_fu_273_p6 = 30'd1073627136;
|
| 558 |
+
end else begin
|
| 559 |
+
ap_phi_mux_res_02_phi_fu_273_p6 = res_02_reg_269;
|
| 560 |
+
end
|
| 561 |
+
end
|
| 562 |
+
|
| 563 |
+
always @ (*) begin
|
| 564 |
+
if (((1'b0 == ap_block_pp0_stage0_subdone) & (ap_enable_reg_pp0_iter0 == 1'b1) & (1'b1 == ap_CS_fsm_pp0_stage0))) begin
|
| 565 |
+
ap_ready_int = 1'b1;
|
| 566 |
+
end else begin
|
| 567 |
+
ap_ready_int = 1'b0;
|
| 568 |
+
end
|
| 569 |
+
end
|
| 570 |
+
|
| 571 |
+
always @ (*) begin
|
| 572 |
+
if (((ap_start_int == 1'b0) & (ap_idle_pp0_0to0 == 1'b1))) begin
|
| 573 |
+
ap_reset_idle_pp0 = 1'b1;
|
| 574 |
+
end else begin
|
| 575 |
+
ap_reset_idle_pp0 = 1'b0;
|
| 576 |
+
end
|
| 577 |
+
end
|
| 578 |
+
|
| 579 |
+
always @ (*) begin
|
| 580 |
+
if (((1'b0 == ap_block_pp0_stage0_11001) & (1'b1 == ap_CS_fsm_pp0_stage0) & (icmp_ln46_reg_536 == 1'd1))) begin
|
| 581 |
+
ap_return = grp_fu_482_p3;
|
| 582 |
+
end else begin
|
| 583 |
+
ap_return = ap_return_preg;
|
| 584 |
+
end
|
| 585 |
+
end
|
| 586 |
+
|
| 587 |
+
always @ (*) begin
|
| 588 |
+
case (ap_CS_fsm)
|
| 589 |
+
ap_ST_fsm_pp0_stage0 : begin
|
| 590 |
+
ap_NS_fsm = ap_ST_fsm_pp0_stage0;
|
| 591 |
+
end
|
| 592 |
+
default : begin
|
| 593 |
+
ap_NS_fsm = 'bx;
|
| 594 |
+
end
|
| 595 |
+
endcase
|
| 596 |
+
end
|
| 597 |
+
|
| 598 |
+
assign a_fu_391_p17 = 'bx;
|
| 599 |
+
|
| 600 |
+
assign ap_CS_fsm_pp0_stage0 = ap_CS_fsm[32'd0];
|
| 601 |
+
|
| 602 |
+
assign ap_block_pp0_stage0 = ~(1'b1 == 1'b1);
|
| 603 |
+
|
| 604 |
+
assign ap_block_pp0_stage0_11001 = ~(1'b1 == 1'b1);
|
| 605 |
+
|
| 606 |
+
assign ap_block_pp0_stage0_subdone = ~(1'b1 == 1'b1);
|
| 607 |
+
|
| 608 |
+
always @ (*) begin
|
| 609 |
+
ap_condition_113 = ((1'b0 == ap_block_pp0_stage0_11001) & (ap_enable_reg_pp0_iter0 == 1'b1) & (1'b1 == ap_CS_fsm_pp0_stage0));
|
| 610 |
+
end
|
| 611 |
+
|
| 612 |
+
always @ (*) begin
|
| 613 |
+
ap_condition_119 = ((1'b0 == ap_block_pp0_stage0_11001) & (ap_enable_reg_pp0_iter1 == 1'b1) & (1'b1 == ap_CS_fsm_pp0_stage0));
|
| 614 |
+
end
|
| 615 |
+
|
| 616 |
+
assign ap_done = ap_done_sig;
|
| 617 |
+
|
| 618 |
+
assign ap_enable_pp0 = (ap_idle_pp0 ^ 1'b1);
|
| 619 |
+
|
| 620 |
+
assign ap_enable_reg_pp0_iter0 = ap_start_int;
|
| 621 |
+
|
| 622 |
+
assign ap_loop_exit_ready = ap_condition_exit_pp0_iter0_stage0;
|
| 623 |
+
|
| 624 |
+
assign ap_phi_reg_pp0_iter0_data_0_val4_phi_reg_283 = 'bx;
|
| 625 |
+
|
| 626 |
+
assign ap_phi_reg_pp0_iter0_data_1_val5_phi_reg_295 = 'bx;
|
| 627 |
+
|
| 628 |
+
assign ap_phi_reg_pp0_iter0_data_2_val6_phi_reg_307 = 'bx;
|
| 629 |
+
|
| 630 |
+
assign ap_phi_reg_pp0_iter0_data_3_val7_phi_reg_319 = 'bx;
|
| 631 |
+
|
| 632 |
+
assign ap_phi_reg_pp0_iter0_data_4_val8_phi_reg_331 = 'bx;
|
| 633 |
+
|
| 634 |
+
assign ap_phi_reg_pp0_iter0_data_5_val9_phi_reg_343 = 'bx;
|
| 635 |
+
|
| 636 |
+
assign ap_phi_reg_pp0_iter0_data_6_val10_phi_reg_355 = 'bx;
|
| 637 |
+
|
| 638 |
+
assign ap_phi_reg_pp0_iter0_data_7_val11_phi_reg_367 = 'bx;
|
| 639 |
+
|
| 640 |
+
assign ap_ready = ap_ready_sig;
|
| 641 |
+
|
| 642 |
+
assign icmp_ln46_fu_385_p2 = ((ap_phi_mux_phi_ln46_phi_fu_146_p6 == 3'd7) ? 1'b1 : 1'b0);
|
| 643 |
+
|
| 644 |
+
assign w_fu_431_p17 = 'bx;
|
| 645 |
+
|
| 646 |
+
assign w_index_fu_379_p2 = (ap_phi_mux_phi_ln46_phi_fu_146_p6 + 3'd1);
|
| 647 |
+
|
| 648 |
+
endmodule //myproject_dense_resource_rf_leq_nin_ap_fixed_ap_fixed_36_16_5_3_0_config58_mult_s
|
myproject_prj/solution1/impl/verilog/myproject_dense_resource_rf_leq_nin_ap_fixed_ap_fixed_41_21_5_3_0_config12_mult_s_w12_Rcgu.v
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// ==============================================================
|
| 2 |
+
// Generated by Vitis HLS v2024.1
|
| 3 |
+
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
| 4 |
+
// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
|
| 5 |
+
// ==============================================================
|
| 6 |
+
`timescale 1 ns / 1 ps
|
| 7 |
+
module myproject_dense_resource_rf_leq_nin_ap_fixed_ap_fixed_41_21_5_3_0_config12_mult_s_w12_Rcgu (
|
| 8 |
+
address0, ce0, q0,
|
| 9 |
+
reset, clk);
|
| 10 |
+
|
| 11 |
+
parameter DataWidth = 506;
|
| 12 |
+
parameter AddressWidth = 8;
|
| 13 |
+
parameter AddressRange = 144;
|
| 14 |
+
|
| 15 |
+
input[AddressWidth-1:0] address0;
|
| 16 |
+
input ce0;
|
| 17 |
+
output reg[DataWidth-1:0] q0;
|
| 18 |
+
|
| 19 |
+
input reset;
|
| 20 |
+
input clk;
|
| 21 |
+
|
| 22 |
+
|
| 23 |
+
(* rom_style = "block" *)reg [DataWidth-1:0] rom0[0:AddressRange-1];
|
| 24 |
+
|
| 25 |
+
|
| 26 |
+
initial begin
|
| 27 |
+
|
| 28 |
+
$readmemh("./myproject_dense_resource_rf_leq_nin_ap_fixed_ap_fixed_41_21_5_3_0_config12_mult_s_w12_Rcgu.dat", rom0);
|
| 29 |
+
end
|
| 30 |
+
|
| 31 |
+
|
| 32 |
+
always @(posedge clk)
|
| 33 |
+
begin
|
| 34 |
+
if (ce0)
|
| 35 |
+
begin
|
| 36 |
+
q0 <= rom0[address0];
|
| 37 |
+
end
|
| 38 |
+
end
|
| 39 |
+
|
| 40 |
+
|
| 41 |
+
endmodule
|
| 42 |
+
|
myproject_prj/solution1/impl/verilog/myproject_dense_resource_rf_leq_nin_ap_fixed_ap_fixed_41_21_5_3_0_config9_mult_s_w9_ROMbrm.v
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// ==============================================================
|
| 2 |
+
// Generated by Vitis HLS v2024.1
|
| 3 |
+
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
| 4 |
+
// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
|
| 5 |
+
// ==============================================================
|
| 6 |
+
`timescale 1 ns / 1 ps
|
| 7 |
+
module myproject_dense_resource_rf_leq_nin_ap_fixed_ap_fixed_41_21_5_3_0_config9_mult_s_w9_ROMbrm (
|
| 8 |
+
address0, ce0, q0,
|
| 9 |
+
reset, clk);
|
| 10 |
+
|
| 11 |
+
parameter DataWidth = 506;
|
| 12 |
+
parameter AddressWidth = 7;
|
| 13 |
+
parameter AddressRange = 72;
|
| 14 |
+
|
| 15 |
+
input[AddressWidth-1:0] address0;
|
| 16 |
+
input ce0;
|
| 17 |
+
output reg[DataWidth-1:0] q0;
|
| 18 |
+
|
| 19 |
+
input reset;
|
| 20 |
+
input clk;
|
| 21 |
+
|
| 22 |
+
|
| 23 |
+
(* rom_style = "block" *)reg [DataWidth-1:0] rom0[0:AddressRange-1];
|
| 24 |
+
|
| 25 |
+
|
| 26 |
+
initial begin
|
| 27 |
+
|
| 28 |
+
$readmemh("./myproject_dense_resource_rf_leq_nin_ap_fixed_ap_fixed_41_21_5_3_0_config9_mult_s_w9_ROMbrm.dat", rom0);
|
| 29 |
+
end
|
| 30 |
+
|
| 31 |
+
|
| 32 |
+
always @(posedge clk)
|
| 33 |
+
begin
|
| 34 |
+
if (ce0)
|
| 35 |
+
begin
|
| 36 |
+
q0 <= rom0[address0];
|
| 37 |
+
end
|
| 38 |
+
end
|
| 39 |
+
|
| 40 |
+
|
| 41 |
+
endmodule
|
| 42 |
+
|
myproject_prj/solution1/impl/verilog/myproject_dense_resource_rf_leq_nin_ap_fixed_ap_fixed_41_21_5_3_0_config9_mult_s_w9_ROMbtn.v
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// ==============================================================
|
| 2 |
+
// Generated by Vitis HLS v2024.1
|
| 3 |
+
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
| 4 |
+
// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
|
| 5 |
+
// ==============================================================
|
| 6 |
+
`timescale 1 ns / 1 ps
|
| 7 |
+
module myproject_dense_resource_rf_leq_nin_ap_fixed_ap_fixed_41_21_5_3_0_config9_mult_s_w9_ROMbtn (
|
| 8 |
+
address0, ce0, q0,
|
| 9 |
+
reset, clk);
|
| 10 |
+
|
| 11 |
+
parameter DataWidth = 251;
|
| 12 |
+
parameter AddressWidth = 8;
|
| 13 |
+
parameter AddressRange = 144;
|
| 14 |
+
|
| 15 |
+
input[AddressWidth-1:0] address0;
|
| 16 |
+
input ce0;
|
| 17 |
+
output reg[DataWidth-1:0] q0;
|
| 18 |
+
|
| 19 |
+
input reset;
|
| 20 |
+
input clk;
|
| 21 |
+
|
| 22 |
+
|
| 23 |
+
(* rom_style = "block" *)reg [DataWidth-1:0] rom0[0:AddressRange-1];
|
| 24 |
+
|
| 25 |
+
|
| 26 |
+
initial begin
|
| 27 |
+
|
| 28 |
+
$readmemh("./myproject_dense_resource_rf_leq_nin_ap_fixed_ap_fixed_41_21_5_3_0_config9_mult_s_w9_ROMbtn.dat", rom0);
|
| 29 |
+
end
|
| 30 |
+
|
| 31 |
+
|
| 32 |
+
always @(posedge clk)
|
| 33 |
+
begin
|
| 34 |
+
if (ce0)
|
| 35 |
+
begin
|
| 36 |
+
q0 <= rom0[address0];
|
| 37 |
+
end
|
| 38 |
+
end
|
| 39 |
+
|
| 40 |
+
|
| 41 |
+
endmodule
|
| 42 |
+
|
myproject_prj/solution1/impl/verilog/myproject_dense_resource_rf_leq_nin_ap_fixed_ap_fixed_42_22_5_3_0_config14_mult_s.v
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
myproject_prj/solution1/impl/verilog/myproject_dense_resource_rf_leq_nin_ap_fixed_ap_fixed_42_22_5_3_0_config14_mult_s_w14_RdjF.v
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// ==============================================================
|
| 2 |
+
// Generated by Vitis HLS v2024.1
|
| 3 |
+
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
| 4 |
+
// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
|
| 5 |
+
// ==============================================================
|
| 6 |
+
`timescale 1 ns / 1 ps
|
| 7 |
+
module myproject_dense_resource_rf_leq_nin_ap_fixed_ap_fixed_42_22_5_3_0_config14_mult_s_w14_RdjF (
|
| 8 |
+
address0, ce0, q0,
|
| 9 |
+
reset, clk);
|
| 10 |
+
|
| 11 |
+
parameter DataWidth = 1018;
|
| 12 |
+
parameter AddressWidth = 8;
|
| 13 |
+
parameter AddressRange = 144;
|
| 14 |
+
|
| 15 |
+
input[AddressWidth-1:0] address0;
|
| 16 |
+
input ce0;
|
| 17 |
+
output reg[DataWidth-1:0] q0;
|
| 18 |
+
|
| 19 |
+
input reset;
|
| 20 |
+
input clk;
|
| 21 |
+
|
| 22 |
+
|
| 23 |
+
(* rom_style = "block" *)reg [DataWidth-1:0] rom0[0:AddressRange-1];
|
| 24 |
+
|
| 25 |
+
|
| 26 |
+
initial begin
|
| 27 |
+
|
| 28 |
+
$readmemh("./myproject_dense_resource_rf_leq_nin_ap_fixed_ap_fixed_42_22_5_3_0_config14_mult_s_w14_RdjF.dat", rom0);
|
| 29 |
+
end
|
| 30 |
+
|
| 31 |
+
|
| 32 |
+
always @(posedge clk)
|
| 33 |
+
begin
|
| 34 |
+
if (ce0)
|
| 35 |
+
begin
|
| 36 |
+
q0 <= rom0[address0];
|
| 37 |
+
end
|
| 38 |
+
end
|
| 39 |
+
|
| 40 |
+
|
| 41 |
+
endmodule
|
| 42 |
+
|
myproject_prj/solution1/impl/verilog/myproject_fifo_w1376_d256_A.v
ADDED
|
@@ -0,0 +1,237 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// ==============================================================
|
| 2 |
+
// Generated by Vitis HLS v2024.1
|
| 3 |
+
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
| 4 |
+
// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
|
| 5 |
+
// ==============================================================
|
| 6 |
+
// 67d7842dbbe25473c3c32b93c0da8047785f30d78e8a024de1b57352245f9689
|
| 7 |
+
|
| 8 |
+
`timescale 1ns/1ps
|
| 9 |
+
//RAW latency 2
|
| 10 |
+
|
| 11 |
+
module myproject_fifo_w1376_d256_A
|
| 12 |
+
#(parameter
|
| 13 |
+
MEM_STYLE = "auto",
|
| 14 |
+
DATA_WIDTH = 1376,
|
| 15 |
+
ADDR_WIDTH = 8,
|
| 16 |
+
DEPTH = 256)
|
| 17 |
+
(
|
| 18 |
+
// system signal
|
| 19 |
+
input wire clk,
|
| 20 |
+
input wire reset,
|
| 21 |
+
|
| 22 |
+
// write
|
| 23 |
+
output wire if_full_n,
|
| 24 |
+
input wire if_write_ce,
|
| 25 |
+
input wire if_write,
|
| 26 |
+
input wire [DATA_WIDTH-1:0] if_din,
|
| 27 |
+
|
| 28 |
+
// read
|
| 29 |
+
output wire [ADDR_WIDTH:0] if_num_data_valid, // for FRP
|
| 30 |
+
output wire [ADDR_WIDTH:0] if_fifo_cap, // for FRP
|
| 31 |
+
|
| 32 |
+
output wire if_empty_n,
|
| 33 |
+
input wire if_read_ce,
|
| 34 |
+
input wire if_read,
|
| 35 |
+
output wire [DATA_WIDTH-1:0] if_dout
|
| 36 |
+
);
|
| 37 |
+
//------------------------Parameter----------------------
|
| 38 |
+
localparam
|
| 39 |
+
MEM_DEPTH = DEPTH - 1,
|
| 40 |
+
MEM_AWIDTH = clog2(MEM_DEPTH);
|
| 41 |
+
//------------------------Local signal-------------------
|
| 42 |
+
reg [MEM_AWIDTH-1:0] waddr;
|
| 43 |
+
reg [MEM_AWIDTH-1:0] raddr;
|
| 44 |
+
wire [MEM_AWIDTH-1:0] wnext;
|
| 45 |
+
wire [MEM_AWIDTH-1:0] rnext;
|
| 46 |
+
wire push;
|
| 47 |
+
wire pop;
|
| 48 |
+
reg [MEM_AWIDTH:0] mOutPtr;
|
| 49 |
+
reg empty_n = 1'b0;
|
| 50 |
+
reg full_n = 1'b1;
|
| 51 |
+
// has num_data_valid?
|
| 52 |
+
wire num_extra_words;//yes
|
| 53 |
+
reg [ADDR_WIDTH:0] num_data_valid; //yes
|
| 54 |
+
|
| 55 |
+
wire pop_dout;
|
| 56 |
+
reg [ADDR_WIDTH:0] num_data_cnt;
|
| 57 |
+
reg dout_vld = 1'b0;
|
| 58 |
+
|
| 59 |
+
//------------------------Instantiation------------------
|
| 60 |
+
myproject_fifo_w1376_d256_A_ram
|
| 61 |
+
#( .MEM_STYLE (MEM_STYLE),
|
| 62 |
+
.DATA_WIDTH (DATA_WIDTH),
|
| 63 |
+
.ADDR_WIDTH (MEM_AWIDTH),
|
| 64 |
+
.DEPTH (MEM_DEPTH)
|
| 65 |
+
) U_myproject_fifo_w1376_d256_A_ram (
|
| 66 |
+
.clk (clk),
|
| 67 |
+
.reset (reset),
|
| 68 |
+
.we (push),
|
| 69 |
+
.waddr (waddr),
|
| 70 |
+
.din (if_din),
|
| 71 |
+
.raddr (raddr),
|
| 72 |
+
.rden (pop),
|
| 73 |
+
.dout (if_dout)
|
| 74 |
+
);
|
| 75 |
+
|
| 76 |
+
//------------------------Task and function--------------
|
| 77 |
+
function integer clog2;
|
| 78 |
+
input integer x;
|
| 79 |
+
integer n, m;
|
| 80 |
+
begin
|
| 81 |
+
n = 1;
|
| 82 |
+
m = 2;
|
| 83 |
+
while (m < x) begin
|
| 84 |
+
n = n + 1;
|
| 85 |
+
m = m * 2;
|
| 86 |
+
end
|
| 87 |
+
clog2 = n;
|
| 88 |
+
end
|
| 89 |
+
endfunction
|
| 90 |
+
//------------------------Body---------------------------
|
| 91 |
+
// num_data_valid
|
| 92 |
+
assign if_num_data_valid = num_data_valid;
|
| 93 |
+
assign if_fifo_cap = DEPTH;
|
| 94 |
+
|
| 95 |
+
// almost full/empty
|
| 96 |
+
|
| 97 |
+
// program full/empty
|
| 98 |
+
|
| 99 |
+
assign if_full_n = full_n;
|
| 100 |
+
assign if_empty_n = dout_vld;
|
| 101 |
+
|
| 102 |
+
assign push = full_n & if_write_ce & if_write;
|
| 103 |
+
assign pop = empty_n & (pop_dout | ~dout_vld);
|
| 104 |
+
assign pop_dout = dout_vld & if_read_ce & if_read;
|
| 105 |
+
|
| 106 |
+
assign wnext = !push ? waddr :
|
| 107 |
+
(waddr == MEM_DEPTH - 1) ? 1'b0 :
|
| 108 |
+
waddr + 1'b1;
|
| 109 |
+
assign rnext = !pop ? raddr :
|
| 110 |
+
(raddr == MEM_DEPTH - 1) ? 1'b0 :
|
| 111 |
+
raddr + 1'b1;
|
| 112 |
+
|
| 113 |
+
// waddr
|
| 114 |
+
always @(posedge clk) begin
|
| 115 |
+
if (reset)
|
| 116 |
+
waddr <= {MEM_AWIDTH{1'b0}};
|
| 117 |
+
else
|
| 118 |
+
waddr <= wnext;
|
| 119 |
+
end
|
| 120 |
+
|
| 121 |
+
// raddr
|
| 122 |
+
always @(posedge clk) begin
|
| 123 |
+
if (reset)
|
| 124 |
+
raddr <= {MEM_AWIDTH{1'b0}};
|
| 125 |
+
else
|
| 126 |
+
raddr <= rnext;
|
| 127 |
+
end
|
| 128 |
+
|
| 129 |
+
// mOutPtr
|
| 130 |
+
always @(posedge clk) begin
|
| 131 |
+
if (reset)
|
| 132 |
+
mOutPtr <= {MEM_AWIDTH+1{1'b0}};
|
| 133 |
+
else if (push & ~pop)
|
| 134 |
+
mOutPtr <= mOutPtr + 1'b1;
|
| 135 |
+
else if (~push & pop)
|
| 136 |
+
mOutPtr <= mOutPtr - 1'b1;
|
| 137 |
+
end
|
| 138 |
+
|
| 139 |
+
// full_n
|
| 140 |
+
always @(posedge clk) begin
|
| 141 |
+
if (reset)
|
| 142 |
+
full_n <= 1'b1;
|
| 143 |
+
else if ((push & ~pop_dout) && (num_data_cnt == DEPTH - 1))
|
| 144 |
+
full_n <= 1'b0;
|
| 145 |
+
else if (~push & pop_dout)
|
| 146 |
+
full_n <= 1'b1;
|
| 147 |
+
end
|
| 148 |
+
|
| 149 |
+
// empty_n
|
| 150 |
+
always @(posedge clk) begin
|
| 151 |
+
if (reset)
|
| 152 |
+
empty_n <= 1'b0;
|
| 153 |
+
else if (push & ~pop)
|
| 154 |
+
empty_n <= 1'b1;
|
| 155 |
+
else if ((~push & pop) && (mOutPtr == 1))
|
| 156 |
+
empty_n <= 1'b0;
|
| 157 |
+
end
|
| 158 |
+
|
| 159 |
+
// almost_full_n
|
| 160 |
+
|
| 161 |
+
// almost_empty_n
|
| 162 |
+
|
| 163 |
+
// prog_full_n
|
| 164 |
+
|
| 165 |
+
// prog_empty_n
|
| 166 |
+
|
| 167 |
+
// num_data_cnt
|
| 168 |
+
always @(posedge clk) begin
|
| 169 |
+
if (reset)
|
| 170 |
+
num_data_cnt <= {ADDR_WIDTH+1{1'b0}};
|
| 171 |
+
else if ( push & ~pop_dout)
|
| 172 |
+
num_data_cnt <= num_data_cnt + 1'b1;
|
| 173 |
+
else if (~push & pop_dout)
|
| 174 |
+
num_data_cnt <= num_data_cnt - 1'b1;
|
| 175 |
+
end
|
| 176 |
+
|
| 177 |
+
// num_data_valid
|
| 178 |
+
assign num_extra_words = (dout_vld & ~pop_dout) ? 1 : 0;
|
| 179 |
+
|
| 180 |
+
always @(posedge clk) begin
|
| 181 |
+
if (reset)
|
| 182 |
+
num_data_valid <= {ADDR_WIDTH+1{1'b0}};
|
| 183 |
+
else if (empty_n | (dout_vld & ~pop_dout))
|
| 184 |
+
num_data_valid <= push + mOutPtr + num_extra_words;
|
| 185 |
+
else
|
| 186 |
+
num_data_valid <= num_extra_words;
|
| 187 |
+
end //
|
| 188 |
+
|
| 189 |
+
// dout_vld
|
| 190 |
+
always @(posedge clk) begin
|
| 191 |
+
if (reset)
|
| 192 |
+
dout_vld <= 1'b0;
|
| 193 |
+
else if (pop)
|
| 194 |
+
dout_vld <= 1'b1;
|
| 195 |
+
else if (pop_dout)
|
| 196 |
+
dout_vld <= 1'b0;
|
| 197 |
+
end
|
| 198 |
+
|
| 199 |
+
endmodule
|
| 200 |
+
|
| 201 |
+
|
| 202 |
+
module myproject_fifo_w1376_d256_A_ram
|
| 203 |
+
#(parameter
|
| 204 |
+
MEM_STYLE = "auto",
|
| 205 |
+
DATA_WIDTH = 1376,
|
| 206 |
+
ADDR_WIDTH = 8,
|
| 207 |
+
DEPTH = 256)
|
| 208 |
+
(
|
| 209 |
+
input wire clk,
|
| 210 |
+
input wire reset,
|
| 211 |
+
input wire we,
|
| 212 |
+
input wire [ADDR_WIDTH-1:0] waddr,
|
| 213 |
+
input wire [DATA_WIDTH-1:0] din,
|
| 214 |
+
input wire [ADDR_WIDTH-1:0] raddr,
|
| 215 |
+
input wire rden,
|
| 216 |
+
output wire [DATA_WIDTH-1:0] dout
|
| 217 |
+
);
|
| 218 |
+
|
| 219 |
+
(* ram_style = MEM_STYLE *)
|
| 220 |
+
reg [DATA_WIDTH-1:0] mem[0:DEPTH-1];
|
| 221 |
+
reg [DATA_WIDTH-1:0] mem_reg;
|
| 222 |
+
|
| 223 |
+
always @(posedge clk) begin
|
| 224 |
+
if (we)
|
| 225 |
+
mem[waddr] <= din;
|
| 226 |
+
end
|
| 227 |
+
|
| 228 |
+
always @(posedge clk) begin
|
| 229 |
+
if (reset)
|
| 230 |
+
mem_reg <= 0;
|
| 231 |
+
else if (rden)
|
| 232 |
+
mem_reg <= mem[raddr];
|
| 233 |
+
end
|
| 234 |
+
|
| 235 |
+
assign dout = mem_reg;
|
| 236 |
+
|
| 237 |
+
endmodule
|
myproject_prj/solution1/impl/verilog/myproject_fifo_w1536_d256_A.v
ADDED
|
@@ -0,0 +1,237 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// ==============================================================
|
| 2 |
+
// Generated by Vitis HLS v2024.1
|
| 3 |
+
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
| 4 |
+
// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
|
| 5 |
+
// ==============================================================
|
| 6 |
+
// 67d7842dbbe25473c3c32b93c0da8047785f30d78e8a024de1b57352245f9689
|
| 7 |
+
|
| 8 |
+
`timescale 1ns/1ps
|
| 9 |
+
//RAW latency 2
|
| 10 |
+
|
| 11 |
+
module myproject_fifo_w1536_d256_A
|
| 12 |
+
#(parameter
|
| 13 |
+
MEM_STYLE = "auto",
|
| 14 |
+
DATA_WIDTH = 1536,
|
| 15 |
+
ADDR_WIDTH = 8,
|
| 16 |
+
DEPTH = 256)
|
| 17 |
+
(
|
| 18 |
+
// system signal
|
| 19 |
+
input wire clk,
|
| 20 |
+
input wire reset,
|
| 21 |
+
|
| 22 |
+
// write
|
| 23 |
+
output wire if_full_n,
|
| 24 |
+
input wire if_write_ce,
|
| 25 |
+
input wire if_write,
|
| 26 |
+
input wire [DATA_WIDTH-1:0] if_din,
|
| 27 |
+
|
| 28 |
+
// read
|
| 29 |
+
output wire [ADDR_WIDTH:0] if_num_data_valid, // for FRP
|
| 30 |
+
output wire [ADDR_WIDTH:0] if_fifo_cap, // for FRP
|
| 31 |
+
|
| 32 |
+
output wire if_empty_n,
|
| 33 |
+
input wire if_read_ce,
|
| 34 |
+
input wire if_read,
|
| 35 |
+
output wire [DATA_WIDTH-1:0] if_dout
|
| 36 |
+
);
|
| 37 |
+
//------------------------Parameter----------------------
|
| 38 |
+
localparam
|
| 39 |
+
MEM_DEPTH = DEPTH - 1,
|
| 40 |
+
MEM_AWIDTH = clog2(MEM_DEPTH);
|
| 41 |
+
//------------------------Local signal-------------------
|
| 42 |
+
reg [MEM_AWIDTH-1:0] waddr;
|
| 43 |
+
reg [MEM_AWIDTH-1:0] raddr;
|
| 44 |
+
wire [MEM_AWIDTH-1:0] wnext;
|
| 45 |
+
wire [MEM_AWIDTH-1:0] rnext;
|
| 46 |
+
wire push;
|
| 47 |
+
wire pop;
|
| 48 |
+
reg [MEM_AWIDTH:0] mOutPtr;
|
| 49 |
+
reg empty_n = 1'b0;
|
| 50 |
+
reg full_n = 1'b1;
|
| 51 |
+
// has num_data_valid?
|
| 52 |
+
wire num_extra_words;//yes
|
| 53 |
+
reg [ADDR_WIDTH:0] num_data_valid; //yes
|
| 54 |
+
|
| 55 |
+
wire pop_dout;
|
| 56 |
+
reg [ADDR_WIDTH:0] num_data_cnt;
|
| 57 |
+
reg dout_vld = 1'b0;
|
| 58 |
+
|
| 59 |
+
//------------------------Instantiation------------------
|
| 60 |
+
myproject_fifo_w1536_d256_A_ram
|
| 61 |
+
#( .MEM_STYLE (MEM_STYLE),
|
| 62 |
+
.DATA_WIDTH (DATA_WIDTH),
|
| 63 |
+
.ADDR_WIDTH (MEM_AWIDTH),
|
| 64 |
+
.DEPTH (MEM_DEPTH)
|
| 65 |
+
) U_myproject_fifo_w1536_d256_A_ram (
|
| 66 |
+
.clk (clk),
|
| 67 |
+
.reset (reset),
|
| 68 |
+
.we (push),
|
| 69 |
+
.waddr (waddr),
|
| 70 |
+
.din (if_din),
|
| 71 |
+
.raddr (raddr),
|
| 72 |
+
.rden (pop),
|
| 73 |
+
.dout (if_dout)
|
| 74 |
+
);
|
| 75 |
+
|
| 76 |
+
//------------------------Task and function--------------
|
| 77 |
+
function integer clog2;
|
| 78 |
+
input integer x;
|
| 79 |
+
integer n, m;
|
| 80 |
+
begin
|
| 81 |
+
n = 1;
|
| 82 |
+
m = 2;
|
| 83 |
+
while (m < x) begin
|
| 84 |
+
n = n + 1;
|
| 85 |
+
m = m * 2;
|
| 86 |
+
end
|
| 87 |
+
clog2 = n;
|
| 88 |
+
end
|
| 89 |
+
endfunction
|
| 90 |
+
//------------------------Body---------------------------
|
| 91 |
+
// num_data_valid
|
| 92 |
+
assign if_num_data_valid = num_data_valid;
|
| 93 |
+
assign if_fifo_cap = DEPTH;
|
| 94 |
+
|
| 95 |
+
// almost full/empty
|
| 96 |
+
|
| 97 |
+
// program full/empty
|
| 98 |
+
|
| 99 |
+
assign if_full_n = full_n;
|
| 100 |
+
assign if_empty_n = dout_vld;
|
| 101 |
+
|
| 102 |
+
assign push = full_n & if_write_ce & if_write;
|
| 103 |
+
assign pop = empty_n & (pop_dout | ~dout_vld);
|
| 104 |
+
assign pop_dout = dout_vld & if_read_ce & if_read;
|
| 105 |
+
|
| 106 |
+
assign wnext = !push ? waddr :
|
| 107 |
+
(waddr == MEM_DEPTH - 1) ? 1'b0 :
|
| 108 |
+
waddr + 1'b1;
|
| 109 |
+
assign rnext = !pop ? raddr :
|
| 110 |
+
(raddr == MEM_DEPTH - 1) ? 1'b0 :
|
| 111 |
+
raddr + 1'b1;
|
| 112 |
+
|
| 113 |
+
// waddr
|
| 114 |
+
always @(posedge clk) begin
|
| 115 |
+
if (reset)
|
| 116 |
+
waddr <= {MEM_AWIDTH{1'b0}};
|
| 117 |
+
else
|
| 118 |
+
waddr <= wnext;
|
| 119 |
+
end
|
| 120 |
+
|
| 121 |
+
// raddr
|
| 122 |
+
always @(posedge clk) begin
|
| 123 |
+
if (reset)
|
| 124 |
+
raddr <= {MEM_AWIDTH{1'b0}};
|
| 125 |
+
else
|
| 126 |
+
raddr <= rnext;
|
| 127 |
+
end
|
| 128 |
+
|
| 129 |
+
// mOutPtr
|
| 130 |
+
always @(posedge clk) begin
|
| 131 |
+
if (reset)
|
| 132 |
+
mOutPtr <= {MEM_AWIDTH+1{1'b0}};
|
| 133 |
+
else if (push & ~pop)
|
| 134 |
+
mOutPtr <= mOutPtr + 1'b1;
|
| 135 |
+
else if (~push & pop)
|
| 136 |
+
mOutPtr <= mOutPtr - 1'b1;
|
| 137 |
+
end
|
| 138 |
+
|
| 139 |
+
// full_n
|
| 140 |
+
always @(posedge clk) begin
|
| 141 |
+
if (reset)
|
| 142 |
+
full_n <= 1'b1;
|
| 143 |
+
else if ((push & ~pop_dout) && (num_data_cnt == DEPTH - 1))
|
| 144 |
+
full_n <= 1'b0;
|
| 145 |
+
else if (~push & pop_dout)
|
| 146 |
+
full_n <= 1'b1;
|
| 147 |
+
end
|
| 148 |
+
|
| 149 |
+
// empty_n
|
| 150 |
+
always @(posedge clk) begin
|
| 151 |
+
if (reset)
|
| 152 |
+
empty_n <= 1'b0;
|
| 153 |
+
else if (push & ~pop)
|
| 154 |
+
empty_n <= 1'b1;
|
| 155 |
+
else if ((~push & pop) && (mOutPtr == 1))
|
| 156 |
+
empty_n <= 1'b0;
|
| 157 |
+
end
|
| 158 |
+
|
| 159 |
+
// almost_full_n
|
| 160 |
+
|
| 161 |
+
// almost_empty_n
|
| 162 |
+
|
| 163 |
+
// prog_full_n
|
| 164 |
+
|
| 165 |
+
// prog_empty_n
|
| 166 |
+
|
| 167 |
+
// num_data_cnt
|
| 168 |
+
always @(posedge clk) begin
|
| 169 |
+
if (reset)
|
| 170 |
+
num_data_cnt <= {ADDR_WIDTH+1{1'b0}};
|
| 171 |
+
else if ( push & ~pop_dout)
|
| 172 |
+
num_data_cnt <= num_data_cnt + 1'b1;
|
| 173 |
+
else if (~push & pop_dout)
|
| 174 |
+
num_data_cnt <= num_data_cnt - 1'b1;
|
| 175 |
+
end
|
| 176 |
+
|
| 177 |
+
// num_data_valid
|
| 178 |
+
assign num_extra_words = (dout_vld & ~pop_dout) ? 1 : 0;
|
| 179 |
+
|
| 180 |
+
always @(posedge clk) begin
|
| 181 |
+
if (reset)
|
| 182 |
+
num_data_valid <= {ADDR_WIDTH+1{1'b0}};
|
| 183 |
+
else if (empty_n | (dout_vld & ~pop_dout))
|
| 184 |
+
num_data_valid <= push + mOutPtr + num_extra_words;
|
| 185 |
+
else
|
| 186 |
+
num_data_valid <= num_extra_words;
|
| 187 |
+
end //
|
| 188 |
+
|
| 189 |
+
// dout_vld
|
| 190 |
+
always @(posedge clk) begin
|
| 191 |
+
if (reset)
|
| 192 |
+
dout_vld <= 1'b0;
|
| 193 |
+
else if (pop)
|
| 194 |
+
dout_vld <= 1'b1;
|
| 195 |
+
else if (pop_dout)
|
| 196 |
+
dout_vld <= 1'b0;
|
| 197 |
+
end
|
| 198 |
+
|
| 199 |
+
endmodule
|
| 200 |
+
|
| 201 |
+
|
| 202 |
+
module myproject_fifo_w1536_d256_A_ram
|
| 203 |
+
#(parameter
|
| 204 |
+
MEM_STYLE = "auto",
|
| 205 |
+
DATA_WIDTH = 1536,
|
| 206 |
+
ADDR_WIDTH = 8,
|
| 207 |
+
DEPTH = 256)
|
| 208 |
+
(
|
| 209 |
+
input wire clk,
|
| 210 |
+
input wire reset,
|
| 211 |
+
input wire we,
|
| 212 |
+
input wire [ADDR_WIDTH-1:0] waddr,
|
| 213 |
+
input wire [DATA_WIDTH-1:0] din,
|
| 214 |
+
input wire [ADDR_WIDTH-1:0] raddr,
|
| 215 |
+
input wire rden,
|
| 216 |
+
output wire [DATA_WIDTH-1:0] dout
|
| 217 |
+
);
|
| 218 |
+
|
| 219 |
+
(* ram_style = MEM_STYLE *)
|
| 220 |
+
reg [DATA_WIDTH-1:0] mem[0:DEPTH-1];
|
| 221 |
+
reg [DATA_WIDTH-1:0] mem_reg;
|
| 222 |
+
|
| 223 |
+
always @(posedge clk) begin
|
| 224 |
+
if (we)
|
| 225 |
+
mem[waddr] <= din;
|
| 226 |
+
end
|
| 227 |
+
|
| 228 |
+
always @(posedge clk) begin
|
| 229 |
+
if (reset)
|
| 230 |
+
mem_reg <= 0;
|
| 231 |
+
else if (rden)
|
| 232 |
+
mem_reg <= mem[raddr];
|
| 233 |
+
end
|
| 234 |
+
|
| 235 |
+
assign dout = mem_reg;
|
| 236 |
+
|
| 237 |
+
endmodule
|
myproject_prj/solution1/impl/verilog/myproject_fifo_w16_d4096_A.v
ADDED
|
@@ -0,0 +1,237 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// ==============================================================
|
| 2 |
+
// Generated by Vitis HLS v2024.1
|
| 3 |
+
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
| 4 |
+
// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
|
| 5 |
+
// ==============================================================
|
| 6 |
+
// 67d7842dbbe25473c3c32b93c0da8047785f30d78e8a024de1b57352245f9689
|
| 7 |
+
|
| 8 |
+
`timescale 1ns/1ps
|
| 9 |
+
//RAW latency 2
|
| 10 |
+
|
| 11 |
+
module myproject_fifo_w16_d4096_A
|
| 12 |
+
#(parameter
|
| 13 |
+
MEM_STYLE = "auto",
|
| 14 |
+
DATA_WIDTH = 16,
|
| 15 |
+
ADDR_WIDTH = 12,
|
| 16 |
+
DEPTH = 4096)
|
| 17 |
+
(
|
| 18 |
+
// system signal
|
| 19 |
+
input wire clk,
|
| 20 |
+
input wire reset,
|
| 21 |
+
|
| 22 |
+
// write
|
| 23 |
+
output wire if_full_n,
|
| 24 |
+
input wire if_write_ce,
|
| 25 |
+
input wire if_write,
|
| 26 |
+
input wire [DATA_WIDTH-1:0] if_din,
|
| 27 |
+
|
| 28 |
+
// read
|
| 29 |
+
output wire [ADDR_WIDTH:0] if_num_data_valid, // for FRP
|
| 30 |
+
output wire [ADDR_WIDTH:0] if_fifo_cap, // for FRP
|
| 31 |
+
|
| 32 |
+
output wire if_empty_n,
|
| 33 |
+
input wire if_read_ce,
|
| 34 |
+
input wire if_read,
|
| 35 |
+
output wire [DATA_WIDTH-1:0] if_dout
|
| 36 |
+
);
|
| 37 |
+
//------------------------Parameter----------------------
|
| 38 |
+
localparam
|
| 39 |
+
MEM_DEPTH = DEPTH - 1,
|
| 40 |
+
MEM_AWIDTH = clog2(MEM_DEPTH);
|
| 41 |
+
//------------------------Local signal-------------------
|
| 42 |
+
reg [MEM_AWIDTH-1:0] waddr;
|
| 43 |
+
reg [MEM_AWIDTH-1:0] raddr;
|
| 44 |
+
wire [MEM_AWIDTH-1:0] wnext;
|
| 45 |
+
wire [MEM_AWIDTH-1:0] rnext;
|
| 46 |
+
wire push;
|
| 47 |
+
wire pop;
|
| 48 |
+
reg [MEM_AWIDTH:0] mOutPtr;
|
| 49 |
+
reg empty_n = 1'b0;
|
| 50 |
+
reg full_n = 1'b1;
|
| 51 |
+
// has num_data_valid?
|
| 52 |
+
wire num_extra_words;//yes
|
| 53 |
+
reg [ADDR_WIDTH:0] num_data_valid; //yes
|
| 54 |
+
|
| 55 |
+
wire pop_dout;
|
| 56 |
+
reg [ADDR_WIDTH:0] num_data_cnt;
|
| 57 |
+
reg dout_vld = 1'b0;
|
| 58 |
+
|
| 59 |
+
//------------------------Instantiation------------------
|
| 60 |
+
myproject_fifo_w16_d4096_A_ram
|
| 61 |
+
#( .MEM_STYLE (MEM_STYLE),
|
| 62 |
+
.DATA_WIDTH (DATA_WIDTH),
|
| 63 |
+
.ADDR_WIDTH (MEM_AWIDTH),
|
| 64 |
+
.DEPTH (MEM_DEPTH)
|
| 65 |
+
) U_myproject_fifo_w16_d4096_A_ram (
|
| 66 |
+
.clk (clk),
|
| 67 |
+
.reset (reset),
|
| 68 |
+
.we (push),
|
| 69 |
+
.waddr (waddr),
|
| 70 |
+
.din (if_din),
|
| 71 |
+
.raddr (raddr),
|
| 72 |
+
.rden (pop),
|
| 73 |
+
.dout (if_dout)
|
| 74 |
+
);
|
| 75 |
+
|
| 76 |
+
//------------------------Task and function--------------
|
| 77 |
+
function integer clog2;
|
| 78 |
+
input integer x;
|
| 79 |
+
integer n, m;
|
| 80 |
+
begin
|
| 81 |
+
n = 1;
|
| 82 |
+
m = 2;
|
| 83 |
+
while (m < x) begin
|
| 84 |
+
n = n + 1;
|
| 85 |
+
m = m * 2;
|
| 86 |
+
end
|
| 87 |
+
clog2 = n;
|
| 88 |
+
end
|
| 89 |
+
endfunction
|
| 90 |
+
//------------------------Body---------------------------
|
| 91 |
+
// num_data_valid
|
| 92 |
+
assign if_num_data_valid = num_data_valid;
|
| 93 |
+
assign if_fifo_cap = DEPTH;
|
| 94 |
+
|
| 95 |
+
// almost full/empty
|
| 96 |
+
|
| 97 |
+
// program full/empty
|
| 98 |
+
|
| 99 |
+
assign if_full_n = full_n;
|
| 100 |
+
assign if_empty_n = dout_vld;
|
| 101 |
+
|
| 102 |
+
assign push = full_n & if_write_ce & if_write;
|
| 103 |
+
assign pop = empty_n & (pop_dout | ~dout_vld);
|
| 104 |
+
assign pop_dout = dout_vld & if_read_ce & if_read;
|
| 105 |
+
|
| 106 |
+
assign wnext = !push ? waddr :
|
| 107 |
+
(waddr == MEM_DEPTH - 1) ? 1'b0 :
|
| 108 |
+
waddr + 1'b1;
|
| 109 |
+
assign rnext = !pop ? raddr :
|
| 110 |
+
(raddr == MEM_DEPTH - 1) ? 1'b0 :
|
| 111 |
+
raddr + 1'b1;
|
| 112 |
+
|
| 113 |
+
// waddr
|
| 114 |
+
always @(posedge clk) begin
|
| 115 |
+
if (reset)
|
| 116 |
+
waddr <= {MEM_AWIDTH{1'b0}};
|
| 117 |
+
else
|
| 118 |
+
waddr <= wnext;
|
| 119 |
+
end
|
| 120 |
+
|
| 121 |
+
// raddr
|
| 122 |
+
always @(posedge clk) begin
|
| 123 |
+
if (reset)
|
| 124 |
+
raddr <= {MEM_AWIDTH{1'b0}};
|
| 125 |
+
else
|
| 126 |
+
raddr <= rnext;
|
| 127 |
+
end
|
| 128 |
+
|
| 129 |
+
// mOutPtr
|
| 130 |
+
always @(posedge clk) begin
|
| 131 |
+
if (reset)
|
| 132 |
+
mOutPtr <= {MEM_AWIDTH+1{1'b0}};
|
| 133 |
+
else if (push & ~pop)
|
| 134 |
+
mOutPtr <= mOutPtr + 1'b1;
|
| 135 |
+
else if (~push & pop)
|
| 136 |
+
mOutPtr <= mOutPtr - 1'b1;
|
| 137 |
+
end
|
| 138 |
+
|
| 139 |
+
// full_n
|
| 140 |
+
always @(posedge clk) begin
|
| 141 |
+
if (reset)
|
| 142 |
+
full_n <= 1'b1;
|
| 143 |
+
else if ((push & ~pop_dout) && (num_data_cnt == DEPTH - 1))
|
| 144 |
+
full_n <= 1'b0;
|
| 145 |
+
else if (~push & pop_dout)
|
| 146 |
+
full_n <= 1'b1;
|
| 147 |
+
end
|
| 148 |
+
|
| 149 |
+
// empty_n
|
| 150 |
+
always @(posedge clk) begin
|
| 151 |
+
if (reset)
|
| 152 |
+
empty_n <= 1'b0;
|
| 153 |
+
else if (push & ~pop)
|
| 154 |
+
empty_n <= 1'b1;
|
| 155 |
+
else if ((~push & pop) && (mOutPtr == 1))
|
| 156 |
+
empty_n <= 1'b0;
|
| 157 |
+
end
|
| 158 |
+
|
| 159 |
+
// almost_full_n
|
| 160 |
+
|
| 161 |
+
// almost_empty_n
|
| 162 |
+
|
| 163 |
+
// prog_full_n
|
| 164 |
+
|
| 165 |
+
// prog_empty_n
|
| 166 |
+
|
| 167 |
+
// num_data_cnt
|
| 168 |
+
always @(posedge clk) begin
|
| 169 |
+
if (reset)
|
| 170 |
+
num_data_cnt <= {ADDR_WIDTH+1{1'b0}};
|
| 171 |
+
else if ( push & ~pop_dout)
|
| 172 |
+
num_data_cnt <= num_data_cnt + 1'b1;
|
| 173 |
+
else if (~push & pop_dout)
|
| 174 |
+
num_data_cnt <= num_data_cnt - 1'b1;
|
| 175 |
+
end
|
| 176 |
+
|
| 177 |
+
// num_data_valid
|
| 178 |
+
assign num_extra_words = (dout_vld & ~pop_dout) ? 1 : 0;
|
| 179 |
+
|
| 180 |
+
always @(posedge clk) begin
|
| 181 |
+
if (reset)
|
| 182 |
+
num_data_valid <= {ADDR_WIDTH+1{1'b0}};
|
| 183 |
+
else if (empty_n | (dout_vld & ~pop_dout))
|
| 184 |
+
num_data_valid <= push + mOutPtr + num_extra_words;
|
| 185 |
+
else
|
| 186 |
+
num_data_valid <= num_extra_words;
|
| 187 |
+
end //
|
| 188 |
+
|
| 189 |
+
// dout_vld
|
| 190 |
+
always @(posedge clk) begin
|
| 191 |
+
if (reset)
|
| 192 |
+
dout_vld <= 1'b0;
|
| 193 |
+
else if (pop)
|
| 194 |
+
dout_vld <= 1'b1;
|
| 195 |
+
else if (pop_dout)
|
| 196 |
+
dout_vld <= 1'b0;
|
| 197 |
+
end
|
| 198 |
+
|
| 199 |
+
endmodule
|
| 200 |
+
|
| 201 |
+
|
| 202 |
+
module myproject_fifo_w16_d4096_A_ram
|
| 203 |
+
#(parameter
|
| 204 |
+
MEM_STYLE = "auto",
|
| 205 |
+
DATA_WIDTH = 16,
|
| 206 |
+
ADDR_WIDTH = 12,
|
| 207 |
+
DEPTH = 4096)
|
| 208 |
+
(
|
| 209 |
+
input wire clk,
|
| 210 |
+
input wire reset,
|
| 211 |
+
input wire we,
|
| 212 |
+
input wire [ADDR_WIDTH-1:0] waddr,
|
| 213 |
+
input wire [DATA_WIDTH-1:0] din,
|
| 214 |
+
input wire [ADDR_WIDTH-1:0] raddr,
|
| 215 |
+
input wire rden,
|
| 216 |
+
output wire [DATA_WIDTH-1:0] dout
|
| 217 |
+
);
|
| 218 |
+
|
| 219 |
+
(* ram_style = MEM_STYLE *)
|
| 220 |
+
reg [DATA_WIDTH-1:0] mem[0:DEPTH-1];
|
| 221 |
+
reg [DATA_WIDTH-1:0] mem_reg;
|
| 222 |
+
|
| 223 |
+
always @(posedge clk) begin
|
| 224 |
+
if (we)
|
| 225 |
+
mem[waddr] <= din;
|
| 226 |
+
end
|
| 227 |
+
|
| 228 |
+
always @(posedge clk) begin
|
| 229 |
+
if (reset)
|
| 230 |
+
mem_reg <= 0;
|
| 231 |
+
else if (rden)
|
| 232 |
+
mem_reg <= mem[raddr];
|
| 233 |
+
end
|
| 234 |
+
|
| 235 |
+
assign dout = mem_reg;
|
| 236 |
+
|
| 237 |
+
endmodule
|
myproject_prj/solution1/impl/verilog/myproject_fifo_w16_d64_S.v
ADDED
|
@@ -0,0 +1,155 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// ==============================================================
|
| 2 |
+
// Generated by Vitis HLS v2024.1
|
| 3 |
+
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
| 4 |
+
// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
|
| 5 |
+
// ==============================================================
|
| 6 |
+
// 67d7842dbbe25473c3c32b93c0da8047785f30d78e8a024de1b57352245f9689
|
| 7 |
+
|
| 8 |
+
`timescale 1ns/1ps
|
| 9 |
+
//RAW latency 1
|
| 10 |
+
|
| 11 |
+
module myproject_fifo_w16_d64_S
|
| 12 |
+
#(parameter
|
| 13 |
+
MEM_STYLE = "shiftReg",
|
| 14 |
+
DATA_WIDTH = 16,
|
| 15 |
+
ADDR_WIDTH = 6,
|
| 16 |
+
DEPTH = 64)
|
| 17 |
+
(
|
| 18 |
+
// system signal
|
| 19 |
+
input wire clk,
|
| 20 |
+
input wire reset,
|
| 21 |
+
|
| 22 |
+
// write
|
| 23 |
+
output wire if_full_n,
|
| 24 |
+
input wire if_write_ce,
|
| 25 |
+
input wire if_write,
|
| 26 |
+
input wire [DATA_WIDTH-1:0] if_din,
|
| 27 |
+
|
| 28 |
+
// read
|
| 29 |
+
output wire [ADDR_WIDTH:0] if_num_data_valid, // for FRP
|
| 30 |
+
output wire [ADDR_WIDTH:0] if_fifo_cap, // for FRP
|
| 31 |
+
|
| 32 |
+
output wire if_empty_n,
|
| 33 |
+
input wire if_read_ce,
|
| 34 |
+
input wire if_read,
|
| 35 |
+
output wire [DATA_WIDTH-1:0] if_dout
|
| 36 |
+
);
|
| 37 |
+
//------------------------Parameter----------------------
|
| 38 |
+
localparam
|
| 39 |
+
SRL_DEPTH = DEPTH,
|
| 40 |
+
SRL_AWIDTH = ADDR_WIDTH;
|
| 41 |
+
//------------------------Local signal-------------------
|
| 42 |
+
reg [SRL_AWIDTH-1:0] addr;
|
| 43 |
+
wire push;
|
| 44 |
+
wire pop;
|
| 45 |
+
reg [SRL_AWIDTH:0] mOutPtr;
|
| 46 |
+
reg empty_n = 1'b0;
|
| 47 |
+
reg full_n = 1'b1;
|
| 48 |
+
|
| 49 |
+
//------------------------Instantiation------------------
|
| 50 |
+
myproject_fifo_w16_d64_S_ShiftReg
|
| 51 |
+
#( .DATA_WIDTH (DATA_WIDTH),
|
| 52 |
+
.ADDR_WIDTH (SRL_AWIDTH),
|
| 53 |
+
.DEPTH (SRL_DEPTH))
|
| 54 |
+
U_myproject_fifo_w16_d64_S_ShiftReg (
|
| 55 |
+
.clk (clk),
|
| 56 |
+
.we (push),
|
| 57 |
+
.addr (addr),
|
| 58 |
+
.din (if_din),
|
| 59 |
+
.dout (if_dout)
|
| 60 |
+
);
|
| 61 |
+
//------------------------Task and function--------------
|
| 62 |
+
|
| 63 |
+
//------------------------Body---------------------------
|
| 64 |
+
// num_data_valid
|
| 65 |
+
assign if_num_data_valid = mOutPtr;
|
| 66 |
+
assign if_fifo_cap = DEPTH;
|
| 67 |
+
|
| 68 |
+
// almost full/empty
|
| 69 |
+
|
| 70 |
+
// program full/empty
|
| 71 |
+
|
| 72 |
+
assign if_full_n = full_n;
|
| 73 |
+
assign if_empty_n = empty_n;
|
| 74 |
+
|
| 75 |
+
assign push = full_n & if_write_ce & if_write;
|
| 76 |
+
assign pop = empty_n & if_read_ce & if_read;
|
| 77 |
+
|
| 78 |
+
// addr
|
| 79 |
+
always @(posedge clk) begin
|
| 80 |
+
if (reset)
|
| 81 |
+
addr <= {SRL_AWIDTH{1'b0}};
|
| 82 |
+
else if (push & ~pop && empty_n)
|
| 83 |
+
addr <= addr + 1'b1;
|
| 84 |
+
else if (~push & pop && (mOutPtr != 1))
|
| 85 |
+
addr <= addr - 1'b1;
|
| 86 |
+
end
|
| 87 |
+
|
| 88 |
+
// mOutPtr
|
| 89 |
+
always @(posedge clk) begin
|
| 90 |
+
if (reset)
|
| 91 |
+
mOutPtr <= {SRL_AWIDTH+1{1'b0}};
|
| 92 |
+
else if (push & ~pop)
|
| 93 |
+
mOutPtr <= mOutPtr + 1'b1;
|
| 94 |
+
else if (~push & pop)
|
| 95 |
+
mOutPtr <= mOutPtr - 1'b1;
|
| 96 |
+
end
|
| 97 |
+
|
| 98 |
+
// full_n
|
| 99 |
+
always @(posedge clk) begin
|
| 100 |
+
if (reset)
|
| 101 |
+
full_n <= 1'b1;
|
| 102 |
+
else if ((push & ~pop) && (mOutPtr == DEPTH - 1))
|
| 103 |
+
full_n <= 1'b0;
|
| 104 |
+
else if (~push & pop)
|
| 105 |
+
full_n <= 1'b1;
|
| 106 |
+
end
|
| 107 |
+
|
| 108 |
+
// empty_n
|
| 109 |
+
always @(posedge clk) begin
|
| 110 |
+
if (reset)
|
| 111 |
+
empty_n <= 1'b0;
|
| 112 |
+
else if (push & ~pop)
|
| 113 |
+
empty_n <= 1'b1;
|
| 114 |
+
else if ((~push & pop) && (mOutPtr == 1))
|
| 115 |
+
empty_n <= 1'b0;
|
| 116 |
+
end
|
| 117 |
+
|
| 118 |
+
// almost_full_n
|
| 119 |
+
|
| 120 |
+
// almost_empty_n
|
| 121 |
+
|
| 122 |
+
// prog_full_n
|
| 123 |
+
|
| 124 |
+
// prog_empty_n
|
| 125 |
+
|
| 126 |
+
endmodule
|
| 127 |
+
|
| 128 |
+
|
| 129 |
+
module myproject_fifo_w16_d64_S_ShiftReg
|
| 130 |
+
#(parameter
|
| 131 |
+
DATA_WIDTH = 16,
|
| 132 |
+
ADDR_WIDTH = 6,
|
| 133 |
+
DEPTH = 64)
|
| 134 |
+
(
|
| 135 |
+
input wire clk,
|
| 136 |
+
input wire we,
|
| 137 |
+
input wire [ADDR_WIDTH-1:0] addr,
|
| 138 |
+
input wire [DATA_WIDTH-1:0] din,
|
| 139 |
+
output wire [DATA_WIDTH-1:0] dout
|
| 140 |
+
);
|
| 141 |
+
|
| 142 |
+
reg [DATA_WIDTH-1:0] SRL_SIG [0:DEPTH-1];
|
| 143 |
+
integer i;
|
| 144 |
+
|
| 145 |
+
always @(posedge clk) begin
|
| 146 |
+
if (we) begin
|
| 147 |
+
for (i=0; i<DEPTH-1; i=i+1)
|
| 148 |
+
SRL_SIG[i+1] <= SRL_SIG[i];
|
| 149 |
+
SRL_SIG[0] <= din;
|
| 150 |
+
end
|
| 151 |
+
end
|
| 152 |
+
|
| 153 |
+
assign dout = SRL_SIG[addr];
|
| 154 |
+
|
| 155 |
+
endmodule
|
myproject_prj/solution1/impl/verilog/myproject_fifo_w320_d4096_A.v
ADDED
|
@@ -0,0 +1,237 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// ==============================================================
|
| 2 |
+
// Generated by Vitis HLS v2024.1
|
| 3 |
+
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
| 4 |
+
// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
|
| 5 |
+
// ==============================================================
|
| 6 |
+
// 67d7842dbbe25473c3c32b93c0da8047785f30d78e8a024de1b57352245f9689
|
| 7 |
+
|
| 8 |
+
`timescale 1ns/1ps
|
| 9 |
+
//RAW latency 2
|
| 10 |
+
|
| 11 |
+
module myproject_fifo_w320_d4096_A
|
| 12 |
+
#(parameter
|
| 13 |
+
MEM_STYLE = "auto",
|
| 14 |
+
DATA_WIDTH = 320,
|
| 15 |
+
ADDR_WIDTH = 12,
|
| 16 |
+
DEPTH = 4096)
|
| 17 |
+
(
|
| 18 |
+
// system signal
|
| 19 |
+
input wire clk,
|
| 20 |
+
input wire reset,
|
| 21 |
+
|
| 22 |
+
// write
|
| 23 |
+
output wire if_full_n,
|
| 24 |
+
input wire if_write_ce,
|
| 25 |
+
input wire if_write,
|
| 26 |
+
input wire [DATA_WIDTH-1:0] if_din,
|
| 27 |
+
|
| 28 |
+
// read
|
| 29 |
+
output wire [ADDR_WIDTH:0] if_num_data_valid, // for FRP
|
| 30 |
+
output wire [ADDR_WIDTH:0] if_fifo_cap, // for FRP
|
| 31 |
+
|
| 32 |
+
output wire if_empty_n,
|
| 33 |
+
input wire if_read_ce,
|
| 34 |
+
input wire if_read,
|
| 35 |
+
output wire [DATA_WIDTH-1:0] if_dout
|
| 36 |
+
);
|
| 37 |
+
//------------------------Parameter----------------------
|
| 38 |
+
localparam
|
| 39 |
+
MEM_DEPTH = DEPTH - 1,
|
| 40 |
+
MEM_AWIDTH = clog2(MEM_DEPTH);
|
| 41 |
+
//------------------------Local signal-------------------
|
| 42 |
+
reg [MEM_AWIDTH-1:0] waddr;
|
| 43 |
+
reg [MEM_AWIDTH-1:0] raddr;
|
| 44 |
+
wire [MEM_AWIDTH-1:0] wnext;
|
| 45 |
+
wire [MEM_AWIDTH-1:0] rnext;
|
| 46 |
+
wire push;
|
| 47 |
+
wire pop;
|
| 48 |
+
reg [MEM_AWIDTH:0] mOutPtr;
|
| 49 |
+
reg empty_n = 1'b0;
|
| 50 |
+
reg full_n = 1'b1;
|
| 51 |
+
// has num_data_valid?
|
| 52 |
+
wire num_extra_words;//yes
|
| 53 |
+
reg [ADDR_WIDTH:0] num_data_valid; //yes
|
| 54 |
+
|
| 55 |
+
wire pop_dout;
|
| 56 |
+
reg [ADDR_WIDTH:0] num_data_cnt;
|
| 57 |
+
reg dout_vld = 1'b0;
|
| 58 |
+
|
| 59 |
+
//------------------------Instantiation------------------
|
| 60 |
+
myproject_fifo_w320_d4096_A_ram
|
| 61 |
+
#( .MEM_STYLE (MEM_STYLE),
|
| 62 |
+
.DATA_WIDTH (DATA_WIDTH),
|
| 63 |
+
.ADDR_WIDTH (MEM_AWIDTH),
|
| 64 |
+
.DEPTH (MEM_DEPTH)
|
| 65 |
+
) U_myproject_fifo_w320_d4096_A_ram (
|
| 66 |
+
.clk (clk),
|
| 67 |
+
.reset (reset),
|
| 68 |
+
.we (push),
|
| 69 |
+
.waddr (waddr),
|
| 70 |
+
.din (if_din),
|
| 71 |
+
.raddr (raddr),
|
| 72 |
+
.rden (pop),
|
| 73 |
+
.dout (if_dout)
|
| 74 |
+
);
|
| 75 |
+
|
| 76 |
+
//------------------------Task and function--------------
|
| 77 |
+
function integer clog2;
|
| 78 |
+
input integer x;
|
| 79 |
+
integer n, m;
|
| 80 |
+
begin
|
| 81 |
+
n = 1;
|
| 82 |
+
m = 2;
|
| 83 |
+
while (m < x) begin
|
| 84 |
+
n = n + 1;
|
| 85 |
+
m = m * 2;
|
| 86 |
+
end
|
| 87 |
+
clog2 = n;
|
| 88 |
+
end
|
| 89 |
+
endfunction
|
| 90 |
+
//------------------------Body---------------------------
|
| 91 |
+
// num_data_valid
|
| 92 |
+
assign if_num_data_valid = num_data_valid;
|
| 93 |
+
assign if_fifo_cap = DEPTH;
|
| 94 |
+
|
| 95 |
+
// almost full/empty
|
| 96 |
+
|
| 97 |
+
// program full/empty
|
| 98 |
+
|
| 99 |
+
assign if_full_n = full_n;
|
| 100 |
+
assign if_empty_n = dout_vld;
|
| 101 |
+
|
| 102 |
+
assign push = full_n & if_write_ce & if_write;
|
| 103 |
+
assign pop = empty_n & (pop_dout | ~dout_vld);
|
| 104 |
+
assign pop_dout = dout_vld & if_read_ce & if_read;
|
| 105 |
+
|
| 106 |
+
assign wnext = !push ? waddr :
|
| 107 |
+
(waddr == MEM_DEPTH - 1) ? 1'b0 :
|
| 108 |
+
waddr + 1'b1;
|
| 109 |
+
assign rnext = !pop ? raddr :
|
| 110 |
+
(raddr == MEM_DEPTH - 1) ? 1'b0 :
|
| 111 |
+
raddr + 1'b1;
|
| 112 |
+
|
| 113 |
+
// waddr
|
| 114 |
+
always @(posedge clk) begin
|
| 115 |
+
if (reset)
|
| 116 |
+
waddr <= {MEM_AWIDTH{1'b0}};
|
| 117 |
+
else
|
| 118 |
+
waddr <= wnext;
|
| 119 |
+
end
|
| 120 |
+
|
| 121 |
+
// raddr
|
| 122 |
+
always @(posedge clk) begin
|
| 123 |
+
if (reset)
|
| 124 |
+
raddr <= {MEM_AWIDTH{1'b0}};
|
| 125 |
+
else
|
| 126 |
+
raddr <= rnext;
|
| 127 |
+
end
|
| 128 |
+
|
| 129 |
+
// mOutPtr
|
| 130 |
+
always @(posedge clk) begin
|
| 131 |
+
if (reset)
|
| 132 |
+
mOutPtr <= {MEM_AWIDTH+1{1'b0}};
|
| 133 |
+
else if (push & ~pop)
|
| 134 |
+
mOutPtr <= mOutPtr + 1'b1;
|
| 135 |
+
else if (~push & pop)
|
| 136 |
+
mOutPtr <= mOutPtr - 1'b1;
|
| 137 |
+
end
|
| 138 |
+
|
| 139 |
+
// full_n
|
| 140 |
+
always @(posedge clk) begin
|
| 141 |
+
if (reset)
|
| 142 |
+
full_n <= 1'b1;
|
| 143 |
+
else if ((push & ~pop_dout) && (num_data_cnt == DEPTH - 1))
|
| 144 |
+
full_n <= 1'b0;
|
| 145 |
+
else if (~push & pop_dout)
|
| 146 |
+
full_n <= 1'b1;
|
| 147 |
+
end
|
| 148 |
+
|
| 149 |
+
// empty_n
|
| 150 |
+
always @(posedge clk) begin
|
| 151 |
+
if (reset)
|
| 152 |
+
empty_n <= 1'b0;
|
| 153 |
+
else if (push & ~pop)
|
| 154 |
+
empty_n <= 1'b1;
|
| 155 |
+
else if ((~push & pop) && (mOutPtr == 1))
|
| 156 |
+
empty_n <= 1'b0;
|
| 157 |
+
end
|
| 158 |
+
|
| 159 |
+
// almost_full_n
|
| 160 |
+
|
| 161 |
+
// almost_empty_n
|
| 162 |
+
|
| 163 |
+
// prog_full_n
|
| 164 |
+
|
| 165 |
+
// prog_empty_n
|
| 166 |
+
|
| 167 |
+
// num_data_cnt
|
| 168 |
+
always @(posedge clk) begin
|
| 169 |
+
if (reset)
|
| 170 |
+
num_data_cnt <= {ADDR_WIDTH+1{1'b0}};
|
| 171 |
+
else if ( push & ~pop_dout)
|
| 172 |
+
num_data_cnt <= num_data_cnt + 1'b1;
|
| 173 |
+
else if (~push & pop_dout)
|
| 174 |
+
num_data_cnt <= num_data_cnt - 1'b1;
|
| 175 |
+
end
|
| 176 |
+
|
| 177 |
+
// num_data_valid
|
| 178 |
+
assign num_extra_words = (dout_vld & ~pop_dout) ? 1 : 0;
|
| 179 |
+
|
| 180 |
+
always @(posedge clk) begin
|
| 181 |
+
if (reset)
|
| 182 |
+
num_data_valid <= {ADDR_WIDTH+1{1'b0}};
|
| 183 |
+
else if (empty_n | (dout_vld & ~pop_dout))
|
| 184 |
+
num_data_valid <= push + mOutPtr + num_extra_words;
|
| 185 |
+
else
|
| 186 |
+
num_data_valid <= num_extra_words;
|
| 187 |
+
end //
|
| 188 |
+
|
| 189 |
+
// dout_vld
|
| 190 |
+
always @(posedge clk) begin
|
| 191 |
+
if (reset)
|
| 192 |
+
dout_vld <= 1'b0;
|
| 193 |
+
else if (pop)
|
| 194 |
+
dout_vld <= 1'b1;
|
| 195 |
+
else if (pop_dout)
|
| 196 |
+
dout_vld <= 1'b0;
|
| 197 |
+
end
|
| 198 |
+
|
| 199 |
+
endmodule
|
| 200 |
+
|
| 201 |
+
|
| 202 |
+
module myproject_fifo_w320_d4096_A_ram
|
| 203 |
+
#(parameter
|
| 204 |
+
MEM_STYLE = "auto",
|
| 205 |
+
DATA_WIDTH = 320,
|
| 206 |
+
ADDR_WIDTH = 12,
|
| 207 |
+
DEPTH = 4096)
|
| 208 |
+
(
|
| 209 |
+
input wire clk,
|
| 210 |
+
input wire reset,
|
| 211 |
+
input wire we,
|
| 212 |
+
input wire [ADDR_WIDTH-1:0] waddr,
|
| 213 |
+
input wire [DATA_WIDTH-1:0] din,
|
| 214 |
+
input wire [ADDR_WIDTH-1:0] raddr,
|
| 215 |
+
input wire rden,
|
| 216 |
+
output wire [DATA_WIDTH-1:0] dout
|
| 217 |
+
);
|
| 218 |
+
|
| 219 |
+
(* ram_style = MEM_STYLE *)
|
| 220 |
+
reg [DATA_WIDTH-1:0] mem[0:DEPTH-1];
|
| 221 |
+
reg [DATA_WIDTH-1:0] mem_reg;
|
| 222 |
+
|
| 223 |
+
always @(posedge clk) begin
|
| 224 |
+
if (we)
|
| 225 |
+
mem[waddr] <= din;
|
| 226 |
+
end
|
| 227 |
+
|
| 228 |
+
always @(posedge clk) begin
|
| 229 |
+
if (reset)
|
| 230 |
+
mem_reg <= 0;
|
| 231 |
+
else if (rden)
|
| 232 |
+
mem_reg <= mem[raddr];
|
| 233 |
+
end
|
| 234 |
+
|
| 235 |
+
assign dout = mem_reg;
|
| 236 |
+
|
| 237 |
+
endmodule
|
myproject_prj/solution1/impl/verilog/myproject_fifo_w328_d4096_A.v
ADDED
|
@@ -0,0 +1,237 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// ==============================================================
|
| 2 |
+
// Generated by Vitis HLS v2024.1
|
| 3 |
+
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
| 4 |
+
// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
|
| 5 |
+
// ==============================================================
|
| 6 |
+
// 67d7842dbbe25473c3c32b93c0da8047785f30d78e8a024de1b57352245f9689
|
| 7 |
+
|
| 8 |
+
`timescale 1ns/1ps
|
| 9 |
+
//RAW latency 2
|
| 10 |
+
|
| 11 |
+
module myproject_fifo_w328_d4096_A
|
| 12 |
+
#(parameter
|
| 13 |
+
MEM_STYLE = "auto",
|
| 14 |
+
DATA_WIDTH = 328,
|
| 15 |
+
ADDR_WIDTH = 12,
|
| 16 |
+
DEPTH = 4096)
|
| 17 |
+
(
|
| 18 |
+
// system signal
|
| 19 |
+
input wire clk,
|
| 20 |
+
input wire reset,
|
| 21 |
+
|
| 22 |
+
// write
|
| 23 |
+
output wire if_full_n,
|
| 24 |
+
input wire if_write_ce,
|
| 25 |
+
input wire if_write,
|
| 26 |
+
input wire [DATA_WIDTH-1:0] if_din,
|
| 27 |
+
|
| 28 |
+
// read
|
| 29 |
+
output wire [ADDR_WIDTH:0] if_num_data_valid, // for FRP
|
| 30 |
+
output wire [ADDR_WIDTH:0] if_fifo_cap, // for FRP
|
| 31 |
+
|
| 32 |
+
output wire if_empty_n,
|
| 33 |
+
input wire if_read_ce,
|
| 34 |
+
input wire if_read,
|
| 35 |
+
output wire [DATA_WIDTH-1:0] if_dout
|
| 36 |
+
);
|
| 37 |
+
//------------------------Parameter----------------------
|
| 38 |
+
localparam
|
| 39 |
+
MEM_DEPTH = DEPTH - 1,
|
| 40 |
+
MEM_AWIDTH = clog2(MEM_DEPTH);
|
| 41 |
+
//------------------------Local signal-------------------
|
| 42 |
+
reg [MEM_AWIDTH-1:0] waddr;
|
| 43 |
+
reg [MEM_AWIDTH-1:0] raddr;
|
| 44 |
+
wire [MEM_AWIDTH-1:0] wnext;
|
| 45 |
+
wire [MEM_AWIDTH-1:0] rnext;
|
| 46 |
+
wire push;
|
| 47 |
+
wire pop;
|
| 48 |
+
reg [MEM_AWIDTH:0] mOutPtr;
|
| 49 |
+
reg empty_n = 1'b0;
|
| 50 |
+
reg full_n = 1'b1;
|
| 51 |
+
// has num_data_valid?
|
| 52 |
+
wire num_extra_words;//yes
|
| 53 |
+
reg [ADDR_WIDTH:0] num_data_valid; //yes
|
| 54 |
+
|
| 55 |
+
wire pop_dout;
|
| 56 |
+
reg [ADDR_WIDTH:0] num_data_cnt;
|
| 57 |
+
reg dout_vld = 1'b0;
|
| 58 |
+
|
| 59 |
+
//------------------------Instantiation------------------
|
| 60 |
+
myproject_fifo_w328_d4096_A_ram
|
| 61 |
+
#( .MEM_STYLE (MEM_STYLE),
|
| 62 |
+
.DATA_WIDTH (DATA_WIDTH),
|
| 63 |
+
.ADDR_WIDTH (MEM_AWIDTH),
|
| 64 |
+
.DEPTH (MEM_DEPTH)
|
| 65 |
+
) U_myproject_fifo_w328_d4096_A_ram (
|
| 66 |
+
.clk (clk),
|
| 67 |
+
.reset (reset),
|
| 68 |
+
.we (push),
|
| 69 |
+
.waddr (waddr),
|
| 70 |
+
.din (if_din),
|
| 71 |
+
.raddr (raddr),
|
| 72 |
+
.rden (pop),
|
| 73 |
+
.dout (if_dout)
|
| 74 |
+
);
|
| 75 |
+
|
| 76 |
+
//------------------------Task and function--------------
|
| 77 |
+
function integer clog2;
|
| 78 |
+
input integer x;
|
| 79 |
+
integer n, m;
|
| 80 |
+
begin
|
| 81 |
+
n = 1;
|
| 82 |
+
m = 2;
|
| 83 |
+
while (m < x) begin
|
| 84 |
+
n = n + 1;
|
| 85 |
+
m = m * 2;
|
| 86 |
+
end
|
| 87 |
+
clog2 = n;
|
| 88 |
+
end
|
| 89 |
+
endfunction
|
| 90 |
+
//------------------------Body---------------------------
|
| 91 |
+
// num_data_valid
|
| 92 |
+
assign if_num_data_valid = num_data_valid;
|
| 93 |
+
assign if_fifo_cap = DEPTH;
|
| 94 |
+
|
| 95 |
+
// almost full/empty
|
| 96 |
+
|
| 97 |
+
// program full/empty
|
| 98 |
+
|
| 99 |
+
assign if_full_n = full_n;
|
| 100 |
+
assign if_empty_n = dout_vld;
|
| 101 |
+
|
| 102 |
+
assign push = full_n & if_write_ce & if_write;
|
| 103 |
+
assign pop = empty_n & (pop_dout | ~dout_vld);
|
| 104 |
+
assign pop_dout = dout_vld & if_read_ce & if_read;
|
| 105 |
+
|
| 106 |
+
assign wnext = !push ? waddr :
|
| 107 |
+
(waddr == MEM_DEPTH - 1) ? 1'b0 :
|
| 108 |
+
waddr + 1'b1;
|
| 109 |
+
assign rnext = !pop ? raddr :
|
| 110 |
+
(raddr == MEM_DEPTH - 1) ? 1'b0 :
|
| 111 |
+
raddr + 1'b1;
|
| 112 |
+
|
| 113 |
+
// waddr
|
| 114 |
+
always @(posedge clk) begin
|
| 115 |
+
if (reset)
|
| 116 |
+
waddr <= {MEM_AWIDTH{1'b0}};
|
| 117 |
+
else
|
| 118 |
+
waddr <= wnext;
|
| 119 |
+
end
|
| 120 |
+
|
| 121 |
+
// raddr
|
| 122 |
+
always @(posedge clk) begin
|
| 123 |
+
if (reset)
|
| 124 |
+
raddr <= {MEM_AWIDTH{1'b0}};
|
| 125 |
+
else
|
| 126 |
+
raddr <= rnext;
|
| 127 |
+
end
|
| 128 |
+
|
| 129 |
+
// mOutPtr
|
| 130 |
+
always @(posedge clk) begin
|
| 131 |
+
if (reset)
|
| 132 |
+
mOutPtr <= {MEM_AWIDTH+1{1'b0}};
|
| 133 |
+
else if (push & ~pop)
|
| 134 |
+
mOutPtr <= mOutPtr + 1'b1;
|
| 135 |
+
else if (~push & pop)
|
| 136 |
+
mOutPtr <= mOutPtr - 1'b1;
|
| 137 |
+
end
|
| 138 |
+
|
| 139 |
+
// full_n
|
| 140 |
+
always @(posedge clk) begin
|
| 141 |
+
if (reset)
|
| 142 |
+
full_n <= 1'b1;
|
| 143 |
+
else if ((push & ~pop_dout) && (num_data_cnt == DEPTH - 1))
|
| 144 |
+
full_n <= 1'b0;
|
| 145 |
+
else if (~push & pop_dout)
|
| 146 |
+
full_n <= 1'b1;
|
| 147 |
+
end
|
| 148 |
+
|
| 149 |
+
// empty_n
|
| 150 |
+
always @(posedge clk) begin
|
| 151 |
+
if (reset)
|
| 152 |
+
empty_n <= 1'b0;
|
| 153 |
+
else if (push & ~pop)
|
| 154 |
+
empty_n <= 1'b1;
|
| 155 |
+
else if ((~push & pop) && (mOutPtr == 1))
|
| 156 |
+
empty_n <= 1'b0;
|
| 157 |
+
end
|
| 158 |
+
|
| 159 |
+
// almost_full_n
|
| 160 |
+
|
| 161 |
+
// almost_empty_n
|
| 162 |
+
|
| 163 |
+
// prog_full_n
|
| 164 |
+
|
| 165 |
+
// prog_empty_n
|
| 166 |
+
|
| 167 |
+
// num_data_cnt
|
| 168 |
+
always @(posedge clk) begin
|
| 169 |
+
if (reset)
|
| 170 |
+
num_data_cnt <= {ADDR_WIDTH+1{1'b0}};
|
| 171 |
+
else if ( push & ~pop_dout)
|
| 172 |
+
num_data_cnt <= num_data_cnt + 1'b1;
|
| 173 |
+
else if (~push & pop_dout)
|
| 174 |
+
num_data_cnt <= num_data_cnt - 1'b1;
|
| 175 |
+
end
|
| 176 |
+
|
| 177 |
+
// num_data_valid
|
| 178 |
+
assign num_extra_words = (dout_vld & ~pop_dout) ? 1 : 0;
|
| 179 |
+
|
| 180 |
+
always @(posedge clk) begin
|
| 181 |
+
if (reset)
|
| 182 |
+
num_data_valid <= {ADDR_WIDTH+1{1'b0}};
|
| 183 |
+
else if (empty_n | (dout_vld & ~pop_dout))
|
| 184 |
+
num_data_valid <= push + mOutPtr + num_extra_words;
|
| 185 |
+
else
|
| 186 |
+
num_data_valid <= num_extra_words;
|
| 187 |
+
end //
|
| 188 |
+
|
| 189 |
+
// dout_vld
|
| 190 |
+
always @(posedge clk) begin
|
| 191 |
+
if (reset)
|
| 192 |
+
dout_vld <= 1'b0;
|
| 193 |
+
else if (pop)
|
| 194 |
+
dout_vld <= 1'b1;
|
| 195 |
+
else if (pop_dout)
|
| 196 |
+
dout_vld <= 1'b0;
|
| 197 |
+
end
|
| 198 |
+
|
| 199 |
+
endmodule
|
| 200 |
+
|
| 201 |
+
|
| 202 |
+
module myproject_fifo_w328_d4096_A_ram
|
| 203 |
+
#(parameter
|
| 204 |
+
MEM_STYLE = "auto",
|
| 205 |
+
DATA_WIDTH = 328,
|
| 206 |
+
ADDR_WIDTH = 12,
|
| 207 |
+
DEPTH = 4096)
|
| 208 |
+
(
|
| 209 |
+
input wire clk,
|
| 210 |
+
input wire reset,
|
| 211 |
+
input wire we,
|
| 212 |
+
input wire [ADDR_WIDTH-1:0] waddr,
|
| 213 |
+
input wire [DATA_WIDTH-1:0] din,
|
| 214 |
+
input wire [ADDR_WIDTH-1:0] raddr,
|
| 215 |
+
input wire rden,
|
| 216 |
+
output wire [DATA_WIDTH-1:0] dout
|
| 217 |
+
);
|
| 218 |
+
|
| 219 |
+
(* ram_style = MEM_STYLE *)
|
| 220 |
+
reg [DATA_WIDTH-1:0] mem[0:DEPTH-1];
|
| 221 |
+
reg [DATA_WIDTH-1:0] mem_reg;
|
| 222 |
+
|
| 223 |
+
always @(posedge clk) begin
|
| 224 |
+
if (we)
|
| 225 |
+
mem[waddr] <= din;
|
| 226 |
+
end
|
| 227 |
+
|
| 228 |
+
always @(posedge clk) begin
|
| 229 |
+
if (reset)
|
| 230 |
+
mem_reg <= 0;
|
| 231 |
+
else if (rden)
|
| 232 |
+
mem_reg <= mem[raddr];
|
| 233 |
+
end
|
| 234 |
+
|
| 235 |
+
assign dout = mem_reg;
|
| 236 |
+
|
| 237 |
+
endmodule
|
myproject_prj/solution1/impl/verilog/myproject_fifo_w36_d4096_A.v
ADDED
|
@@ -0,0 +1,237 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// ==============================================================
|
| 2 |
+
// Generated by Vitis HLS v2024.1
|
| 3 |
+
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
| 4 |
+
// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
|
| 5 |
+
// ==============================================================
|
| 6 |
+
// 67d7842dbbe25473c3c32b93c0da8047785f30d78e8a024de1b57352245f9689
|
| 7 |
+
|
| 8 |
+
`timescale 1ns/1ps
|
| 9 |
+
//RAW latency 2
|
| 10 |
+
|
| 11 |
+
module myproject_fifo_w36_d4096_A
|
| 12 |
+
#(parameter
|
| 13 |
+
MEM_STYLE = "auto",
|
| 14 |
+
DATA_WIDTH = 36,
|
| 15 |
+
ADDR_WIDTH = 12,
|
| 16 |
+
DEPTH = 4096)
|
| 17 |
+
(
|
| 18 |
+
// system signal
|
| 19 |
+
input wire clk,
|
| 20 |
+
input wire reset,
|
| 21 |
+
|
| 22 |
+
// write
|
| 23 |
+
output wire if_full_n,
|
| 24 |
+
input wire if_write_ce,
|
| 25 |
+
input wire if_write,
|
| 26 |
+
input wire [DATA_WIDTH-1:0] if_din,
|
| 27 |
+
|
| 28 |
+
// read
|
| 29 |
+
output wire [ADDR_WIDTH:0] if_num_data_valid, // for FRP
|
| 30 |
+
output wire [ADDR_WIDTH:0] if_fifo_cap, // for FRP
|
| 31 |
+
|
| 32 |
+
output wire if_empty_n,
|
| 33 |
+
input wire if_read_ce,
|
| 34 |
+
input wire if_read,
|
| 35 |
+
output wire [DATA_WIDTH-1:0] if_dout
|
| 36 |
+
);
|
| 37 |
+
//------------------------Parameter----------------------
|
| 38 |
+
localparam
|
| 39 |
+
MEM_DEPTH = DEPTH - 1,
|
| 40 |
+
MEM_AWIDTH = clog2(MEM_DEPTH);
|
| 41 |
+
//------------------------Local signal-------------------
|
| 42 |
+
reg [MEM_AWIDTH-1:0] waddr;
|
| 43 |
+
reg [MEM_AWIDTH-1:0] raddr;
|
| 44 |
+
wire [MEM_AWIDTH-1:0] wnext;
|
| 45 |
+
wire [MEM_AWIDTH-1:0] rnext;
|
| 46 |
+
wire push;
|
| 47 |
+
wire pop;
|
| 48 |
+
reg [MEM_AWIDTH:0] mOutPtr;
|
| 49 |
+
reg empty_n = 1'b0;
|
| 50 |
+
reg full_n = 1'b1;
|
| 51 |
+
// has num_data_valid?
|
| 52 |
+
wire num_extra_words;//yes
|
| 53 |
+
reg [ADDR_WIDTH:0] num_data_valid; //yes
|
| 54 |
+
|
| 55 |
+
wire pop_dout;
|
| 56 |
+
reg [ADDR_WIDTH:0] num_data_cnt;
|
| 57 |
+
reg dout_vld = 1'b0;
|
| 58 |
+
|
| 59 |
+
//------------------------Instantiation------------------
|
| 60 |
+
myproject_fifo_w36_d4096_A_ram
|
| 61 |
+
#( .MEM_STYLE (MEM_STYLE),
|
| 62 |
+
.DATA_WIDTH (DATA_WIDTH),
|
| 63 |
+
.ADDR_WIDTH (MEM_AWIDTH),
|
| 64 |
+
.DEPTH (MEM_DEPTH)
|
| 65 |
+
) U_myproject_fifo_w36_d4096_A_ram (
|
| 66 |
+
.clk (clk),
|
| 67 |
+
.reset (reset),
|
| 68 |
+
.we (push),
|
| 69 |
+
.waddr (waddr),
|
| 70 |
+
.din (if_din),
|
| 71 |
+
.raddr (raddr),
|
| 72 |
+
.rden (pop),
|
| 73 |
+
.dout (if_dout)
|
| 74 |
+
);
|
| 75 |
+
|
| 76 |
+
//------------------------Task and function--------------
|
| 77 |
+
function integer clog2;
|
| 78 |
+
input integer x;
|
| 79 |
+
integer n, m;
|
| 80 |
+
begin
|
| 81 |
+
n = 1;
|
| 82 |
+
m = 2;
|
| 83 |
+
while (m < x) begin
|
| 84 |
+
n = n + 1;
|
| 85 |
+
m = m * 2;
|
| 86 |
+
end
|
| 87 |
+
clog2 = n;
|
| 88 |
+
end
|
| 89 |
+
endfunction
|
| 90 |
+
//------------------------Body---------------------------
|
| 91 |
+
// num_data_valid
|
| 92 |
+
assign if_num_data_valid = num_data_valid;
|
| 93 |
+
assign if_fifo_cap = DEPTH;
|
| 94 |
+
|
| 95 |
+
// almost full/empty
|
| 96 |
+
|
| 97 |
+
// program full/empty
|
| 98 |
+
|
| 99 |
+
assign if_full_n = full_n;
|
| 100 |
+
assign if_empty_n = dout_vld;
|
| 101 |
+
|
| 102 |
+
assign push = full_n & if_write_ce & if_write;
|
| 103 |
+
assign pop = empty_n & (pop_dout | ~dout_vld);
|
| 104 |
+
assign pop_dout = dout_vld & if_read_ce & if_read;
|
| 105 |
+
|
| 106 |
+
assign wnext = !push ? waddr :
|
| 107 |
+
(waddr == MEM_DEPTH - 1) ? 1'b0 :
|
| 108 |
+
waddr + 1'b1;
|
| 109 |
+
assign rnext = !pop ? raddr :
|
| 110 |
+
(raddr == MEM_DEPTH - 1) ? 1'b0 :
|
| 111 |
+
raddr + 1'b1;
|
| 112 |
+
|
| 113 |
+
// waddr
|
| 114 |
+
always @(posedge clk) begin
|
| 115 |
+
if (reset)
|
| 116 |
+
waddr <= {MEM_AWIDTH{1'b0}};
|
| 117 |
+
else
|
| 118 |
+
waddr <= wnext;
|
| 119 |
+
end
|
| 120 |
+
|
| 121 |
+
// raddr
|
| 122 |
+
always @(posedge clk) begin
|
| 123 |
+
if (reset)
|
| 124 |
+
raddr <= {MEM_AWIDTH{1'b0}};
|
| 125 |
+
else
|
| 126 |
+
raddr <= rnext;
|
| 127 |
+
end
|
| 128 |
+
|
| 129 |
+
// mOutPtr
|
| 130 |
+
always @(posedge clk) begin
|
| 131 |
+
if (reset)
|
| 132 |
+
mOutPtr <= {MEM_AWIDTH+1{1'b0}};
|
| 133 |
+
else if (push & ~pop)
|
| 134 |
+
mOutPtr <= mOutPtr + 1'b1;
|
| 135 |
+
else if (~push & pop)
|
| 136 |
+
mOutPtr <= mOutPtr - 1'b1;
|
| 137 |
+
end
|
| 138 |
+
|
| 139 |
+
// full_n
|
| 140 |
+
always @(posedge clk) begin
|
| 141 |
+
if (reset)
|
| 142 |
+
full_n <= 1'b1;
|
| 143 |
+
else if ((push & ~pop_dout) && (num_data_cnt == DEPTH - 1))
|
| 144 |
+
full_n <= 1'b0;
|
| 145 |
+
else if (~push & pop_dout)
|
| 146 |
+
full_n <= 1'b1;
|
| 147 |
+
end
|
| 148 |
+
|
| 149 |
+
// empty_n
|
| 150 |
+
always @(posedge clk) begin
|
| 151 |
+
if (reset)
|
| 152 |
+
empty_n <= 1'b0;
|
| 153 |
+
else if (push & ~pop)
|
| 154 |
+
empty_n <= 1'b1;
|
| 155 |
+
else if ((~push & pop) && (mOutPtr == 1))
|
| 156 |
+
empty_n <= 1'b0;
|
| 157 |
+
end
|
| 158 |
+
|
| 159 |
+
// almost_full_n
|
| 160 |
+
|
| 161 |
+
// almost_empty_n
|
| 162 |
+
|
| 163 |
+
// prog_full_n
|
| 164 |
+
|
| 165 |
+
// prog_empty_n
|
| 166 |
+
|
| 167 |
+
// num_data_cnt
|
| 168 |
+
always @(posedge clk) begin
|
| 169 |
+
if (reset)
|
| 170 |
+
num_data_cnt <= {ADDR_WIDTH+1{1'b0}};
|
| 171 |
+
else if ( push & ~pop_dout)
|
| 172 |
+
num_data_cnt <= num_data_cnt + 1'b1;
|
| 173 |
+
else if (~push & pop_dout)
|
| 174 |
+
num_data_cnt <= num_data_cnt - 1'b1;
|
| 175 |
+
end
|
| 176 |
+
|
| 177 |
+
// num_data_valid
|
| 178 |
+
assign num_extra_words = (dout_vld & ~pop_dout) ? 1 : 0;
|
| 179 |
+
|
| 180 |
+
always @(posedge clk) begin
|
| 181 |
+
if (reset)
|
| 182 |
+
num_data_valid <= {ADDR_WIDTH+1{1'b0}};
|
| 183 |
+
else if (empty_n | (dout_vld & ~pop_dout))
|
| 184 |
+
num_data_valid <= push + mOutPtr + num_extra_words;
|
| 185 |
+
else
|
| 186 |
+
num_data_valid <= num_extra_words;
|
| 187 |
+
end //
|
| 188 |
+
|
| 189 |
+
// dout_vld
|
| 190 |
+
always @(posedge clk) begin
|
| 191 |
+
if (reset)
|
| 192 |
+
dout_vld <= 1'b0;
|
| 193 |
+
else if (pop)
|
| 194 |
+
dout_vld <= 1'b1;
|
| 195 |
+
else if (pop_dout)
|
| 196 |
+
dout_vld <= 1'b0;
|
| 197 |
+
end
|
| 198 |
+
|
| 199 |
+
endmodule
|
| 200 |
+
|
| 201 |
+
|
| 202 |
+
module myproject_fifo_w36_d4096_A_ram
|
| 203 |
+
#(parameter
|
| 204 |
+
MEM_STYLE = "auto",
|
| 205 |
+
DATA_WIDTH = 36,
|
| 206 |
+
ADDR_WIDTH = 12,
|
| 207 |
+
DEPTH = 4096)
|
| 208 |
+
(
|
| 209 |
+
input wire clk,
|
| 210 |
+
input wire reset,
|
| 211 |
+
input wire we,
|
| 212 |
+
input wire [ADDR_WIDTH-1:0] waddr,
|
| 213 |
+
input wire [DATA_WIDTH-1:0] din,
|
| 214 |
+
input wire [ADDR_WIDTH-1:0] raddr,
|
| 215 |
+
input wire rden,
|
| 216 |
+
output wire [DATA_WIDTH-1:0] dout
|
| 217 |
+
);
|
| 218 |
+
|
| 219 |
+
(* ram_style = MEM_STYLE *)
|
| 220 |
+
reg [DATA_WIDTH-1:0] mem[0:DEPTH-1];
|
| 221 |
+
reg [DATA_WIDTH-1:0] mem_reg;
|
| 222 |
+
|
| 223 |
+
always @(posedge clk) begin
|
| 224 |
+
if (we)
|
| 225 |
+
mem[waddr] <= din;
|
| 226 |
+
end
|
| 227 |
+
|
| 228 |
+
always @(posedge clk) begin
|
| 229 |
+
if (reset)
|
| 230 |
+
mem_reg <= 0;
|
| 231 |
+
else if (rden)
|
| 232 |
+
mem_reg <= mem[raddr];
|
| 233 |
+
end
|
| 234 |
+
|
| 235 |
+
assign dout = mem_reg;
|
| 236 |
+
|
| 237 |
+
endmodule
|
myproject_prj/solution1/impl/verilog/myproject_fifo_w384_d4096_A.v
ADDED
|
@@ -0,0 +1,237 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// ==============================================================
|
| 2 |
+
// Generated by Vitis HLS v2024.1
|
| 3 |
+
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
| 4 |
+
// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
|
| 5 |
+
// ==============================================================
|
| 6 |
+
// 67d7842dbbe25473c3c32b93c0da8047785f30d78e8a024de1b57352245f9689
|
| 7 |
+
|
| 8 |
+
`timescale 1ns/1ps
|
| 9 |
+
//RAW latency 2
|
| 10 |
+
|
| 11 |
+
module myproject_fifo_w384_d4096_A
|
| 12 |
+
#(parameter
|
| 13 |
+
MEM_STYLE = "auto",
|
| 14 |
+
DATA_WIDTH = 384,
|
| 15 |
+
ADDR_WIDTH = 12,
|
| 16 |
+
DEPTH = 4096)
|
| 17 |
+
(
|
| 18 |
+
// system signal
|
| 19 |
+
input wire clk,
|
| 20 |
+
input wire reset,
|
| 21 |
+
|
| 22 |
+
// write
|
| 23 |
+
output wire if_full_n,
|
| 24 |
+
input wire if_write_ce,
|
| 25 |
+
input wire if_write,
|
| 26 |
+
input wire [DATA_WIDTH-1:0] if_din,
|
| 27 |
+
|
| 28 |
+
// read
|
| 29 |
+
output wire [ADDR_WIDTH:0] if_num_data_valid, // for FRP
|
| 30 |
+
output wire [ADDR_WIDTH:0] if_fifo_cap, // for FRP
|
| 31 |
+
|
| 32 |
+
output wire if_empty_n,
|
| 33 |
+
input wire if_read_ce,
|
| 34 |
+
input wire if_read,
|
| 35 |
+
output wire [DATA_WIDTH-1:0] if_dout
|
| 36 |
+
);
|
| 37 |
+
//------------------------Parameter----------------------
|
| 38 |
+
localparam
|
| 39 |
+
MEM_DEPTH = DEPTH - 1,
|
| 40 |
+
MEM_AWIDTH = clog2(MEM_DEPTH);
|
| 41 |
+
//------------------------Local signal-------------------
|
| 42 |
+
reg [MEM_AWIDTH-1:0] waddr;
|
| 43 |
+
reg [MEM_AWIDTH-1:0] raddr;
|
| 44 |
+
wire [MEM_AWIDTH-1:0] wnext;
|
| 45 |
+
wire [MEM_AWIDTH-1:0] rnext;
|
| 46 |
+
wire push;
|
| 47 |
+
wire pop;
|
| 48 |
+
reg [MEM_AWIDTH:0] mOutPtr;
|
| 49 |
+
reg empty_n = 1'b0;
|
| 50 |
+
reg full_n = 1'b1;
|
| 51 |
+
// has num_data_valid?
|
| 52 |
+
wire num_extra_words;//yes
|
| 53 |
+
reg [ADDR_WIDTH:0] num_data_valid; //yes
|
| 54 |
+
|
| 55 |
+
wire pop_dout;
|
| 56 |
+
reg [ADDR_WIDTH:0] num_data_cnt;
|
| 57 |
+
reg dout_vld = 1'b0;
|
| 58 |
+
|
| 59 |
+
//------------------------Instantiation------------------
|
| 60 |
+
myproject_fifo_w384_d4096_A_ram
|
| 61 |
+
#( .MEM_STYLE (MEM_STYLE),
|
| 62 |
+
.DATA_WIDTH (DATA_WIDTH),
|
| 63 |
+
.ADDR_WIDTH (MEM_AWIDTH),
|
| 64 |
+
.DEPTH (MEM_DEPTH)
|
| 65 |
+
) U_myproject_fifo_w384_d4096_A_ram (
|
| 66 |
+
.clk (clk),
|
| 67 |
+
.reset (reset),
|
| 68 |
+
.we (push),
|
| 69 |
+
.waddr (waddr),
|
| 70 |
+
.din (if_din),
|
| 71 |
+
.raddr (raddr),
|
| 72 |
+
.rden (pop),
|
| 73 |
+
.dout (if_dout)
|
| 74 |
+
);
|
| 75 |
+
|
| 76 |
+
//------------------------Task and function--------------
|
| 77 |
+
function integer clog2;
|
| 78 |
+
input integer x;
|
| 79 |
+
integer n, m;
|
| 80 |
+
begin
|
| 81 |
+
n = 1;
|
| 82 |
+
m = 2;
|
| 83 |
+
while (m < x) begin
|
| 84 |
+
n = n + 1;
|
| 85 |
+
m = m * 2;
|
| 86 |
+
end
|
| 87 |
+
clog2 = n;
|
| 88 |
+
end
|
| 89 |
+
endfunction
|
| 90 |
+
//------------------------Body---------------------------
|
| 91 |
+
// num_data_valid
|
| 92 |
+
assign if_num_data_valid = num_data_valid;
|
| 93 |
+
assign if_fifo_cap = DEPTH;
|
| 94 |
+
|
| 95 |
+
// almost full/empty
|
| 96 |
+
|
| 97 |
+
// program full/empty
|
| 98 |
+
|
| 99 |
+
assign if_full_n = full_n;
|
| 100 |
+
assign if_empty_n = dout_vld;
|
| 101 |
+
|
| 102 |
+
assign push = full_n & if_write_ce & if_write;
|
| 103 |
+
assign pop = empty_n & (pop_dout | ~dout_vld);
|
| 104 |
+
assign pop_dout = dout_vld & if_read_ce & if_read;
|
| 105 |
+
|
| 106 |
+
assign wnext = !push ? waddr :
|
| 107 |
+
(waddr == MEM_DEPTH - 1) ? 1'b0 :
|
| 108 |
+
waddr + 1'b1;
|
| 109 |
+
assign rnext = !pop ? raddr :
|
| 110 |
+
(raddr == MEM_DEPTH - 1) ? 1'b0 :
|
| 111 |
+
raddr + 1'b1;
|
| 112 |
+
|
| 113 |
+
// waddr
|
| 114 |
+
always @(posedge clk) begin
|
| 115 |
+
if (reset)
|
| 116 |
+
waddr <= {MEM_AWIDTH{1'b0}};
|
| 117 |
+
else
|
| 118 |
+
waddr <= wnext;
|
| 119 |
+
end
|
| 120 |
+
|
| 121 |
+
// raddr
|
| 122 |
+
always @(posedge clk) begin
|
| 123 |
+
if (reset)
|
| 124 |
+
raddr <= {MEM_AWIDTH{1'b0}};
|
| 125 |
+
else
|
| 126 |
+
raddr <= rnext;
|
| 127 |
+
end
|
| 128 |
+
|
| 129 |
+
// mOutPtr
|
| 130 |
+
always @(posedge clk) begin
|
| 131 |
+
if (reset)
|
| 132 |
+
mOutPtr <= {MEM_AWIDTH+1{1'b0}};
|
| 133 |
+
else if (push & ~pop)
|
| 134 |
+
mOutPtr <= mOutPtr + 1'b1;
|
| 135 |
+
else if (~push & pop)
|
| 136 |
+
mOutPtr <= mOutPtr - 1'b1;
|
| 137 |
+
end
|
| 138 |
+
|
| 139 |
+
// full_n
|
| 140 |
+
always @(posedge clk) begin
|
| 141 |
+
if (reset)
|
| 142 |
+
full_n <= 1'b1;
|
| 143 |
+
else if ((push & ~pop_dout) && (num_data_cnt == DEPTH - 1))
|
| 144 |
+
full_n <= 1'b0;
|
| 145 |
+
else if (~push & pop_dout)
|
| 146 |
+
full_n <= 1'b1;
|
| 147 |
+
end
|
| 148 |
+
|
| 149 |
+
// empty_n
|
| 150 |
+
always @(posedge clk) begin
|
| 151 |
+
if (reset)
|
| 152 |
+
empty_n <= 1'b0;
|
| 153 |
+
else if (push & ~pop)
|
| 154 |
+
empty_n <= 1'b1;
|
| 155 |
+
else if ((~push & pop) && (mOutPtr == 1))
|
| 156 |
+
empty_n <= 1'b0;
|
| 157 |
+
end
|
| 158 |
+
|
| 159 |
+
// almost_full_n
|
| 160 |
+
|
| 161 |
+
// almost_empty_n
|
| 162 |
+
|
| 163 |
+
// prog_full_n
|
| 164 |
+
|
| 165 |
+
// prog_empty_n
|
| 166 |
+
|
| 167 |
+
// num_data_cnt
|
| 168 |
+
always @(posedge clk) begin
|
| 169 |
+
if (reset)
|
| 170 |
+
num_data_cnt <= {ADDR_WIDTH+1{1'b0}};
|
| 171 |
+
else if ( push & ~pop_dout)
|
| 172 |
+
num_data_cnt <= num_data_cnt + 1'b1;
|
| 173 |
+
else if (~push & pop_dout)
|
| 174 |
+
num_data_cnt <= num_data_cnt - 1'b1;
|
| 175 |
+
end
|
| 176 |
+
|
| 177 |
+
// num_data_valid
|
| 178 |
+
assign num_extra_words = (dout_vld & ~pop_dout) ? 1 : 0;
|
| 179 |
+
|
| 180 |
+
always @(posedge clk) begin
|
| 181 |
+
if (reset)
|
| 182 |
+
num_data_valid <= {ADDR_WIDTH+1{1'b0}};
|
| 183 |
+
else if (empty_n | (dout_vld & ~pop_dout))
|
| 184 |
+
num_data_valid <= push + mOutPtr + num_extra_words;
|
| 185 |
+
else
|
| 186 |
+
num_data_valid <= num_extra_words;
|
| 187 |
+
end //
|
| 188 |
+
|
| 189 |
+
// dout_vld
|
| 190 |
+
always @(posedge clk) begin
|
| 191 |
+
if (reset)
|
| 192 |
+
dout_vld <= 1'b0;
|
| 193 |
+
else if (pop)
|
| 194 |
+
dout_vld <= 1'b1;
|
| 195 |
+
else if (pop_dout)
|
| 196 |
+
dout_vld <= 1'b0;
|
| 197 |
+
end
|
| 198 |
+
|
| 199 |
+
endmodule
|
| 200 |
+
|
| 201 |
+
|
| 202 |
+
module myproject_fifo_w384_d4096_A_ram
|
| 203 |
+
#(parameter
|
| 204 |
+
MEM_STYLE = "auto",
|
| 205 |
+
DATA_WIDTH = 384,
|
| 206 |
+
ADDR_WIDTH = 12,
|
| 207 |
+
DEPTH = 4096)
|
| 208 |
+
(
|
| 209 |
+
input wire clk,
|
| 210 |
+
input wire reset,
|
| 211 |
+
input wire we,
|
| 212 |
+
input wire [ADDR_WIDTH-1:0] waddr,
|
| 213 |
+
input wire [DATA_WIDTH-1:0] din,
|
| 214 |
+
input wire [ADDR_WIDTH-1:0] raddr,
|
| 215 |
+
input wire rden,
|
| 216 |
+
output wire [DATA_WIDTH-1:0] dout
|
| 217 |
+
);
|
| 218 |
+
|
| 219 |
+
(* ram_style = MEM_STYLE *)
|
| 220 |
+
reg [DATA_WIDTH-1:0] mem[0:DEPTH-1];
|
| 221 |
+
reg [DATA_WIDTH-1:0] mem_reg;
|
| 222 |
+
|
| 223 |
+
always @(posedge clk) begin
|
| 224 |
+
if (we)
|
| 225 |
+
mem[waddr] <= din;
|
| 226 |
+
end
|
| 227 |
+
|
| 228 |
+
always @(posedge clk) begin
|
| 229 |
+
if (reset)
|
| 230 |
+
mem_reg <= 0;
|
| 231 |
+
else if (rden)
|
| 232 |
+
mem_reg <= mem[raddr];
|
| 233 |
+
end
|
| 234 |
+
|
| 235 |
+
assign dout = mem_reg;
|
| 236 |
+
|
| 237 |
+
endmodule
|
myproject_prj/solution1/impl/verilog/myproject_fifo_w512_d256_A.v
ADDED
|
@@ -0,0 +1,237 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// ==============================================================
|
| 2 |
+
// Generated by Vitis HLS v2024.1
|
| 3 |
+
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
| 4 |
+
// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
|
| 5 |
+
// ==============================================================
|
| 6 |
+
// 67d7842dbbe25473c3c32b93c0da8047785f30d78e8a024de1b57352245f9689
|
| 7 |
+
|
| 8 |
+
`timescale 1ns/1ps
|
| 9 |
+
//RAW latency 2
|
| 10 |
+
|
| 11 |
+
module myproject_fifo_w512_d256_A
|
| 12 |
+
#(parameter
|
| 13 |
+
MEM_STYLE = "auto",
|
| 14 |
+
DATA_WIDTH = 512,
|
| 15 |
+
ADDR_WIDTH = 8,
|
| 16 |
+
DEPTH = 256)
|
| 17 |
+
(
|
| 18 |
+
// system signal
|
| 19 |
+
input wire clk,
|
| 20 |
+
input wire reset,
|
| 21 |
+
|
| 22 |
+
// write
|
| 23 |
+
output wire if_full_n,
|
| 24 |
+
input wire if_write_ce,
|
| 25 |
+
input wire if_write,
|
| 26 |
+
input wire [DATA_WIDTH-1:0] if_din,
|
| 27 |
+
|
| 28 |
+
// read
|
| 29 |
+
output wire [ADDR_WIDTH:0] if_num_data_valid, // for FRP
|
| 30 |
+
output wire [ADDR_WIDTH:0] if_fifo_cap, // for FRP
|
| 31 |
+
|
| 32 |
+
output wire if_empty_n,
|
| 33 |
+
input wire if_read_ce,
|
| 34 |
+
input wire if_read,
|
| 35 |
+
output wire [DATA_WIDTH-1:0] if_dout
|
| 36 |
+
);
|
| 37 |
+
//------------------------Parameter----------------------
|
| 38 |
+
localparam
|
| 39 |
+
MEM_DEPTH = DEPTH - 1,
|
| 40 |
+
MEM_AWIDTH = clog2(MEM_DEPTH);
|
| 41 |
+
//------------------------Local signal-------------------
|
| 42 |
+
reg [MEM_AWIDTH-1:0] waddr;
|
| 43 |
+
reg [MEM_AWIDTH-1:0] raddr;
|
| 44 |
+
wire [MEM_AWIDTH-1:0] wnext;
|
| 45 |
+
wire [MEM_AWIDTH-1:0] rnext;
|
| 46 |
+
wire push;
|
| 47 |
+
wire pop;
|
| 48 |
+
reg [MEM_AWIDTH:0] mOutPtr;
|
| 49 |
+
reg empty_n = 1'b0;
|
| 50 |
+
reg full_n = 1'b1;
|
| 51 |
+
// has num_data_valid?
|
| 52 |
+
wire num_extra_words;//yes
|
| 53 |
+
reg [ADDR_WIDTH:0] num_data_valid; //yes
|
| 54 |
+
|
| 55 |
+
wire pop_dout;
|
| 56 |
+
reg [ADDR_WIDTH:0] num_data_cnt;
|
| 57 |
+
reg dout_vld = 1'b0;
|
| 58 |
+
|
| 59 |
+
//------------------------Instantiation------------------
|
| 60 |
+
myproject_fifo_w512_d256_A_ram
|
| 61 |
+
#( .MEM_STYLE (MEM_STYLE),
|
| 62 |
+
.DATA_WIDTH (DATA_WIDTH),
|
| 63 |
+
.ADDR_WIDTH (MEM_AWIDTH),
|
| 64 |
+
.DEPTH (MEM_DEPTH)
|
| 65 |
+
) U_myproject_fifo_w512_d256_A_ram (
|
| 66 |
+
.clk (clk),
|
| 67 |
+
.reset (reset),
|
| 68 |
+
.we (push),
|
| 69 |
+
.waddr (waddr),
|
| 70 |
+
.din (if_din),
|
| 71 |
+
.raddr (raddr),
|
| 72 |
+
.rden (pop),
|
| 73 |
+
.dout (if_dout)
|
| 74 |
+
);
|
| 75 |
+
|
| 76 |
+
//------------------------Task and function--------------
|
| 77 |
+
function integer clog2;
|
| 78 |
+
input integer x;
|
| 79 |
+
integer n, m;
|
| 80 |
+
begin
|
| 81 |
+
n = 1;
|
| 82 |
+
m = 2;
|
| 83 |
+
while (m < x) begin
|
| 84 |
+
n = n + 1;
|
| 85 |
+
m = m * 2;
|
| 86 |
+
end
|
| 87 |
+
clog2 = n;
|
| 88 |
+
end
|
| 89 |
+
endfunction
|
| 90 |
+
//------------------------Body---------------------------
|
| 91 |
+
// num_data_valid
|
| 92 |
+
assign if_num_data_valid = num_data_valid;
|
| 93 |
+
assign if_fifo_cap = DEPTH;
|
| 94 |
+
|
| 95 |
+
// almost full/empty
|
| 96 |
+
|
| 97 |
+
// program full/empty
|
| 98 |
+
|
| 99 |
+
assign if_full_n = full_n;
|
| 100 |
+
assign if_empty_n = dout_vld;
|
| 101 |
+
|
| 102 |
+
assign push = full_n & if_write_ce & if_write;
|
| 103 |
+
assign pop = empty_n & (pop_dout | ~dout_vld);
|
| 104 |
+
assign pop_dout = dout_vld & if_read_ce & if_read;
|
| 105 |
+
|
| 106 |
+
assign wnext = !push ? waddr :
|
| 107 |
+
(waddr == MEM_DEPTH - 1) ? 1'b0 :
|
| 108 |
+
waddr + 1'b1;
|
| 109 |
+
assign rnext = !pop ? raddr :
|
| 110 |
+
(raddr == MEM_DEPTH - 1) ? 1'b0 :
|
| 111 |
+
raddr + 1'b1;
|
| 112 |
+
|
| 113 |
+
// waddr
|
| 114 |
+
always @(posedge clk) begin
|
| 115 |
+
if (reset)
|
| 116 |
+
waddr <= {MEM_AWIDTH{1'b0}};
|
| 117 |
+
else
|
| 118 |
+
waddr <= wnext;
|
| 119 |
+
end
|
| 120 |
+
|
| 121 |
+
// raddr
|
| 122 |
+
always @(posedge clk) begin
|
| 123 |
+
if (reset)
|
| 124 |
+
raddr <= {MEM_AWIDTH{1'b0}};
|
| 125 |
+
else
|
| 126 |
+
raddr <= rnext;
|
| 127 |
+
end
|
| 128 |
+
|
| 129 |
+
// mOutPtr
|
| 130 |
+
always @(posedge clk) begin
|
| 131 |
+
if (reset)
|
| 132 |
+
mOutPtr <= {MEM_AWIDTH+1{1'b0}};
|
| 133 |
+
else if (push & ~pop)
|
| 134 |
+
mOutPtr <= mOutPtr + 1'b1;
|
| 135 |
+
else if (~push & pop)
|
| 136 |
+
mOutPtr <= mOutPtr - 1'b1;
|
| 137 |
+
end
|
| 138 |
+
|
| 139 |
+
// full_n
|
| 140 |
+
always @(posedge clk) begin
|
| 141 |
+
if (reset)
|
| 142 |
+
full_n <= 1'b1;
|
| 143 |
+
else if ((push & ~pop_dout) && (num_data_cnt == DEPTH - 1))
|
| 144 |
+
full_n <= 1'b0;
|
| 145 |
+
else if (~push & pop_dout)
|
| 146 |
+
full_n <= 1'b1;
|
| 147 |
+
end
|
| 148 |
+
|
| 149 |
+
// empty_n
|
| 150 |
+
always @(posedge clk) begin
|
| 151 |
+
if (reset)
|
| 152 |
+
empty_n <= 1'b0;
|
| 153 |
+
else if (push & ~pop)
|
| 154 |
+
empty_n <= 1'b1;
|
| 155 |
+
else if ((~push & pop) && (mOutPtr == 1))
|
| 156 |
+
empty_n <= 1'b0;
|
| 157 |
+
end
|
| 158 |
+
|
| 159 |
+
// almost_full_n
|
| 160 |
+
|
| 161 |
+
// almost_empty_n
|
| 162 |
+
|
| 163 |
+
// prog_full_n
|
| 164 |
+
|
| 165 |
+
// prog_empty_n
|
| 166 |
+
|
| 167 |
+
// num_data_cnt
|
| 168 |
+
always @(posedge clk) begin
|
| 169 |
+
if (reset)
|
| 170 |
+
num_data_cnt <= {ADDR_WIDTH+1{1'b0}};
|
| 171 |
+
else if ( push & ~pop_dout)
|
| 172 |
+
num_data_cnt <= num_data_cnt + 1'b1;
|
| 173 |
+
else if (~push & pop_dout)
|
| 174 |
+
num_data_cnt <= num_data_cnt - 1'b1;
|
| 175 |
+
end
|
| 176 |
+
|
| 177 |
+
// num_data_valid
|
| 178 |
+
assign num_extra_words = (dout_vld & ~pop_dout) ? 1 : 0;
|
| 179 |
+
|
| 180 |
+
always @(posedge clk) begin
|
| 181 |
+
if (reset)
|
| 182 |
+
num_data_valid <= {ADDR_WIDTH+1{1'b0}};
|
| 183 |
+
else if (empty_n | (dout_vld & ~pop_dout))
|
| 184 |
+
num_data_valid <= push + mOutPtr + num_extra_words;
|
| 185 |
+
else
|
| 186 |
+
num_data_valid <= num_extra_words;
|
| 187 |
+
end //
|
| 188 |
+
|
| 189 |
+
// dout_vld
|
| 190 |
+
always @(posedge clk) begin
|
| 191 |
+
if (reset)
|
| 192 |
+
dout_vld <= 1'b0;
|
| 193 |
+
else if (pop)
|
| 194 |
+
dout_vld <= 1'b1;
|
| 195 |
+
else if (pop_dout)
|
| 196 |
+
dout_vld <= 1'b0;
|
| 197 |
+
end
|
| 198 |
+
|
| 199 |
+
endmodule
|
| 200 |
+
|
| 201 |
+
|
| 202 |
+
module myproject_fifo_w512_d256_A_ram
|
| 203 |
+
#(parameter
|
| 204 |
+
MEM_STYLE = "auto",
|
| 205 |
+
DATA_WIDTH = 512,
|
| 206 |
+
ADDR_WIDTH = 8,
|
| 207 |
+
DEPTH = 256)
|
| 208 |
+
(
|
| 209 |
+
input wire clk,
|
| 210 |
+
input wire reset,
|
| 211 |
+
input wire we,
|
| 212 |
+
input wire [ADDR_WIDTH-1:0] waddr,
|
| 213 |
+
input wire [DATA_WIDTH-1:0] din,
|
| 214 |
+
input wire [ADDR_WIDTH-1:0] raddr,
|
| 215 |
+
input wire rden,
|
| 216 |
+
output wire [DATA_WIDTH-1:0] dout
|
| 217 |
+
);
|
| 218 |
+
|
| 219 |
+
(* ram_style = MEM_STYLE *)
|
| 220 |
+
reg [DATA_WIDTH-1:0] mem[0:DEPTH-1];
|
| 221 |
+
reg [DATA_WIDTH-1:0] mem_reg;
|
| 222 |
+
|
| 223 |
+
always @(posedge clk) begin
|
| 224 |
+
if (we)
|
| 225 |
+
mem[waddr] <= din;
|
| 226 |
+
end
|
| 227 |
+
|
| 228 |
+
always @(posedge clk) begin
|
| 229 |
+
if (reset)
|
| 230 |
+
mem_reg <= 0;
|
| 231 |
+
else if (rden)
|
| 232 |
+
mem_reg <= mem[raddr];
|
| 233 |
+
end
|
| 234 |
+
|
| 235 |
+
assign dout = mem_reg;
|
| 236 |
+
|
| 237 |
+
endmodule
|
myproject_prj/solution1/impl/verilog/myproject_fifo_w768_d1024_A.v
ADDED
|
@@ -0,0 +1,237 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// ==============================================================
|
| 2 |
+
// Generated by Vitis HLS v2024.1
|
| 3 |
+
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
| 4 |
+
// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
|
| 5 |
+
// ==============================================================
|
| 6 |
+
// 67d7842dbbe25473c3c32b93c0da8047785f30d78e8a024de1b57352245f9689
|
| 7 |
+
|
| 8 |
+
`timescale 1ns/1ps
|
| 9 |
+
//RAW latency 2
|
| 10 |
+
|
| 11 |
+
module myproject_fifo_w768_d1024_A
|
| 12 |
+
#(parameter
|
| 13 |
+
MEM_STYLE = "auto",
|
| 14 |
+
DATA_WIDTH = 768,
|
| 15 |
+
ADDR_WIDTH = 10,
|
| 16 |
+
DEPTH = 1024)
|
| 17 |
+
(
|
| 18 |
+
// system signal
|
| 19 |
+
input wire clk,
|
| 20 |
+
input wire reset,
|
| 21 |
+
|
| 22 |
+
// write
|
| 23 |
+
output wire if_full_n,
|
| 24 |
+
input wire if_write_ce,
|
| 25 |
+
input wire if_write,
|
| 26 |
+
input wire [DATA_WIDTH-1:0] if_din,
|
| 27 |
+
|
| 28 |
+
// read
|
| 29 |
+
output wire [ADDR_WIDTH:0] if_num_data_valid, // for FRP
|
| 30 |
+
output wire [ADDR_WIDTH:0] if_fifo_cap, // for FRP
|
| 31 |
+
|
| 32 |
+
output wire if_empty_n,
|
| 33 |
+
input wire if_read_ce,
|
| 34 |
+
input wire if_read,
|
| 35 |
+
output wire [DATA_WIDTH-1:0] if_dout
|
| 36 |
+
);
|
| 37 |
+
//------------------------Parameter----------------------
|
| 38 |
+
localparam
|
| 39 |
+
MEM_DEPTH = DEPTH - 1,
|
| 40 |
+
MEM_AWIDTH = clog2(MEM_DEPTH);
|
| 41 |
+
//------------------------Local signal-------------------
|
| 42 |
+
reg [MEM_AWIDTH-1:0] waddr;
|
| 43 |
+
reg [MEM_AWIDTH-1:0] raddr;
|
| 44 |
+
wire [MEM_AWIDTH-1:0] wnext;
|
| 45 |
+
wire [MEM_AWIDTH-1:0] rnext;
|
| 46 |
+
wire push;
|
| 47 |
+
wire pop;
|
| 48 |
+
reg [MEM_AWIDTH:0] mOutPtr;
|
| 49 |
+
reg empty_n = 1'b0;
|
| 50 |
+
reg full_n = 1'b1;
|
| 51 |
+
// has num_data_valid?
|
| 52 |
+
wire num_extra_words;//yes
|
| 53 |
+
reg [ADDR_WIDTH:0] num_data_valid; //yes
|
| 54 |
+
|
| 55 |
+
wire pop_dout;
|
| 56 |
+
reg [ADDR_WIDTH:0] num_data_cnt;
|
| 57 |
+
reg dout_vld = 1'b0;
|
| 58 |
+
|
| 59 |
+
//------------------------Instantiation------------------
|
| 60 |
+
myproject_fifo_w768_d1024_A_ram
|
| 61 |
+
#( .MEM_STYLE (MEM_STYLE),
|
| 62 |
+
.DATA_WIDTH (DATA_WIDTH),
|
| 63 |
+
.ADDR_WIDTH (MEM_AWIDTH),
|
| 64 |
+
.DEPTH (MEM_DEPTH)
|
| 65 |
+
) U_myproject_fifo_w768_d1024_A_ram (
|
| 66 |
+
.clk (clk),
|
| 67 |
+
.reset (reset),
|
| 68 |
+
.we (push),
|
| 69 |
+
.waddr (waddr),
|
| 70 |
+
.din (if_din),
|
| 71 |
+
.raddr (raddr),
|
| 72 |
+
.rden (pop),
|
| 73 |
+
.dout (if_dout)
|
| 74 |
+
);
|
| 75 |
+
|
| 76 |
+
//------------------------Task and function--------------
|
| 77 |
+
function integer clog2;
|
| 78 |
+
input integer x;
|
| 79 |
+
integer n, m;
|
| 80 |
+
begin
|
| 81 |
+
n = 1;
|
| 82 |
+
m = 2;
|
| 83 |
+
while (m < x) begin
|
| 84 |
+
n = n + 1;
|
| 85 |
+
m = m * 2;
|
| 86 |
+
end
|
| 87 |
+
clog2 = n;
|
| 88 |
+
end
|
| 89 |
+
endfunction
|
| 90 |
+
//------------------------Body---------------------------
|
| 91 |
+
// num_data_valid
|
| 92 |
+
assign if_num_data_valid = num_data_valid;
|
| 93 |
+
assign if_fifo_cap = DEPTH;
|
| 94 |
+
|
| 95 |
+
// almost full/empty
|
| 96 |
+
|
| 97 |
+
// program full/empty
|
| 98 |
+
|
| 99 |
+
assign if_full_n = full_n;
|
| 100 |
+
assign if_empty_n = dout_vld;
|
| 101 |
+
|
| 102 |
+
assign push = full_n & if_write_ce & if_write;
|
| 103 |
+
assign pop = empty_n & (pop_dout | ~dout_vld);
|
| 104 |
+
assign pop_dout = dout_vld & if_read_ce & if_read;
|
| 105 |
+
|
| 106 |
+
assign wnext = !push ? waddr :
|
| 107 |
+
(waddr == MEM_DEPTH - 1) ? 1'b0 :
|
| 108 |
+
waddr + 1'b1;
|
| 109 |
+
assign rnext = !pop ? raddr :
|
| 110 |
+
(raddr == MEM_DEPTH - 1) ? 1'b0 :
|
| 111 |
+
raddr + 1'b1;
|
| 112 |
+
|
| 113 |
+
// waddr
|
| 114 |
+
always @(posedge clk) begin
|
| 115 |
+
if (reset)
|
| 116 |
+
waddr <= {MEM_AWIDTH{1'b0}};
|
| 117 |
+
else
|
| 118 |
+
waddr <= wnext;
|
| 119 |
+
end
|
| 120 |
+
|
| 121 |
+
// raddr
|
| 122 |
+
always @(posedge clk) begin
|
| 123 |
+
if (reset)
|
| 124 |
+
raddr <= {MEM_AWIDTH{1'b0}};
|
| 125 |
+
else
|
| 126 |
+
raddr <= rnext;
|
| 127 |
+
end
|
| 128 |
+
|
| 129 |
+
// mOutPtr
|
| 130 |
+
always @(posedge clk) begin
|
| 131 |
+
if (reset)
|
| 132 |
+
mOutPtr <= {MEM_AWIDTH+1{1'b0}};
|
| 133 |
+
else if (push & ~pop)
|
| 134 |
+
mOutPtr <= mOutPtr + 1'b1;
|
| 135 |
+
else if (~push & pop)
|
| 136 |
+
mOutPtr <= mOutPtr - 1'b1;
|
| 137 |
+
end
|
| 138 |
+
|
| 139 |
+
// full_n
|
| 140 |
+
always @(posedge clk) begin
|
| 141 |
+
if (reset)
|
| 142 |
+
full_n <= 1'b1;
|
| 143 |
+
else if ((push & ~pop_dout) && (num_data_cnt == DEPTH - 1))
|
| 144 |
+
full_n <= 1'b0;
|
| 145 |
+
else if (~push & pop_dout)
|
| 146 |
+
full_n <= 1'b1;
|
| 147 |
+
end
|
| 148 |
+
|
| 149 |
+
// empty_n
|
| 150 |
+
always @(posedge clk) begin
|
| 151 |
+
if (reset)
|
| 152 |
+
empty_n <= 1'b0;
|
| 153 |
+
else if (push & ~pop)
|
| 154 |
+
empty_n <= 1'b1;
|
| 155 |
+
else if ((~push & pop) && (mOutPtr == 1))
|
| 156 |
+
empty_n <= 1'b0;
|
| 157 |
+
end
|
| 158 |
+
|
| 159 |
+
// almost_full_n
|
| 160 |
+
|
| 161 |
+
// almost_empty_n
|
| 162 |
+
|
| 163 |
+
// prog_full_n
|
| 164 |
+
|
| 165 |
+
// prog_empty_n
|
| 166 |
+
|
| 167 |
+
// num_data_cnt
|
| 168 |
+
always @(posedge clk) begin
|
| 169 |
+
if (reset)
|
| 170 |
+
num_data_cnt <= {ADDR_WIDTH+1{1'b0}};
|
| 171 |
+
else if ( push & ~pop_dout)
|
| 172 |
+
num_data_cnt <= num_data_cnt + 1'b1;
|
| 173 |
+
else if (~push & pop_dout)
|
| 174 |
+
num_data_cnt <= num_data_cnt - 1'b1;
|
| 175 |
+
end
|
| 176 |
+
|
| 177 |
+
// num_data_valid
|
| 178 |
+
assign num_extra_words = (dout_vld & ~pop_dout) ? 1 : 0;
|
| 179 |
+
|
| 180 |
+
always @(posedge clk) begin
|
| 181 |
+
if (reset)
|
| 182 |
+
num_data_valid <= {ADDR_WIDTH+1{1'b0}};
|
| 183 |
+
else if (empty_n | (dout_vld & ~pop_dout))
|
| 184 |
+
num_data_valid <= push + mOutPtr + num_extra_words;
|
| 185 |
+
else
|
| 186 |
+
num_data_valid <= num_extra_words;
|
| 187 |
+
end //
|
| 188 |
+
|
| 189 |
+
// dout_vld
|
| 190 |
+
always @(posedge clk) begin
|
| 191 |
+
if (reset)
|
| 192 |
+
dout_vld <= 1'b0;
|
| 193 |
+
else if (pop)
|
| 194 |
+
dout_vld <= 1'b1;
|
| 195 |
+
else if (pop_dout)
|
| 196 |
+
dout_vld <= 1'b0;
|
| 197 |
+
end
|
| 198 |
+
|
| 199 |
+
endmodule
|
| 200 |
+
|
| 201 |
+
|
| 202 |
+
module myproject_fifo_w768_d1024_A_ram
|
| 203 |
+
#(parameter
|
| 204 |
+
MEM_STYLE = "auto",
|
| 205 |
+
DATA_WIDTH = 768,
|
| 206 |
+
ADDR_WIDTH = 10,
|
| 207 |
+
DEPTH = 1024)
|
| 208 |
+
(
|
| 209 |
+
input wire clk,
|
| 210 |
+
input wire reset,
|
| 211 |
+
input wire we,
|
| 212 |
+
input wire [ADDR_WIDTH-1:0] waddr,
|
| 213 |
+
input wire [DATA_WIDTH-1:0] din,
|
| 214 |
+
input wire [ADDR_WIDTH-1:0] raddr,
|
| 215 |
+
input wire rden,
|
| 216 |
+
output wire [DATA_WIDTH-1:0] dout
|
| 217 |
+
);
|
| 218 |
+
|
| 219 |
+
(* ram_style = MEM_STYLE *)
|
| 220 |
+
reg [DATA_WIDTH-1:0] mem[0:DEPTH-1];
|
| 221 |
+
reg [DATA_WIDTH-1:0] mem_reg;
|
| 222 |
+
|
| 223 |
+
always @(posedge clk) begin
|
| 224 |
+
if (we)
|
| 225 |
+
mem[waddr] <= din;
|
| 226 |
+
end
|
| 227 |
+
|
| 228 |
+
always @(posedge clk) begin
|
| 229 |
+
if (reset)
|
| 230 |
+
mem_reg <= 0;
|
| 231 |
+
else if (rden)
|
| 232 |
+
mem_reg <= mem[raddr];
|
| 233 |
+
end
|
| 234 |
+
|
| 235 |
+
assign dout = mem_reg;
|
| 236 |
+
|
| 237 |
+
endmodule
|
myproject_prj/solution1/impl/verilog/myproject_flow_control_loop_pipe_no_ap_cont.v
ADDED
|
@@ -0,0 +1,104 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// ==============================================================
|
| 2 |
+
// Vitis HLS - High-Level Synthesis from C, C++ and OpenCL v2024.1 (64-bit)
|
| 3 |
+
// Tool Version Limit: 2024.05
|
| 4 |
+
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
| 5 |
+
// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
|
| 6 |
+
//
|
| 7 |
+
// ==============================================================
|
| 8 |
+
|
| 9 |
+
`timescale 1 ns / 1 ps
|
| 10 |
+
|
| 11 |
+
module myproject_flow_control_loop_pipe_no_ap_cont(
|
| 12 |
+
ap_clk,
|
| 13 |
+
ap_rst,
|
| 14 |
+
ap_start,
|
| 15 |
+
ap_ready,
|
| 16 |
+
ap_done,
|
| 17 |
+
ap_start_int,
|
| 18 |
+
ap_ready_int,
|
| 19 |
+
ap_done_int,
|
| 20 |
+
ap_continue_int,
|
| 21 |
+
ap_loop_init,
|
| 22 |
+
ap_loop_exit_ready,
|
| 23 |
+
ap_loop_exit_done
|
| 24 |
+
);
|
| 25 |
+
|
| 26 |
+
input ap_clk;
|
| 27 |
+
input ap_rst;
|
| 28 |
+
|
| 29 |
+
//Block level handshake with outside loop
|
| 30 |
+
input ap_start;
|
| 31 |
+
output ap_ready;
|
| 32 |
+
output ap_done;
|
| 33 |
+
|
| 34 |
+
//Block level handshake with loop body
|
| 35 |
+
output ap_start_int;
|
| 36 |
+
input ap_ready_int;
|
| 37 |
+
input ap_done_int;
|
| 38 |
+
output ap_continue_int;
|
| 39 |
+
|
| 40 |
+
//Init live in variables
|
| 41 |
+
output ap_loop_init;
|
| 42 |
+
reg ap_loop_init;
|
| 43 |
+
reg ap_done;
|
| 44 |
+
reg ap_done_cache;
|
| 45 |
+
|
| 46 |
+
//Exit signal from loop body
|
| 47 |
+
input ap_loop_exit_ready;
|
| 48 |
+
input ap_loop_exit_done;
|
| 49 |
+
|
| 50 |
+
// power-on initialization
|
| 51 |
+
initial begin
|
| 52 |
+
#0 ap_loop_init = 1'b1;
|
| 53 |
+
#0 ap_done_cache = 1'b0;
|
| 54 |
+
end
|
| 55 |
+
|
| 56 |
+
assign ap_start_int = ap_start;
|
| 57 |
+
|
| 58 |
+
assign ap_continue_int = 1'b1;
|
| 59 |
+
|
| 60 |
+
assign ap_ready = ap_loop_exit_ready;
|
| 61 |
+
|
| 62 |
+
//ap_loop_init is valid for the first II
|
| 63 |
+
//of the first loop run so as to enable
|
| 64 |
+
//the init block ops which are pushed into
|
| 65 |
+
//the first state of the pipeline region
|
| 66 |
+
always @ (posedge ap_clk)
|
| 67 |
+
begin
|
| 68 |
+
if (ap_rst == 1'b1) begin
|
| 69 |
+
ap_loop_init <= 1'b1;
|
| 70 |
+
end else if(ap_loop_exit_ready == 1'b1) begin
|
| 71 |
+
ap_loop_init <= 1'b1;
|
| 72 |
+
end else if(ap_ready_int == 1'b1) begin
|
| 73 |
+
ap_loop_init <= 1'b0;
|
| 74 |
+
end
|
| 75 |
+
end
|
| 76 |
+
|
| 77 |
+
// if no ap_continue port and current module is not top module,
|
| 78 |
+
// ap_done handshakes with ap_start. Internally, flow control sends out
|
| 79 |
+
// ap_conintue_int = 1'b1 so the ap_done_int is asserted high for 1 clock cycle.
|
| 80 |
+
// ap_done_cache is used to record ap_done_int, and de-assert if ap_start_int
|
| 81 |
+
// is asserted, so DUT can start the next run
|
| 82 |
+
always @(posedge ap_clk)
|
| 83 |
+
begin
|
| 84 |
+
if (ap_rst == 1'b1) begin
|
| 85 |
+
ap_done_cache <= 1'b0;
|
| 86 |
+
end else if (ap_done_int == 1'b1) begin
|
| 87 |
+
ap_done_cache <= 1'b1;
|
| 88 |
+
end else if (ap_start_int == 1'b1) begin
|
| 89 |
+
ap_done_cache <= 1'b0;
|
| 90 |
+
end
|
| 91 |
+
end
|
| 92 |
+
|
| 93 |
+
// if no ap_continue port and current module is not top module, ap_done handshakes with ap_start
|
| 94 |
+
always @(*)
|
| 95 |
+
begin
|
| 96 |
+
if ((ap_done_int == 1'b1) || ((ap_done_cache == 1'b1) && (ap_start_int == 1'b0))) begin
|
| 97 |
+
ap_done = 1'b1;
|
| 98 |
+
end else begin
|
| 99 |
+
ap_done = 1'b0;
|
| 100 |
+
end
|
| 101 |
+
end
|
| 102 |
+
|
| 103 |
+
endmodule
|
| 104 |
+
|
myproject_prj/solution1/impl/verilog/myproject_mac_muladd_16s_10s_33s_33_1_1.v
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// ==============================================================
|
| 2 |
+
// Generated by Vitis HLS v2024.1
|
| 3 |
+
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
| 4 |
+
// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
|
| 5 |
+
// ==============================================================
|
| 6 |
+
// 67d7842dbbe25473c3c32b93c0da8047785f30d78e8a024de1b57352245f9689
|
| 7 |
+
//
|
| 8 |
+
//
|
| 9 |
+
//
|
| 10 |
+
`timescale 1 ns / 1 ps
|
| 11 |
+
//
|
| 12 |
+
module myproject_mac_muladd_16s_10s_33s_33_1_1_DSP48_0(
|
| 13 |
+
input [16 - 1:0] in0,
|
| 14 |
+
input [10 - 1:0] in1,
|
| 15 |
+
input [33 - 1:0] in2,
|
| 16 |
+
output [33 - 1:0] dout);
|
| 17 |
+
|
| 18 |
+
wire signed [27 - 1:0] a;
|
| 19 |
+
wire signed [18 - 1:0] b;
|
| 20 |
+
wire signed [48 - 1:0] c;
|
| 21 |
+
wire signed [45 - 1:0] m;
|
| 22 |
+
wire signed [48 - 1:0] p;
|
| 23 |
+
|
| 24 |
+
assign a = $signed(in0);
|
| 25 |
+
assign b = $signed(in1);
|
| 26 |
+
assign c = $signed(in2);
|
| 27 |
+
|
| 28 |
+
assign m = a * b;
|
| 29 |
+
//
|
| 30 |
+
assign p = m + c;
|
| 31 |
+
//
|
| 32 |
+
assign dout = p;
|
| 33 |
+
|
| 34 |
+
endmodule
|
| 35 |
+
//
|
| 36 |
+
|
| 37 |
+
module myproject_mac_muladd_16s_10s_33s_33_1_1(
|
| 38 |
+
//
|
| 39 |
+
din0,
|
| 40 |
+
din1,
|
| 41 |
+
din2,
|
| 42 |
+
dout);
|
| 43 |
+
|
| 44 |
+
parameter ID = 32'd1;
|
| 45 |
+
parameter NUM_STAGE = 32'd1;
|
| 46 |
+
parameter din0_WIDTH = 32'd1;
|
| 47 |
+
parameter din1_WIDTH = 32'd1;
|
| 48 |
+
parameter din2_WIDTH = 32'd1;
|
| 49 |
+
parameter dout_WIDTH = 32'd1;
|
| 50 |
+
//
|
| 51 |
+
input[din0_WIDTH - 1:0] din0;
|
| 52 |
+
input[din1_WIDTH - 1:0] din1;
|
| 53 |
+
input[din2_WIDTH - 1:0] din2;
|
| 54 |
+
output[dout_WIDTH - 1:0] dout;
|
| 55 |
+
|
| 56 |
+
|
| 57 |
+
myproject_mac_muladd_16s_10s_33s_33_1_1_DSP48_0 myproject_mac_muladd_16s_10s_33s_33_1_1_DSP48_0_U(
|
| 58 |
+
//
|
| 59 |
+
.in0( din0 ),
|
| 60 |
+
.in1( din1 ),
|
| 61 |
+
.in2( din2 ),
|
| 62 |
+
.dout( dout ));
|
| 63 |
+
|
| 64 |
+
endmodule
|
| 65 |
+
|
| 66 |
+
|
myproject_prj/solution1/impl/verilog/myproject_mac_muladd_16s_16s_33s_33_1_1.v
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// ==============================================================
|
| 2 |
+
// Generated by Vitis HLS v2024.1
|
| 3 |
+
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
| 4 |
+
// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
|
| 5 |
+
// ==============================================================
|
| 6 |
+
// 67d7842dbbe25473c3c32b93c0da8047785f30d78e8a024de1b57352245f9689
|
| 7 |
+
//
|
| 8 |
+
//
|
| 9 |
+
//
|
| 10 |
+
`timescale 1 ns / 1 ps
|
| 11 |
+
//
|
| 12 |
+
module myproject_mac_muladd_16s_16s_33s_33_1_1_DSP48_0(
|
| 13 |
+
input [16 - 1:0] in0,
|
| 14 |
+
input [16 - 1:0] in1,
|
| 15 |
+
input [33 - 1:0] in2,
|
| 16 |
+
output [33 - 1:0] dout);
|
| 17 |
+
|
| 18 |
+
wire signed [27 - 1:0] a;
|
| 19 |
+
wire signed [18 - 1:0] b;
|
| 20 |
+
wire signed [48 - 1:0] c;
|
| 21 |
+
wire signed [45 - 1:0] m;
|
| 22 |
+
wire signed [48 - 1:0] p;
|
| 23 |
+
|
| 24 |
+
assign a = $signed(in0);
|
| 25 |
+
assign b = $signed(in1);
|
| 26 |
+
assign c = $signed(in2);
|
| 27 |
+
|
| 28 |
+
assign m = a * b;
|
| 29 |
+
//
|
| 30 |
+
assign p = m + c;
|
| 31 |
+
//
|
| 32 |
+
assign dout = p;
|
| 33 |
+
|
| 34 |
+
endmodule
|
| 35 |
+
//
|
| 36 |
+
|
| 37 |
+
module myproject_mac_muladd_16s_16s_33s_33_1_1(
|
| 38 |
+
//
|
| 39 |
+
din0,
|
| 40 |
+
din1,
|
| 41 |
+
din2,
|
| 42 |
+
dout);
|
| 43 |
+
|
| 44 |
+
parameter ID = 32'd1;
|
| 45 |
+
parameter NUM_STAGE = 32'd1;
|
| 46 |
+
parameter din0_WIDTH = 32'd1;
|
| 47 |
+
parameter din1_WIDTH = 32'd1;
|
| 48 |
+
parameter din2_WIDTH = 32'd1;
|
| 49 |
+
parameter dout_WIDTH = 32'd1;
|
| 50 |
+
//
|
| 51 |
+
input[din0_WIDTH - 1:0] din0;
|
| 52 |
+
input[din1_WIDTH - 1:0] din1;
|
| 53 |
+
input[din2_WIDTH - 1:0] din2;
|
| 54 |
+
output[dout_WIDTH - 1:0] dout;
|
| 55 |
+
|
| 56 |
+
|
| 57 |
+
myproject_mac_muladd_16s_16s_33s_33_1_1_DSP48_0 myproject_mac_muladd_16s_16s_33s_33_1_1_DSP48_0_U(
|
| 58 |
+
//
|
| 59 |
+
.in0( din0 ),
|
| 60 |
+
.in1( din1 ),
|
| 61 |
+
.in2( din2 ),
|
| 62 |
+
.dout( dout ));
|
| 63 |
+
|
| 64 |
+
endmodule
|
| 65 |
+
|
| 66 |
+
|
myproject_prj/solution1/impl/verilog/myproject_mac_muladd_16s_16s_40s_41_1_1.v
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// ==============================================================
|
| 2 |
+
// Generated by Vitis HLS v2024.1
|
| 3 |
+
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
| 4 |
+
// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
|
| 5 |
+
// ==============================================================
|
| 6 |
+
// 67d7842dbbe25473c3c32b93c0da8047785f30d78e8a024de1b57352245f9689
|
| 7 |
+
//
|
| 8 |
+
//
|
| 9 |
+
//
|
| 10 |
+
`timescale 1 ns / 1 ps
|
| 11 |
+
//
|
| 12 |
+
module myproject_mac_muladd_16s_16s_40s_41_1_1_DSP48_0(
|
| 13 |
+
input [16 - 1:0] in0,
|
| 14 |
+
input [16 - 1:0] in1,
|
| 15 |
+
input [40 - 1:0] in2,
|
| 16 |
+
output [41 - 1:0] dout);
|
| 17 |
+
|
| 18 |
+
wire signed [27 - 1:0] a;
|
| 19 |
+
wire signed [18 - 1:0] b;
|
| 20 |
+
wire signed [48 - 1:0] c;
|
| 21 |
+
wire signed [45 - 1:0] m;
|
| 22 |
+
wire signed [48 - 1:0] p;
|
| 23 |
+
|
| 24 |
+
assign a = $signed(in0);
|
| 25 |
+
assign b = $signed(in1);
|
| 26 |
+
assign c = $signed(in2);
|
| 27 |
+
|
| 28 |
+
assign m = a * b;
|
| 29 |
+
//
|
| 30 |
+
assign p = m + c;
|
| 31 |
+
//
|
| 32 |
+
assign dout = p;
|
| 33 |
+
|
| 34 |
+
endmodule
|
| 35 |
+
//
|
| 36 |
+
|
| 37 |
+
module myproject_mac_muladd_16s_16s_40s_41_1_1(
|
| 38 |
+
//
|
| 39 |
+
din0,
|
| 40 |
+
din1,
|
| 41 |
+
din2,
|
| 42 |
+
dout);
|
| 43 |
+
|
| 44 |
+
parameter ID = 32'd1;
|
| 45 |
+
parameter NUM_STAGE = 32'd1;
|
| 46 |
+
parameter din0_WIDTH = 32'd1;
|
| 47 |
+
parameter din1_WIDTH = 32'd1;
|
| 48 |
+
parameter din2_WIDTH = 32'd1;
|
| 49 |
+
parameter dout_WIDTH = 32'd1;
|
| 50 |
+
//
|
| 51 |
+
input[din0_WIDTH - 1:0] din0;
|
| 52 |
+
input[din1_WIDTH - 1:0] din1;
|
| 53 |
+
input[din2_WIDTH - 1:0] din2;
|
| 54 |
+
output[dout_WIDTH - 1:0] dout;
|
| 55 |
+
|
| 56 |
+
|
| 57 |
+
myproject_mac_muladd_16s_16s_40s_41_1_1_DSP48_0 myproject_mac_muladd_16s_16s_40s_41_1_1_DSP48_0_U(
|
| 58 |
+
//
|
| 59 |
+
.in0( din0 ),
|
| 60 |
+
.in1( din1 ),
|
| 61 |
+
.in2( din2 ),
|
| 62 |
+
.dout( dout ));
|
| 63 |
+
|
| 64 |
+
endmodule
|
| 65 |
+
|
| 66 |
+
|
myproject_prj/solution1/impl/verilog/myproject_mac_muladd_16s_16s_41s_42_1_1.v
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// ==============================================================
|
| 2 |
+
// Generated by Vitis HLS v2024.1
|
| 3 |
+
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
| 4 |
+
// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
|
| 5 |
+
// ==============================================================
|
| 6 |
+
// 67d7842dbbe25473c3c32b93c0da8047785f30d78e8a024de1b57352245f9689
|
| 7 |
+
//
|
| 8 |
+
//
|
| 9 |
+
//
|
| 10 |
+
`timescale 1 ns / 1 ps
|
| 11 |
+
//
|
| 12 |
+
module myproject_mac_muladd_16s_16s_41s_42_1_1_DSP48_0(
|
| 13 |
+
input [16 - 1:0] in0,
|
| 14 |
+
input [16 - 1:0] in1,
|
| 15 |
+
input [41 - 1:0] in2,
|
| 16 |
+
output [42 - 1:0] dout);
|
| 17 |
+
|
| 18 |
+
wire signed [27 - 1:0] a;
|
| 19 |
+
wire signed [18 - 1:0] b;
|
| 20 |
+
wire signed [48 - 1:0] c;
|
| 21 |
+
wire signed [45 - 1:0] m;
|
| 22 |
+
wire signed [48 - 1:0] p;
|
| 23 |
+
|
| 24 |
+
assign a = $signed(in0);
|
| 25 |
+
assign b = $signed(in1);
|
| 26 |
+
assign c = $signed(in2);
|
| 27 |
+
|
| 28 |
+
assign m = a * b;
|
| 29 |
+
//
|
| 30 |
+
assign p = m + c;
|
| 31 |
+
//
|
| 32 |
+
assign dout = p;
|
| 33 |
+
|
| 34 |
+
endmodule
|
| 35 |
+
//
|
| 36 |
+
|
| 37 |
+
module myproject_mac_muladd_16s_16s_41s_42_1_1(
|
| 38 |
+
//
|
| 39 |
+
din0,
|
| 40 |
+
din1,
|
| 41 |
+
din2,
|
| 42 |
+
dout);
|
| 43 |
+
|
| 44 |
+
parameter ID = 32'd1;
|
| 45 |
+
parameter NUM_STAGE = 32'd1;
|
| 46 |
+
parameter din0_WIDTH = 32'd1;
|
| 47 |
+
parameter din1_WIDTH = 32'd1;
|
| 48 |
+
parameter din2_WIDTH = 32'd1;
|
| 49 |
+
parameter dout_WIDTH = 32'd1;
|
| 50 |
+
//
|
| 51 |
+
input[din0_WIDTH - 1:0] din0;
|
| 52 |
+
input[din1_WIDTH - 1:0] din1;
|
| 53 |
+
input[din2_WIDTH - 1:0] din2;
|
| 54 |
+
output[dout_WIDTH - 1:0] dout;
|
| 55 |
+
|
| 56 |
+
|
| 57 |
+
myproject_mac_muladd_16s_16s_41s_42_1_1_DSP48_0 myproject_mac_muladd_16s_16s_41s_42_1_1_DSP48_0_U(
|
| 58 |
+
//
|
| 59 |
+
.in0( din0 ),
|
| 60 |
+
.in1( din1 ),
|
| 61 |
+
.in2( din2 ),
|
| 62 |
+
.dout( dout ));
|
| 63 |
+
|
| 64 |
+
endmodule
|
| 65 |
+
|
| 66 |
+
|
myproject_prj/solution1/impl/verilog/myproject_mac_muladd_16s_9s_31s_31_1_1.v
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// ==============================================================
|
| 2 |
+
// Generated by Vitis HLS v2024.1
|
| 3 |
+
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
| 4 |
+
// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
|
| 5 |
+
// ==============================================================
|
| 6 |
+
// 67d7842dbbe25473c3c32b93c0da8047785f30d78e8a024de1b57352245f9689
|
| 7 |
+
//
|
| 8 |
+
//
|
| 9 |
+
//
|
| 10 |
+
`timescale 1 ns / 1 ps
|
| 11 |
+
//
|
| 12 |
+
module myproject_mac_muladd_16s_9s_31s_31_1_1_DSP48_0(
|
| 13 |
+
input [16 - 1:0] in0,
|
| 14 |
+
input [9 - 1:0] in1,
|
| 15 |
+
input [31 - 1:0] in2,
|
| 16 |
+
output [31 - 1:0] dout);
|
| 17 |
+
|
| 18 |
+
wire signed [27 - 1:0] a;
|
| 19 |
+
wire signed [18 - 1:0] b;
|
| 20 |
+
wire signed [48 - 1:0] c;
|
| 21 |
+
wire signed [45 - 1:0] m;
|
| 22 |
+
wire signed [48 - 1:0] p;
|
| 23 |
+
|
| 24 |
+
assign a = $signed(in0);
|
| 25 |
+
assign b = $signed(in1);
|
| 26 |
+
assign c = $signed(in2);
|
| 27 |
+
|
| 28 |
+
assign m = a * b;
|
| 29 |
+
//
|
| 30 |
+
assign p = m + c;
|
| 31 |
+
//
|
| 32 |
+
assign dout = p;
|
| 33 |
+
|
| 34 |
+
endmodule
|
| 35 |
+
//
|
| 36 |
+
|
| 37 |
+
module myproject_mac_muladd_16s_9s_31s_31_1_1(
|
| 38 |
+
//
|
| 39 |
+
din0,
|
| 40 |
+
din1,
|
| 41 |
+
din2,
|
| 42 |
+
dout);
|
| 43 |
+
|
| 44 |
+
parameter ID = 32'd1;
|
| 45 |
+
parameter NUM_STAGE = 32'd1;
|
| 46 |
+
parameter din0_WIDTH = 32'd1;
|
| 47 |
+
parameter din1_WIDTH = 32'd1;
|
| 48 |
+
parameter din2_WIDTH = 32'd1;
|
| 49 |
+
parameter dout_WIDTH = 32'd1;
|
| 50 |
+
//
|
| 51 |
+
input[din0_WIDTH - 1:0] din0;
|
| 52 |
+
input[din1_WIDTH - 1:0] din1;
|
| 53 |
+
input[din2_WIDTH - 1:0] din2;
|
| 54 |
+
output[dout_WIDTH - 1:0] dout;
|
| 55 |
+
|
| 56 |
+
|
| 57 |
+
myproject_mac_muladd_16s_9s_31s_31_1_1_DSP48_0 myproject_mac_muladd_16s_9s_31s_31_1_1_DSP48_0_U(
|
| 58 |
+
//
|
| 59 |
+
.in0( din0 ),
|
| 60 |
+
.in1( din1 ),
|
| 61 |
+
.in2( din2 ),
|
| 62 |
+
.dout( dout ));
|
| 63 |
+
|
| 64 |
+
endmodule
|
| 65 |
+
|
| 66 |
+
|
myproject_prj/solution1/impl/verilog/myproject_mac_muladd_16s_9s_34s_34_1_1.v
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// ==============================================================
|
| 2 |
+
// Generated by Vitis HLS v2024.1
|
| 3 |
+
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
| 4 |
+
// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
|
| 5 |
+
// ==============================================================
|
| 6 |
+
// 67d7842dbbe25473c3c32b93c0da8047785f30d78e8a024de1b57352245f9689
|
| 7 |
+
//
|
| 8 |
+
//
|
| 9 |
+
//
|
| 10 |
+
`timescale 1 ns / 1 ps
|
| 11 |
+
//
|
| 12 |
+
module myproject_mac_muladd_16s_9s_34s_34_1_1_DSP48_0(
|
| 13 |
+
input [16 - 1:0] in0,
|
| 14 |
+
input [9 - 1:0] in1,
|
| 15 |
+
input [34 - 1:0] in2,
|
| 16 |
+
output [34 - 1:0] dout);
|
| 17 |
+
|
| 18 |
+
wire signed [27 - 1:0] a;
|
| 19 |
+
wire signed [18 - 1:0] b;
|
| 20 |
+
wire signed [48 - 1:0] c;
|
| 21 |
+
wire signed [45 - 1:0] m;
|
| 22 |
+
wire signed [48 - 1:0] p;
|
| 23 |
+
|
| 24 |
+
assign a = $signed(in0);
|
| 25 |
+
assign b = $signed(in1);
|
| 26 |
+
assign c = $signed(in2);
|
| 27 |
+
|
| 28 |
+
assign m = a * b;
|
| 29 |
+
//
|
| 30 |
+
assign p = m + c;
|
| 31 |
+
//
|
| 32 |
+
assign dout = p;
|
| 33 |
+
|
| 34 |
+
endmodule
|
| 35 |
+
//
|
| 36 |
+
|
| 37 |
+
module myproject_mac_muladd_16s_9s_34s_34_1_1(
|
| 38 |
+
//
|
| 39 |
+
din0,
|
| 40 |
+
din1,
|
| 41 |
+
din2,
|
| 42 |
+
dout);
|
| 43 |
+
|
| 44 |
+
parameter ID = 32'd1;
|
| 45 |
+
parameter NUM_STAGE = 32'd1;
|
| 46 |
+
parameter din0_WIDTH = 32'd1;
|
| 47 |
+
parameter din1_WIDTH = 32'd1;
|
| 48 |
+
parameter din2_WIDTH = 32'd1;
|
| 49 |
+
parameter dout_WIDTH = 32'd1;
|
| 50 |
+
//
|
| 51 |
+
input[din0_WIDTH - 1:0] din0;
|
| 52 |
+
input[din1_WIDTH - 1:0] din1;
|
| 53 |
+
input[din2_WIDTH - 1:0] din2;
|
| 54 |
+
output[dout_WIDTH - 1:0] dout;
|
| 55 |
+
|
| 56 |
+
|
| 57 |
+
myproject_mac_muladd_16s_9s_34s_34_1_1_DSP48_0 myproject_mac_muladd_16s_9s_34s_34_1_1_DSP48_0_U(
|
| 58 |
+
//
|
| 59 |
+
.in0( din0 ),
|
| 60 |
+
.in1( din1 ),
|
| 61 |
+
.in2( din2 ),
|
| 62 |
+
.dout( dout ));
|
| 63 |
+
|
| 64 |
+
endmodule
|
| 65 |
+
|
| 66 |
+
|
myproject_prj/solution1/impl/verilog/myproject_mac_muladd_16s_9s_43s_44_1_1.v
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// ==============================================================
|
| 2 |
+
// Generated by Vitis HLS v2024.1
|
| 3 |
+
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
| 4 |
+
// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
|
| 5 |
+
// ==============================================================
|
| 6 |
+
// 67d7842dbbe25473c3c32b93c0da8047785f30d78e8a024de1b57352245f9689
|
| 7 |
+
//
|
| 8 |
+
//
|
| 9 |
+
//
|
| 10 |
+
`timescale 1 ns / 1 ps
|
| 11 |
+
//
|
| 12 |
+
module myproject_mac_muladd_16s_9s_43s_44_1_1_DSP48_0(
|
| 13 |
+
input [16 - 1:0] in0,
|
| 14 |
+
input [9 - 1:0] in1,
|
| 15 |
+
input [43 - 1:0] in2,
|
| 16 |
+
output [44 - 1:0] dout);
|
| 17 |
+
|
| 18 |
+
wire signed [27 - 1:0] a;
|
| 19 |
+
wire signed [18 - 1:0] b;
|
| 20 |
+
wire signed [48 - 1:0] c;
|
| 21 |
+
wire signed [45 - 1:0] m;
|
| 22 |
+
wire signed [48 - 1:0] p;
|
| 23 |
+
|
| 24 |
+
assign a = $signed(in0);
|
| 25 |
+
assign b = $signed(in1);
|
| 26 |
+
assign c = $signed(in2);
|
| 27 |
+
|
| 28 |
+
assign m = a * b;
|
| 29 |
+
//
|
| 30 |
+
assign p = m + c;
|
| 31 |
+
//
|
| 32 |
+
assign dout = p;
|
| 33 |
+
|
| 34 |
+
endmodule
|
| 35 |
+
//
|
| 36 |
+
|
| 37 |
+
module myproject_mac_muladd_16s_9s_43s_44_1_1(
|
| 38 |
+
//
|
| 39 |
+
din0,
|
| 40 |
+
din1,
|
| 41 |
+
din2,
|
| 42 |
+
dout);
|
| 43 |
+
|
| 44 |
+
parameter ID = 32'd1;
|
| 45 |
+
parameter NUM_STAGE = 32'd1;
|
| 46 |
+
parameter din0_WIDTH = 32'd1;
|
| 47 |
+
parameter din1_WIDTH = 32'd1;
|
| 48 |
+
parameter din2_WIDTH = 32'd1;
|
| 49 |
+
parameter dout_WIDTH = 32'd1;
|
| 50 |
+
//
|
| 51 |
+
input[din0_WIDTH - 1:0] din0;
|
| 52 |
+
input[din1_WIDTH - 1:0] din1;
|
| 53 |
+
input[din2_WIDTH - 1:0] din2;
|
| 54 |
+
output[dout_WIDTH - 1:0] dout;
|
| 55 |
+
|
| 56 |
+
|
| 57 |
+
myproject_mac_muladd_16s_9s_43s_44_1_1_DSP48_0 myproject_mac_muladd_16s_9s_43s_44_1_1_DSP48_0_U(
|
| 58 |
+
//
|
| 59 |
+
.in0( din0 ),
|
| 60 |
+
.in1( din1 ),
|
| 61 |
+
.in2( din2 ),
|
| 62 |
+
.dout( dout ));
|
| 63 |
+
|
| 64 |
+
endmodule
|
| 65 |
+
|
| 66 |
+
|
myproject_prj/solution1/impl/verilog/myproject_mul_16s_16s_32_1_1.v
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// 67d7842dbbe25473c3c32b93c0da8047785f30d78e8a024de1b57352245f9689
|
| 2 |
+
|
| 3 |
+
`timescale 1 ns / 1 ps
|
| 4 |
+
|
| 5 |
+
module myproject_mul_16s_16s_32_1_1(din0, din1, dout);
|
| 6 |
+
parameter ID = 1;
|
| 7 |
+
parameter NUM_STAGE = 0;
|
| 8 |
+
parameter din0_WIDTH = 14;
|
| 9 |
+
parameter din1_WIDTH = 12;
|
| 10 |
+
parameter dout_WIDTH = 26;
|
| 11 |
+
|
| 12 |
+
input [din0_WIDTH - 1 : 0] din0;
|
| 13 |
+
input [din1_WIDTH - 1 : 0] din1;
|
| 14 |
+
output [dout_WIDTH - 1 : 0] dout;
|
| 15 |
+
|
| 16 |
+
wire signed [dout_WIDTH - 1 : 0] tmp_product;
|
| 17 |
+
|
| 18 |
+
|
| 19 |
+
|
| 20 |
+
|
| 21 |
+
|
| 22 |
+
|
| 23 |
+
|
| 24 |
+
|
| 25 |
+
|
| 26 |
+
|
| 27 |
+
|
| 28 |
+
|
| 29 |
+
|
| 30 |
+
|
| 31 |
+
|
| 32 |
+
|
| 33 |
+
|
| 34 |
+
|
| 35 |
+
|
| 36 |
+
|
| 37 |
+
|
| 38 |
+
|
| 39 |
+
|
| 40 |
+
|
| 41 |
+
|
| 42 |
+
|
| 43 |
+
|
| 44 |
+
assign tmp_product = $signed(din0) * $signed(din1);
|
| 45 |
+
|
| 46 |
+
|
| 47 |
+
|
| 48 |
+
|
| 49 |
+
|
| 50 |
+
|
| 51 |
+
|
| 52 |
+
|
| 53 |
+
assign dout = tmp_product;
|
| 54 |
+
|
| 55 |
+
|
| 56 |
+
|
| 57 |
+
|
| 58 |
+
|
| 59 |
+
|
| 60 |
+
|
| 61 |
+
|
| 62 |
+
|
| 63 |
+
|
| 64 |
+
|
| 65 |
+
|
| 66 |
+
|
| 67 |
+
|
| 68 |
+
|
| 69 |
+
|
| 70 |
+
|
| 71 |
+
|
| 72 |
+
|
| 73 |
+
|
| 74 |
+
|
| 75 |
+
endmodule
|
myproject_prj/solution1/impl/verilog/myproject_relu_array_ap_fixed_16u_array_ap_fixed_16_6_5_3_0_16u_relu_config30_s.v
ADDED
|
@@ -0,0 +1,473 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// ==============================================================
|
| 2 |
+
// Generated by Vitis HLS v2024.1
|
| 3 |
+
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
| 4 |
+
// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
|
| 5 |
+
// ==============================================================
|
| 6 |
+
|
| 7 |
+
`timescale 1 ns / 1 ps
|
| 8 |
+
|
| 9 |
+
module myproject_relu_array_ap_fixed_16u_array_ap_fixed_16_6_5_3_0_16u_relu_config30_s (
|
| 10 |
+
ap_clk,
|
| 11 |
+
ap_rst,
|
| 12 |
+
ap_start,
|
| 13 |
+
start_full_n,
|
| 14 |
+
ap_done,
|
| 15 |
+
ap_continue,
|
| 16 |
+
ap_idle,
|
| 17 |
+
ap_ready,
|
| 18 |
+
layer29_out_dout,
|
| 19 |
+
layer29_out_num_data_valid,
|
| 20 |
+
layer29_out_fifo_cap,
|
| 21 |
+
layer29_out_empty_n,
|
| 22 |
+
layer29_out_read,
|
| 23 |
+
layer30_out_din,
|
| 24 |
+
layer30_out_num_data_valid,
|
| 25 |
+
layer30_out_fifo_cap,
|
| 26 |
+
layer30_out_full_n,
|
| 27 |
+
layer30_out_write,
|
| 28 |
+
start_out,
|
| 29 |
+
start_write
|
| 30 |
+
);
|
| 31 |
+
|
| 32 |
+
parameter ap_ST_fsm_state1 = 1'd1;
|
| 33 |
+
|
| 34 |
+
input ap_clk;
|
| 35 |
+
input ap_rst;
|
| 36 |
+
input ap_start;
|
| 37 |
+
input start_full_n;
|
| 38 |
+
output ap_done;
|
| 39 |
+
input ap_continue;
|
| 40 |
+
output ap_idle;
|
| 41 |
+
output ap_ready;
|
| 42 |
+
input [671:0] layer29_out_dout;
|
| 43 |
+
input [10:0] layer29_out_num_data_valid;
|
| 44 |
+
input [10:0] layer29_out_fifo_cap;
|
| 45 |
+
input layer29_out_empty_n;
|
| 46 |
+
output layer29_out_read;
|
| 47 |
+
output [255:0] layer30_out_din;
|
| 48 |
+
input [10:0] layer30_out_num_data_valid;
|
| 49 |
+
input [10:0] layer30_out_fifo_cap;
|
| 50 |
+
input layer30_out_full_n;
|
| 51 |
+
output layer30_out_write;
|
| 52 |
+
output start_out;
|
| 53 |
+
output start_write;
|
| 54 |
+
|
| 55 |
+
reg ap_idle;
|
| 56 |
+
reg start_write;
|
| 57 |
+
|
| 58 |
+
reg real_start;
|
| 59 |
+
reg start_once_reg;
|
| 60 |
+
(* fsm_encoding = "none" *) reg [0:0] ap_CS_fsm;
|
| 61 |
+
wire ap_CS_fsm_state1;
|
| 62 |
+
wire internal_ap_ready;
|
| 63 |
+
reg ap_done_reg;
|
| 64 |
+
reg ap_block_state1_pp0_stage0_iter0;
|
| 65 |
+
wire [0:0] icmp_ln41_fu_776_p2;
|
| 66 |
+
reg ap_condition_exit_pp0_iter0_stage0;
|
| 67 |
+
wire ap_loop_exit_ready;
|
| 68 |
+
reg ap_ready_int;
|
| 69 |
+
reg layer29_out_blk_n;
|
| 70 |
+
reg layer30_out_blk_n;
|
| 71 |
+
reg [9:0] i1_fu_170;
|
| 72 |
+
wire [9:0] i_fu_770_p2;
|
| 73 |
+
wire ap_loop_init;
|
| 74 |
+
reg [9:0] ap_sig_allocacmp_i1_load;
|
| 75 |
+
reg layer29_out_read_local;
|
| 76 |
+
wire [255:0] or_ln57_s_fu_733_p17;
|
| 77 |
+
reg layer30_out_write_local;
|
| 78 |
+
wire [41:0] trunc_ln44_fu_195_p1;
|
| 79 |
+
wire [0:0] icmp_ln51_fu_349_p2;
|
| 80 |
+
wire [15:0] out_data_fu_355_p4;
|
| 81 |
+
wire [41:0] trunc_ln44_220_fu_199_p4;
|
| 82 |
+
wire [0:0] icmp_ln51_220_fu_373_p2;
|
| 83 |
+
wire [15:0] out_data_82_fu_379_p4;
|
| 84 |
+
wire [41:0] trunc_ln44_221_fu_209_p4;
|
| 85 |
+
wire [0:0] icmp_ln51_221_fu_397_p2;
|
| 86 |
+
wire [15:0] out_data_84_fu_403_p4;
|
| 87 |
+
wire [41:0] trunc_ln44_222_fu_219_p4;
|
| 88 |
+
wire [0:0] icmp_ln51_222_fu_421_p2;
|
| 89 |
+
wire [15:0] out_data_86_fu_427_p4;
|
| 90 |
+
wire [41:0] trunc_ln44_223_fu_229_p4;
|
| 91 |
+
wire [0:0] icmp_ln51_223_fu_445_p2;
|
| 92 |
+
wire [15:0] trunc_ln_fu_451_p4;
|
| 93 |
+
wire [41:0] trunc_ln44_224_fu_239_p4;
|
| 94 |
+
wire [0:0] icmp_ln51_224_fu_469_p2;
|
| 95 |
+
wire [15:0] trunc_ln52_200_fu_475_p4;
|
| 96 |
+
wire [41:0] trunc_ln44_225_fu_249_p4;
|
| 97 |
+
wire [0:0] icmp_ln51_225_fu_493_p2;
|
| 98 |
+
wire [15:0] trunc_ln52_201_fu_499_p4;
|
| 99 |
+
wire [41:0] trunc_ln44_226_fu_259_p4;
|
| 100 |
+
wire [0:0] icmp_ln51_226_fu_517_p2;
|
| 101 |
+
wire [15:0] trunc_ln52_202_fu_523_p4;
|
| 102 |
+
wire [41:0] trunc_ln44_227_fu_269_p4;
|
| 103 |
+
wire [0:0] icmp_ln51_227_fu_541_p2;
|
| 104 |
+
wire [15:0] trunc_ln52_203_fu_547_p4;
|
| 105 |
+
wire [41:0] trunc_ln44_228_fu_279_p4;
|
| 106 |
+
wire [0:0] icmp_ln51_228_fu_565_p2;
|
| 107 |
+
wire [15:0] trunc_ln52_204_fu_571_p4;
|
| 108 |
+
wire [41:0] trunc_ln44_229_fu_289_p4;
|
| 109 |
+
wire [0:0] icmp_ln51_229_fu_589_p2;
|
| 110 |
+
wire [15:0] trunc_ln52_205_fu_595_p4;
|
| 111 |
+
wire [41:0] trunc_ln44_230_fu_299_p4;
|
| 112 |
+
wire [0:0] icmp_ln51_230_fu_613_p2;
|
| 113 |
+
wire [15:0] trunc_ln52_206_fu_619_p4;
|
| 114 |
+
wire [41:0] trunc_ln44_231_fu_309_p4;
|
| 115 |
+
wire [0:0] icmp_ln51_231_fu_637_p2;
|
| 116 |
+
wire [15:0] trunc_ln52_207_fu_643_p4;
|
| 117 |
+
wire [41:0] trunc_ln44_232_fu_319_p4;
|
| 118 |
+
wire [0:0] icmp_ln51_232_fu_661_p2;
|
| 119 |
+
wire [15:0] trunc_ln52_208_fu_667_p4;
|
| 120 |
+
wire [41:0] trunc_ln44_233_fu_329_p4;
|
| 121 |
+
wire [0:0] icmp_ln51_233_fu_685_p2;
|
| 122 |
+
wire [15:0] trunc_ln52_209_fu_691_p4;
|
| 123 |
+
wire [41:0] trunc_ln44_234_fu_339_p4;
|
| 124 |
+
wire [0:0] icmp_ln51_234_fu_709_p2;
|
| 125 |
+
wire [15:0] trunc_ln52_210_fu_715_p4;
|
| 126 |
+
wire [15:0] select_ln51_210_fu_725_p3;
|
| 127 |
+
wire [15:0] select_ln51_209_fu_701_p3;
|
| 128 |
+
wire [15:0] select_ln51_208_fu_677_p3;
|
| 129 |
+
wire [15:0] select_ln51_207_fu_653_p3;
|
| 130 |
+
wire [15:0] select_ln51_206_fu_629_p3;
|
| 131 |
+
wire [15:0] select_ln51_205_fu_605_p3;
|
| 132 |
+
wire [15:0] select_ln51_204_fu_581_p3;
|
| 133 |
+
wire [15:0] select_ln51_203_fu_557_p3;
|
| 134 |
+
wire [15:0] select_ln51_202_fu_533_p3;
|
| 135 |
+
wire [15:0] select_ln51_201_fu_509_p3;
|
| 136 |
+
wire [15:0] select_ln51_200_fu_485_p3;
|
| 137 |
+
wire [15:0] select_ln51_fu_461_p3;
|
| 138 |
+
wire [15:0] out_data_87_fu_437_p3;
|
| 139 |
+
wire [15:0] out_data_85_fu_413_p3;
|
| 140 |
+
wire [15:0] out_data_83_fu_389_p3;
|
| 141 |
+
wire [15:0] out_data_81_fu_365_p3;
|
| 142 |
+
wire ap_continue_int;
|
| 143 |
+
reg ap_done_int;
|
| 144 |
+
reg [0:0] ap_NS_fsm;
|
| 145 |
+
reg ap_ST_fsm_state1_blk;
|
| 146 |
+
wire ap_start_int;
|
| 147 |
+
wire ap_done_sig;
|
| 148 |
+
wire ap_ce_reg;
|
| 149 |
+
|
| 150 |
+
// power-on initialization
|
| 151 |
+
initial begin
|
| 152 |
+
#0 start_once_reg = 1'b0;
|
| 153 |
+
#0 ap_CS_fsm = 1'd1;
|
| 154 |
+
#0 ap_done_reg = 1'b0;
|
| 155 |
+
#0 i1_fu_170 = 10'd0;
|
| 156 |
+
end
|
| 157 |
+
|
| 158 |
+
myproject_flow_control_loop_pipe flow_control_loop_pipe_U(
|
| 159 |
+
.ap_clk(ap_clk),
|
| 160 |
+
.ap_rst(ap_rst),
|
| 161 |
+
.ap_start(real_start),
|
| 162 |
+
.ap_ready(internal_ap_ready),
|
| 163 |
+
.ap_done(ap_done_sig),
|
| 164 |
+
.ap_start_int(ap_start_int),
|
| 165 |
+
.ap_loop_init(ap_loop_init),
|
| 166 |
+
.ap_ready_int(ap_ready_int),
|
| 167 |
+
.ap_loop_exit_ready(ap_condition_exit_pp0_iter0_stage0),
|
| 168 |
+
.ap_loop_exit_done(ap_done_int),
|
| 169 |
+
.ap_continue_int(ap_continue_int),
|
| 170 |
+
.ap_done_int(ap_done_int),
|
| 171 |
+
.ap_continue(ap_continue)
|
| 172 |
+
);
|
| 173 |
+
|
| 174 |
+
always @ (posedge ap_clk) begin
|
| 175 |
+
if (ap_rst == 1'b1) begin
|
| 176 |
+
ap_CS_fsm <= ap_ST_fsm_state1;
|
| 177 |
+
end else begin
|
| 178 |
+
ap_CS_fsm <= ap_NS_fsm;
|
| 179 |
+
end
|
| 180 |
+
end
|
| 181 |
+
|
| 182 |
+
always @ (posedge ap_clk) begin
|
| 183 |
+
if (ap_rst == 1'b1) begin
|
| 184 |
+
ap_done_reg <= 1'b0;
|
| 185 |
+
end else begin
|
| 186 |
+
if ((ap_continue_int == 1'b1)) begin
|
| 187 |
+
ap_done_reg <= 1'b0;
|
| 188 |
+
end else if (((ap_loop_exit_ready == 1'b1) & (1'b0 == ap_block_state1_pp0_stage0_iter0) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 189 |
+
ap_done_reg <= 1'b1;
|
| 190 |
+
end
|
| 191 |
+
end
|
| 192 |
+
end
|
| 193 |
+
|
| 194 |
+
always @ (posedge ap_clk) begin
|
| 195 |
+
if (ap_rst == 1'b1) begin
|
| 196 |
+
start_once_reg <= 1'b0;
|
| 197 |
+
end else begin
|
| 198 |
+
if (((real_start == 1'b1) & (internal_ap_ready == 1'b0))) begin
|
| 199 |
+
start_once_reg <= 1'b1;
|
| 200 |
+
end else if ((internal_ap_ready == 1'b1)) begin
|
| 201 |
+
start_once_reg <= 1'b0;
|
| 202 |
+
end
|
| 203 |
+
end
|
| 204 |
+
end
|
| 205 |
+
|
| 206 |
+
always @ (posedge ap_clk) begin
|
| 207 |
+
if (((1'b0 == ap_block_state1_pp0_stage0_iter0) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 208 |
+
i1_fu_170 <= i_fu_770_p2;
|
| 209 |
+
end
|
| 210 |
+
end
|
| 211 |
+
|
| 212 |
+
always @ (*) begin
|
| 213 |
+
if ((1'b1 == ap_block_state1_pp0_stage0_iter0)) begin
|
| 214 |
+
ap_ST_fsm_state1_blk = 1'b1;
|
| 215 |
+
end else begin
|
| 216 |
+
ap_ST_fsm_state1_blk = 1'b0;
|
| 217 |
+
end
|
| 218 |
+
end
|
| 219 |
+
|
| 220 |
+
always @ (*) begin
|
| 221 |
+
if (((icmp_ln41_fu_776_p2 == 1'd1) & (1'b0 == ap_block_state1_pp0_stage0_iter0) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 222 |
+
ap_condition_exit_pp0_iter0_stage0 = 1'b1;
|
| 223 |
+
end else begin
|
| 224 |
+
ap_condition_exit_pp0_iter0_stage0 = 1'b0;
|
| 225 |
+
end
|
| 226 |
+
end
|
| 227 |
+
|
| 228 |
+
always @ (*) begin
|
| 229 |
+
if (((ap_loop_exit_ready == 1'b1) & (1'b0 == ap_block_state1_pp0_stage0_iter0) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 230 |
+
ap_done_int = 1'b1;
|
| 231 |
+
end else begin
|
| 232 |
+
ap_done_int = ap_done_reg;
|
| 233 |
+
end
|
| 234 |
+
end
|
| 235 |
+
|
| 236 |
+
always @ (*) begin
|
| 237 |
+
if (((ap_start_int == 1'b0) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 238 |
+
ap_idle = 1'b1;
|
| 239 |
+
end else begin
|
| 240 |
+
ap_idle = 1'b0;
|
| 241 |
+
end
|
| 242 |
+
end
|
| 243 |
+
|
| 244 |
+
always @ (*) begin
|
| 245 |
+
if (((1'b0 == ap_block_state1_pp0_stage0_iter0) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 246 |
+
ap_ready_int = 1'b1;
|
| 247 |
+
end else begin
|
| 248 |
+
ap_ready_int = 1'b0;
|
| 249 |
+
end
|
| 250 |
+
end
|
| 251 |
+
|
| 252 |
+
always @ (*) begin
|
| 253 |
+
if (((ap_loop_init == 1'b1) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 254 |
+
ap_sig_allocacmp_i1_load = 10'd0;
|
| 255 |
+
end else begin
|
| 256 |
+
ap_sig_allocacmp_i1_load = i1_fu_170;
|
| 257 |
+
end
|
| 258 |
+
end
|
| 259 |
+
|
| 260 |
+
always @ (*) begin
|
| 261 |
+
if ((~((ap_start_int == 1'b0) | (ap_done_reg == 1'b1)) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 262 |
+
layer29_out_blk_n = layer29_out_empty_n;
|
| 263 |
+
end else begin
|
| 264 |
+
layer29_out_blk_n = 1'b1;
|
| 265 |
+
end
|
| 266 |
+
end
|
| 267 |
+
|
| 268 |
+
always @ (*) begin
|
| 269 |
+
if (((1'b0 == ap_block_state1_pp0_stage0_iter0) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 270 |
+
layer29_out_read_local = 1'b1;
|
| 271 |
+
end else begin
|
| 272 |
+
layer29_out_read_local = 1'b0;
|
| 273 |
+
end
|
| 274 |
+
end
|
| 275 |
+
|
| 276 |
+
always @ (*) begin
|
| 277 |
+
if ((~((ap_start_int == 1'b0) | (ap_done_reg == 1'b1)) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 278 |
+
layer30_out_blk_n = layer30_out_full_n;
|
| 279 |
+
end else begin
|
| 280 |
+
layer30_out_blk_n = 1'b1;
|
| 281 |
+
end
|
| 282 |
+
end
|
| 283 |
+
|
| 284 |
+
always @ (*) begin
|
| 285 |
+
if (((1'b0 == ap_block_state1_pp0_stage0_iter0) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 286 |
+
layer30_out_write_local = 1'b1;
|
| 287 |
+
end else begin
|
| 288 |
+
layer30_out_write_local = 1'b0;
|
| 289 |
+
end
|
| 290 |
+
end
|
| 291 |
+
|
| 292 |
+
always @ (*) begin
|
| 293 |
+
if (((start_full_n == 1'b0) & (start_once_reg == 1'b0))) begin
|
| 294 |
+
real_start = 1'b0;
|
| 295 |
+
end else begin
|
| 296 |
+
real_start = ap_start;
|
| 297 |
+
end
|
| 298 |
+
end
|
| 299 |
+
|
| 300 |
+
always @ (*) begin
|
| 301 |
+
if (((real_start == 1'b1) & (start_once_reg == 1'b0))) begin
|
| 302 |
+
start_write = 1'b1;
|
| 303 |
+
end else begin
|
| 304 |
+
start_write = 1'b0;
|
| 305 |
+
end
|
| 306 |
+
end
|
| 307 |
+
|
| 308 |
+
always @ (*) begin
|
| 309 |
+
case (ap_CS_fsm)
|
| 310 |
+
ap_ST_fsm_state1 : begin
|
| 311 |
+
ap_NS_fsm = ap_ST_fsm_state1;
|
| 312 |
+
end
|
| 313 |
+
default : begin
|
| 314 |
+
ap_NS_fsm = 'bx;
|
| 315 |
+
end
|
| 316 |
+
endcase
|
| 317 |
+
end
|
| 318 |
+
|
| 319 |
+
assign ap_CS_fsm_state1 = ap_CS_fsm[32'd0];
|
| 320 |
+
|
| 321 |
+
always @ (*) begin
|
| 322 |
+
ap_block_state1_pp0_stage0_iter0 = ((ap_start_int == 1'b0) | (ap_done_reg == 1'b1) | (layer30_out_full_n == 1'b0) | (layer29_out_empty_n == 1'b0));
|
| 323 |
+
end
|
| 324 |
+
|
| 325 |
+
assign ap_done = ap_done_sig;
|
| 326 |
+
|
| 327 |
+
assign ap_loop_exit_ready = ap_condition_exit_pp0_iter0_stage0;
|
| 328 |
+
|
| 329 |
+
assign ap_ready = internal_ap_ready;
|
| 330 |
+
|
| 331 |
+
assign i_fu_770_p2 = (ap_sig_allocacmp_i1_load + 10'd1);
|
| 332 |
+
|
| 333 |
+
assign icmp_ln41_fu_776_p2 = ((ap_sig_allocacmp_i1_load == 10'd1023) ? 1'b1 : 1'b0);
|
| 334 |
+
|
| 335 |
+
assign icmp_ln51_220_fu_373_p2 = (($signed(trunc_ln44_220_fu_199_p4) > $signed(42'd0)) ? 1'b1 : 1'b0);
|
| 336 |
+
|
| 337 |
+
assign icmp_ln51_221_fu_397_p2 = (($signed(trunc_ln44_221_fu_209_p4) > $signed(42'd0)) ? 1'b1 : 1'b0);
|
| 338 |
+
|
| 339 |
+
assign icmp_ln51_222_fu_421_p2 = (($signed(trunc_ln44_222_fu_219_p4) > $signed(42'd0)) ? 1'b1 : 1'b0);
|
| 340 |
+
|
| 341 |
+
assign icmp_ln51_223_fu_445_p2 = (($signed(trunc_ln44_223_fu_229_p4) > $signed(42'd0)) ? 1'b1 : 1'b0);
|
| 342 |
+
|
| 343 |
+
assign icmp_ln51_224_fu_469_p2 = (($signed(trunc_ln44_224_fu_239_p4) > $signed(42'd0)) ? 1'b1 : 1'b0);
|
| 344 |
+
|
| 345 |
+
assign icmp_ln51_225_fu_493_p2 = (($signed(trunc_ln44_225_fu_249_p4) > $signed(42'd0)) ? 1'b1 : 1'b0);
|
| 346 |
+
|
| 347 |
+
assign icmp_ln51_226_fu_517_p2 = (($signed(trunc_ln44_226_fu_259_p4) > $signed(42'd0)) ? 1'b1 : 1'b0);
|
| 348 |
+
|
| 349 |
+
assign icmp_ln51_227_fu_541_p2 = (($signed(trunc_ln44_227_fu_269_p4) > $signed(42'd0)) ? 1'b1 : 1'b0);
|
| 350 |
+
|
| 351 |
+
assign icmp_ln51_228_fu_565_p2 = (($signed(trunc_ln44_228_fu_279_p4) > $signed(42'd0)) ? 1'b1 : 1'b0);
|
| 352 |
+
|
| 353 |
+
assign icmp_ln51_229_fu_589_p2 = (($signed(trunc_ln44_229_fu_289_p4) > $signed(42'd0)) ? 1'b1 : 1'b0);
|
| 354 |
+
|
| 355 |
+
assign icmp_ln51_230_fu_613_p2 = (($signed(trunc_ln44_230_fu_299_p4) > $signed(42'd0)) ? 1'b1 : 1'b0);
|
| 356 |
+
|
| 357 |
+
assign icmp_ln51_231_fu_637_p2 = (($signed(trunc_ln44_231_fu_309_p4) > $signed(42'd0)) ? 1'b1 : 1'b0);
|
| 358 |
+
|
| 359 |
+
assign icmp_ln51_232_fu_661_p2 = (($signed(trunc_ln44_232_fu_319_p4) > $signed(42'd0)) ? 1'b1 : 1'b0);
|
| 360 |
+
|
| 361 |
+
assign icmp_ln51_233_fu_685_p2 = (($signed(trunc_ln44_233_fu_329_p4) > $signed(42'd0)) ? 1'b1 : 1'b0);
|
| 362 |
+
|
| 363 |
+
assign icmp_ln51_234_fu_709_p2 = (($signed(trunc_ln44_234_fu_339_p4) > $signed(42'd0)) ? 1'b1 : 1'b0);
|
| 364 |
+
|
| 365 |
+
assign icmp_ln51_fu_349_p2 = (($signed(trunc_ln44_fu_195_p1) > $signed(42'd0)) ? 1'b1 : 1'b0);
|
| 366 |
+
|
| 367 |
+
assign layer29_out_read = layer29_out_read_local;
|
| 368 |
+
|
| 369 |
+
assign layer30_out_din = or_ln57_s_fu_733_p17;
|
| 370 |
+
|
| 371 |
+
assign layer30_out_write = layer30_out_write_local;
|
| 372 |
+
|
| 373 |
+
assign or_ln57_s_fu_733_p17 = {{{{{{{{{{{{{{{{select_ln51_210_fu_725_p3}, {select_ln51_209_fu_701_p3}}, {select_ln51_208_fu_677_p3}}, {select_ln51_207_fu_653_p3}}, {select_ln51_206_fu_629_p3}}, {select_ln51_205_fu_605_p3}}, {select_ln51_204_fu_581_p3}}, {select_ln51_203_fu_557_p3}}, {select_ln51_202_fu_533_p3}}, {select_ln51_201_fu_509_p3}}, {select_ln51_200_fu_485_p3}}, {select_ln51_fu_461_p3}}, {out_data_87_fu_437_p3}}, {out_data_85_fu_413_p3}}, {out_data_83_fu_389_p3}}, {out_data_81_fu_365_p3}};
|
| 374 |
+
|
| 375 |
+
assign out_data_81_fu_365_p3 = ((icmp_ln51_fu_349_p2[0:0] == 1'b1) ? out_data_fu_355_p4 : 16'd0);
|
| 376 |
+
|
| 377 |
+
assign out_data_82_fu_379_p4 = {{layer29_out_dout[67:52]}};
|
| 378 |
+
|
| 379 |
+
assign out_data_83_fu_389_p3 = ((icmp_ln51_220_fu_373_p2[0:0] == 1'b1) ? out_data_82_fu_379_p4 : 16'd0);
|
| 380 |
+
|
| 381 |
+
assign out_data_84_fu_403_p4 = {{layer29_out_dout[109:94]}};
|
| 382 |
+
|
| 383 |
+
assign out_data_85_fu_413_p3 = ((icmp_ln51_221_fu_397_p2[0:0] == 1'b1) ? out_data_84_fu_403_p4 : 16'd0);
|
| 384 |
+
|
| 385 |
+
assign out_data_86_fu_427_p4 = {{layer29_out_dout[151:136]}};
|
| 386 |
+
|
| 387 |
+
assign out_data_87_fu_437_p3 = ((icmp_ln51_222_fu_421_p2[0:0] == 1'b1) ? out_data_86_fu_427_p4 : 16'd0);
|
| 388 |
+
|
| 389 |
+
assign out_data_fu_355_p4 = {{layer29_out_dout[25:10]}};
|
| 390 |
+
|
| 391 |
+
assign select_ln51_200_fu_485_p3 = ((icmp_ln51_224_fu_469_p2[0:0] == 1'b1) ? trunc_ln52_200_fu_475_p4 : 16'd0);
|
| 392 |
+
|
| 393 |
+
assign select_ln51_201_fu_509_p3 = ((icmp_ln51_225_fu_493_p2[0:0] == 1'b1) ? trunc_ln52_201_fu_499_p4 : 16'd0);
|
| 394 |
+
|
| 395 |
+
assign select_ln51_202_fu_533_p3 = ((icmp_ln51_226_fu_517_p2[0:0] == 1'b1) ? trunc_ln52_202_fu_523_p4 : 16'd0);
|
| 396 |
+
|
| 397 |
+
assign select_ln51_203_fu_557_p3 = ((icmp_ln51_227_fu_541_p2[0:0] == 1'b1) ? trunc_ln52_203_fu_547_p4 : 16'd0);
|
| 398 |
+
|
| 399 |
+
assign select_ln51_204_fu_581_p3 = ((icmp_ln51_228_fu_565_p2[0:0] == 1'b1) ? trunc_ln52_204_fu_571_p4 : 16'd0);
|
| 400 |
+
|
| 401 |
+
assign select_ln51_205_fu_605_p3 = ((icmp_ln51_229_fu_589_p2[0:0] == 1'b1) ? trunc_ln52_205_fu_595_p4 : 16'd0);
|
| 402 |
+
|
| 403 |
+
assign select_ln51_206_fu_629_p3 = ((icmp_ln51_230_fu_613_p2[0:0] == 1'b1) ? trunc_ln52_206_fu_619_p4 : 16'd0);
|
| 404 |
+
|
| 405 |
+
assign select_ln51_207_fu_653_p3 = ((icmp_ln51_231_fu_637_p2[0:0] == 1'b1) ? trunc_ln52_207_fu_643_p4 : 16'd0);
|
| 406 |
+
|
| 407 |
+
assign select_ln51_208_fu_677_p3 = ((icmp_ln51_232_fu_661_p2[0:0] == 1'b1) ? trunc_ln52_208_fu_667_p4 : 16'd0);
|
| 408 |
+
|
| 409 |
+
assign select_ln51_209_fu_701_p3 = ((icmp_ln51_233_fu_685_p2[0:0] == 1'b1) ? trunc_ln52_209_fu_691_p4 : 16'd0);
|
| 410 |
+
|
| 411 |
+
assign select_ln51_210_fu_725_p3 = ((icmp_ln51_234_fu_709_p2[0:0] == 1'b1) ? trunc_ln52_210_fu_715_p4 : 16'd0);
|
| 412 |
+
|
| 413 |
+
assign select_ln51_fu_461_p3 = ((icmp_ln51_223_fu_445_p2[0:0] == 1'b1) ? trunc_ln_fu_451_p4 : 16'd0);
|
| 414 |
+
|
| 415 |
+
assign start_out = real_start;
|
| 416 |
+
|
| 417 |
+
assign trunc_ln44_220_fu_199_p4 = {{layer29_out_dout[83:42]}};
|
| 418 |
+
|
| 419 |
+
assign trunc_ln44_221_fu_209_p4 = {{layer29_out_dout[125:84]}};
|
| 420 |
+
|
| 421 |
+
assign trunc_ln44_222_fu_219_p4 = {{layer29_out_dout[167:126]}};
|
| 422 |
+
|
| 423 |
+
assign trunc_ln44_223_fu_229_p4 = {{layer29_out_dout[209:168]}};
|
| 424 |
+
|
| 425 |
+
assign trunc_ln44_224_fu_239_p4 = {{layer29_out_dout[251:210]}};
|
| 426 |
+
|
| 427 |
+
assign trunc_ln44_225_fu_249_p4 = {{layer29_out_dout[293:252]}};
|
| 428 |
+
|
| 429 |
+
assign trunc_ln44_226_fu_259_p4 = {{layer29_out_dout[335:294]}};
|
| 430 |
+
|
| 431 |
+
assign trunc_ln44_227_fu_269_p4 = {{layer29_out_dout[377:336]}};
|
| 432 |
+
|
| 433 |
+
assign trunc_ln44_228_fu_279_p4 = {{layer29_out_dout[419:378]}};
|
| 434 |
+
|
| 435 |
+
assign trunc_ln44_229_fu_289_p4 = {{layer29_out_dout[461:420]}};
|
| 436 |
+
|
| 437 |
+
assign trunc_ln44_230_fu_299_p4 = {{layer29_out_dout[503:462]}};
|
| 438 |
+
|
| 439 |
+
assign trunc_ln44_231_fu_309_p4 = {{layer29_out_dout[545:504]}};
|
| 440 |
+
|
| 441 |
+
assign trunc_ln44_232_fu_319_p4 = {{layer29_out_dout[587:546]}};
|
| 442 |
+
|
| 443 |
+
assign trunc_ln44_233_fu_329_p4 = {{layer29_out_dout[629:588]}};
|
| 444 |
+
|
| 445 |
+
assign trunc_ln44_234_fu_339_p4 = {{layer29_out_dout[671:630]}};
|
| 446 |
+
|
| 447 |
+
assign trunc_ln44_fu_195_p1 = layer29_out_dout[41:0];
|
| 448 |
+
|
| 449 |
+
assign trunc_ln52_200_fu_475_p4 = {{layer29_out_dout[235:220]}};
|
| 450 |
+
|
| 451 |
+
assign trunc_ln52_201_fu_499_p4 = {{layer29_out_dout[277:262]}};
|
| 452 |
+
|
| 453 |
+
assign trunc_ln52_202_fu_523_p4 = {{layer29_out_dout[319:304]}};
|
| 454 |
+
|
| 455 |
+
assign trunc_ln52_203_fu_547_p4 = {{layer29_out_dout[361:346]}};
|
| 456 |
+
|
| 457 |
+
assign trunc_ln52_204_fu_571_p4 = {{layer29_out_dout[403:388]}};
|
| 458 |
+
|
| 459 |
+
assign trunc_ln52_205_fu_595_p4 = {{layer29_out_dout[445:430]}};
|
| 460 |
+
|
| 461 |
+
assign trunc_ln52_206_fu_619_p4 = {{layer29_out_dout[487:472]}};
|
| 462 |
+
|
| 463 |
+
assign trunc_ln52_207_fu_643_p4 = {{layer29_out_dout[529:514]}};
|
| 464 |
+
|
| 465 |
+
assign trunc_ln52_208_fu_667_p4 = {{layer29_out_dout[571:556]}};
|
| 466 |
+
|
| 467 |
+
assign trunc_ln52_209_fu_691_p4 = {{layer29_out_dout[613:598]}};
|
| 468 |
+
|
| 469 |
+
assign trunc_ln52_210_fu_715_p4 = {{layer29_out_dout[655:640]}};
|
| 470 |
+
|
| 471 |
+
assign trunc_ln_fu_451_p4 = {{layer29_out_dout[193:178]}};
|
| 472 |
+
|
| 473 |
+
endmodule //myproject_relu_array_ap_fixed_16u_array_ap_fixed_16_6_5_3_0_16u_relu_config30_s
|
myproject_prj/solution1/impl/verilog/myproject_shift_line_buffer_array_ap_fixed_16_6_5_3_0_1u_config2_s.v
ADDED
|
@@ -0,0 +1,352 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// ==============================================================
|
| 2 |
+
// Generated by Vitis HLS v2024.1
|
| 3 |
+
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
| 4 |
+
// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
|
| 5 |
+
// ==============================================================
|
| 6 |
+
|
| 7 |
+
`timescale 1 ns / 1 ps
|
| 8 |
+
|
| 9 |
+
module myproject_shift_line_buffer_array_ap_fixed_16_6_5_3_0_1u_config2_s (
|
| 10 |
+
ap_clk,
|
| 11 |
+
ap_rst,
|
| 12 |
+
ap_start,
|
| 13 |
+
ap_done,
|
| 14 |
+
ap_idle,
|
| 15 |
+
ap_ready,
|
| 16 |
+
in_elem_0_0_0_0_0_val,
|
| 17 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_175_i,
|
| 18 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_175_o,
|
| 19 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_175_o_ap_vld,
|
| 20 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_176,
|
| 21 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_176_ap_vld,
|
| 22 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_172_i,
|
| 23 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_172_o,
|
| 24 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_172_o_ap_vld,
|
| 25 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_173,
|
| 26 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_173_ap_vld,
|
| 27 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_169_i,
|
| 28 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_169_o,
|
| 29 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_169_o_ap_vld,
|
| 30 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_170,
|
| 31 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_170_ap_vld,
|
| 32 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_174_i,
|
| 33 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_174_o,
|
| 34 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_174_o_ap_vld,
|
| 35 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_171_i,
|
| 36 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_171_o,
|
| 37 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_171_o_ap_vld,
|
| 38 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_168_i,
|
| 39 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_168_o,
|
| 40 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_168_o_ap_vld
|
| 41 |
+
);
|
| 42 |
+
|
| 43 |
+
parameter ap_ST_fsm_state1 = 1'd1;
|
| 44 |
+
|
| 45 |
+
input ap_clk;
|
| 46 |
+
input ap_rst;
|
| 47 |
+
input ap_start;
|
| 48 |
+
output ap_done;
|
| 49 |
+
output ap_idle;
|
| 50 |
+
output ap_ready;
|
| 51 |
+
input [15:0] in_elem_0_0_0_0_0_val;
|
| 52 |
+
input [15:0] void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_175_i;
|
| 53 |
+
output [15:0] void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_175_o;
|
| 54 |
+
output void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_175_o_ap_vld;
|
| 55 |
+
output [15:0] void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_176;
|
| 56 |
+
output void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_176_ap_vld;
|
| 57 |
+
input [15:0] void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_172_i;
|
| 58 |
+
output [15:0] void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_172_o;
|
| 59 |
+
output void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_172_o_ap_vld;
|
| 60 |
+
output [15:0] void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_173;
|
| 61 |
+
output void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_173_ap_vld;
|
| 62 |
+
input [15:0] void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_169_i;
|
| 63 |
+
output [15:0] void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_169_o;
|
| 64 |
+
output void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_169_o_ap_vld;
|
| 65 |
+
output [15:0] void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_170;
|
| 66 |
+
output void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_170_ap_vld;
|
| 67 |
+
input [15:0] void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_174_i;
|
| 68 |
+
output [15:0] void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_174_o;
|
| 69 |
+
output void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_174_o_ap_vld;
|
| 70 |
+
input [15:0] void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_171_i;
|
| 71 |
+
output [15:0] void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_171_o;
|
| 72 |
+
output void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_171_o_ap_vld;
|
| 73 |
+
input [15:0] void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_168_i;
|
| 74 |
+
output [15:0] void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_168_o;
|
| 75 |
+
output void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_168_o_ap_vld;
|
| 76 |
+
|
| 77 |
+
reg ap_done;
|
| 78 |
+
reg ap_idle;
|
| 79 |
+
reg ap_ready;
|
| 80 |
+
reg[15:0] void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_175_o;
|
| 81 |
+
reg void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_175_o_ap_vld;
|
| 82 |
+
reg void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_176_ap_vld;
|
| 83 |
+
reg[15:0] void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_172_o;
|
| 84 |
+
reg void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_172_o_ap_vld;
|
| 85 |
+
reg void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_173_ap_vld;
|
| 86 |
+
reg[15:0] void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_169_o;
|
| 87 |
+
reg void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_169_o_ap_vld;
|
| 88 |
+
reg void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_170_ap_vld;
|
| 89 |
+
reg[15:0] void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_174_o;
|
| 90 |
+
reg void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_174_o_ap_vld;
|
| 91 |
+
reg[15:0] void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_171_o;
|
| 92 |
+
reg void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_171_o_ap_vld;
|
| 93 |
+
reg[15:0] void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_168_o;
|
| 94 |
+
reg void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_168_o_ap_vld;
|
| 95 |
+
|
| 96 |
+
(* fsm_encoding = "none" *) reg [0:0] ap_CS_fsm;
|
| 97 |
+
wire ap_CS_fsm_state1;
|
| 98 |
+
reg void_conv_2d_buffer_resource_cl_stream_stream_weight_t_bias_t_line_buffer_ce0;
|
| 99 |
+
reg void_conv_2d_buffer_resource_cl_stream_stream_weight_t_bias_t_line_buffer_we0;
|
| 100 |
+
wire [15:0] void_conv_2d_buffer_resource_cl_stream_stream_weight_t_bias_t_line_buffer_q0;
|
| 101 |
+
reg void_conv_2d_buffer_resource_cl_stream_stream_weight_t_bias_t_line_buffer_1_ce0;
|
| 102 |
+
reg void_conv_2d_buffer_resource_cl_stream_stream_weight_t_bias_t_line_buffer_1_we0;
|
| 103 |
+
wire [15:0] void_conv_2d_buffer_resource_cl_stream_stream_weight_t_bias_t_line_buffer_1_q0;
|
| 104 |
+
reg [0:0] ap_NS_fsm;
|
| 105 |
+
reg ap_ST_fsm_state1_blk;
|
| 106 |
+
wire ap_ce_reg;
|
| 107 |
+
|
| 108 |
+
// power-on initialization
|
| 109 |
+
initial begin
|
| 110 |
+
#0 ap_CS_fsm = 1'd1;
|
| 111 |
+
end
|
| 112 |
+
|
| 113 |
+
myproject_shift_line_buffer_array_ap_fixed_16_6_5_3_0_1u_config2_s_void_conv_2d_buffer_bkb #(
|
| 114 |
+
.DataWidth( 16 ),
|
| 115 |
+
.AddressRange( 66 ),
|
| 116 |
+
.AddressWidth( 7 ))
|
| 117 |
+
void_conv_2d_buffer_resource_cl_stream_stream_weight_t_bias_t_line_buffer_U(
|
| 118 |
+
.clk(ap_clk),
|
| 119 |
+
.reset(ap_rst),
|
| 120 |
+
.address0(7'd65),
|
| 121 |
+
.ce0(void_conv_2d_buffer_resource_cl_stream_stream_weight_t_bias_t_line_buffer_ce0),
|
| 122 |
+
.we0(void_conv_2d_buffer_resource_cl_stream_stream_weight_t_bias_t_line_buffer_we0),
|
| 123 |
+
.d0(in_elem_0_0_0_0_0_val),
|
| 124 |
+
.q0(void_conv_2d_buffer_resource_cl_stream_stream_weight_t_bias_t_line_buffer_q0)
|
| 125 |
+
);
|
| 126 |
+
|
| 127 |
+
myproject_shift_line_buffer_array_ap_fixed_16_6_5_3_0_1u_config2_s_void_conv_2d_buffer_bkb #(
|
| 128 |
+
.DataWidth( 16 ),
|
| 129 |
+
.AddressRange( 66 ),
|
| 130 |
+
.AddressWidth( 7 ))
|
| 131 |
+
void_conv_2d_buffer_resource_cl_stream_stream_weight_t_bias_t_line_buffer_1_U(
|
| 132 |
+
.clk(ap_clk),
|
| 133 |
+
.reset(ap_rst),
|
| 134 |
+
.address0(7'd65),
|
| 135 |
+
.ce0(void_conv_2d_buffer_resource_cl_stream_stream_weight_t_bias_t_line_buffer_1_ce0),
|
| 136 |
+
.we0(void_conv_2d_buffer_resource_cl_stream_stream_weight_t_bias_t_line_buffer_1_we0),
|
| 137 |
+
.d0(void_conv_2d_buffer_resource_cl_stream_stream_weight_t_bias_t_line_buffer_q0),
|
| 138 |
+
.q0(void_conv_2d_buffer_resource_cl_stream_stream_weight_t_bias_t_line_buffer_1_q0)
|
| 139 |
+
);
|
| 140 |
+
|
| 141 |
+
always @ (posedge ap_clk) begin
|
| 142 |
+
if (ap_rst == 1'b1) begin
|
| 143 |
+
ap_CS_fsm <= ap_ST_fsm_state1;
|
| 144 |
+
end else begin
|
| 145 |
+
ap_CS_fsm <= ap_NS_fsm;
|
| 146 |
+
end
|
| 147 |
+
end
|
| 148 |
+
|
| 149 |
+
always @ (*) begin
|
| 150 |
+
if ((ap_start == 1'b0)) begin
|
| 151 |
+
ap_ST_fsm_state1_blk = 1'b1;
|
| 152 |
+
end else begin
|
| 153 |
+
ap_ST_fsm_state1_blk = 1'b0;
|
| 154 |
+
end
|
| 155 |
+
end
|
| 156 |
+
|
| 157 |
+
always @ (*) begin
|
| 158 |
+
if ((((ap_start == 1'b0) & (1'b1 == ap_CS_fsm_state1)) | ((ap_start == 1'b1) & (1'b1 == ap_CS_fsm_state1)))) begin
|
| 159 |
+
ap_done = 1'b1;
|
| 160 |
+
end else begin
|
| 161 |
+
ap_done = 1'b0;
|
| 162 |
+
end
|
| 163 |
+
end
|
| 164 |
+
|
| 165 |
+
always @ (*) begin
|
| 166 |
+
if (((ap_start == 1'b0) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 167 |
+
ap_idle = 1'b1;
|
| 168 |
+
end else begin
|
| 169 |
+
ap_idle = 1'b0;
|
| 170 |
+
end
|
| 171 |
+
end
|
| 172 |
+
|
| 173 |
+
always @ (*) begin
|
| 174 |
+
if (((ap_start == 1'b1) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 175 |
+
ap_ready = 1'b1;
|
| 176 |
+
end else begin
|
| 177 |
+
ap_ready = 1'b0;
|
| 178 |
+
end
|
| 179 |
+
end
|
| 180 |
+
|
| 181 |
+
always @ (*) begin
|
| 182 |
+
if ((1'b1 == ap_CS_fsm_state1)) begin
|
| 183 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_168_o = in_elem_0_0_0_0_0_val;
|
| 184 |
+
end else begin
|
| 185 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_168_o = void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_168_i;
|
| 186 |
+
end
|
| 187 |
+
end
|
| 188 |
+
|
| 189 |
+
always @ (*) begin
|
| 190 |
+
if (((ap_start == 1'b1) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 191 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_168_o_ap_vld = 1'b1;
|
| 192 |
+
end else begin
|
| 193 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_168_o_ap_vld = 1'b0;
|
| 194 |
+
end
|
| 195 |
+
end
|
| 196 |
+
|
| 197 |
+
always @ (*) begin
|
| 198 |
+
if ((1'b1 == ap_CS_fsm_state1)) begin
|
| 199 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_169_o = void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_168_i;
|
| 200 |
+
end else begin
|
| 201 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_169_o = void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_169_i;
|
| 202 |
+
end
|
| 203 |
+
end
|
| 204 |
+
|
| 205 |
+
always @ (*) begin
|
| 206 |
+
if (((ap_start == 1'b1) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 207 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_169_o_ap_vld = 1'b1;
|
| 208 |
+
end else begin
|
| 209 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_169_o_ap_vld = 1'b0;
|
| 210 |
+
end
|
| 211 |
+
end
|
| 212 |
+
|
| 213 |
+
always @ (*) begin
|
| 214 |
+
if (((ap_start == 1'b1) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 215 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_170_ap_vld = 1'b1;
|
| 216 |
+
end else begin
|
| 217 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_170_ap_vld = 1'b0;
|
| 218 |
+
end
|
| 219 |
+
end
|
| 220 |
+
|
| 221 |
+
always @ (*) begin
|
| 222 |
+
if ((1'b1 == ap_CS_fsm_state1)) begin
|
| 223 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_171_o = void_conv_2d_buffer_resource_cl_stream_stream_weight_t_bias_t_line_buffer_q0;
|
| 224 |
+
end else begin
|
| 225 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_171_o = void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_171_i;
|
| 226 |
+
end
|
| 227 |
+
end
|
| 228 |
+
|
| 229 |
+
always @ (*) begin
|
| 230 |
+
if (((ap_start == 1'b1) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 231 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_171_o_ap_vld = 1'b1;
|
| 232 |
+
end else begin
|
| 233 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_171_o_ap_vld = 1'b0;
|
| 234 |
+
end
|
| 235 |
+
end
|
| 236 |
+
|
| 237 |
+
always @ (*) begin
|
| 238 |
+
if ((1'b1 == ap_CS_fsm_state1)) begin
|
| 239 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_172_o = void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_171_i;
|
| 240 |
+
end else begin
|
| 241 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_172_o = void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_172_i;
|
| 242 |
+
end
|
| 243 |
+
end
|
| 244 |
+
|
| 245 |
+
always @ (*) begin
|
| 246 |
+
if (((ap_start == 1'b1) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 247 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_172_o_ap_vld = 1'b1;
|
| 248 |
+
end else begin
|
| 249 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_172_o_ap_vld = 1'b0;
|
| 250 |
+
end
|
| 251 |
+
end
|
| 252 |
+
|
| 253 |
+
always @ (*) begin
|
| 254 |
+
if (((ap_start == 1'b1) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 255 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_173_ap_vld = 1'b1;
|
| 256 |
+
end else begin
|
| 257 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_173_ap_vld = 1'b0;
|
| 258 |
+
end
|
| 259 |
+
end
|
| 260 |
+
|
| 261 |
+
always @ (*) begin
|
| 262 |
+
if ((1'b1 == ap_CS_fsm_state1)) begin
|
| 263 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_174_o = void_conv_2d_buffer_resource_cl_stream_stream_weight_t_bias_t_line_buffer_1_q0;
|
| 264 |
+
end else begin
|
| 265 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_174_o = void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_174_i;
|
| 266 |
+
end
|
| 267 |
+
end
|
| 268 |
+
|
| 269 |
+
always @ (*) begin
|
| 270 |
+
if (((ap_start == 1'b1) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 271 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_174_o_ap_vld = 1'b1;
|
| 272 |
+
end else begin
|
| 273 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_174_o_ap_vld = 1'b0;
|
| 274 |
+
end
|
| 275 |
+
end
|
| 276 |
+
|
| 277 |
+
always @ (*) begin
|
| 278 |
+
if ((1'b1 == ap_CS_fsm_state1)) begin
|
| 279 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_175_o = void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_174_i;
|
| 280 |
+
end else begin
|
| 281 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_175_o = void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_175_i;
|
| 282 |
+
end
|
| 283 |
+
end
|
| 284 |
+
|
| 285 |
+
always @ (*) begin
|
| 286 |
+
if (((ap_start == 1'b1) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 287 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_175_o_ap_vld = 1'b1;
|
| 288 |
+
end else begin
|
| 289 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_175_o_ap_vld = 1'b0;
|
| 290 |
+
end
|
| 291 |
+
end
|
| 292 |
+
|
| 293 |
+
always @ (*) begin
|
| 294 |
+
if (((ap_start == 1'b1) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 295 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_176_ap_vld = 1'b1;
|
| 296 |
+
end else begin
|
| 297 |
+
void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_176_ap_vld = 1'b0;
|
| 298 |
+
end
|
| 299 |
+
end
|
| 300 |
+
|
| 301 |
+
always @ (*) begin
|
| 302 |
+
if (((ap_start == 1'b1) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 303 |
+
void_conv_2d_buffer_resource_cl_stream_stream_weight_t_bias_t_line_buffer_1_ce0 = 1'd1;
|
| 304 |
+
end else begin
|
| 305 |
+
void_conv_2d_buffer_resource_cl_stream_stream_weight_t_bias_t_line_buffer_1_ce0 = 1'b0;
|
| 306 |
+
end
|
| 307 |
+
end
|
| 308 |
+
|
| 309 |
+
always @ (*) begin
|
| 310 |
+
if (((ap_start == 1'b1) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 311 |
+
void_conv_2d_buffer_resource_cl_stream_stream_weight_t_bias_t_line_buffer_1_we0 = 1'd1;
|
| 312 |
+
end else begin
|
| 313 |
+
void_conv_2d_buffer_resource_cl_stream_stream_weight_t_bias_t_line_buffer_1_we0 = 1'b0;
|
| 314 |
+
end
|
| 315 |
+
end
|
| 316 |
+
|
| 317 |
+
always @ (*) begin
|
| 318 |
+
if (((ap_start == 1'b1) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 319 |
+
void_conv_2d_buffer_resource_cl_stream_stream_weight_t_bias_t_line_buffer_ce0 = 1'd1;
|
| 320 |
+
end else begin
|
| 321 |
+
void_conv_2d_buffer_resource_cl_stream_stream_weight_t_bias_t_line_buffer_ce0 = 1'b0;
|
| 322 |
+
end
|
| 323 |
+
end
|
| 324 |
+
|
| 325 |
+
always @ (*) begin
|
| 326 |
+
if (((ap_start == 1'b1) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 327 |
+
void_conv_2d_buffer_resource_cl_stream_stream_weight_t_bias_t_line_buffer_we0 = 1'd1;
|
| 328 |
+
end else begin
|
| 329 |
+
void_conv_2d_buffer_resource_cl_stream_stream_weight_t_bias_t_line_buffer_we0 = 1'b0;
|
| 330 |
+
end
|
| 331 |
+
end
|
| 332 |
+
|
| 333 |
+
always @ (*) begin
|
| 334 |
+
case (ap_CS_fsm)
|
| 335 |
+
ap_ST_fsm_state1 : begin
|
| 336 |
+
ap_NS_fsm = ap_ST_fsm_state1;
|
| 337 |
+
end
|
| 338 |
+
default : begin
|
| 339 |
+
ap_NS_fsm = 'bx;
|
| 340 |
+
end
|
| 341 |
+
endcase
|
| 342 |
+
end
|
| 343 |
+
|
| 344 |
+
assign ap_CS_fsm_state1 = ap_CS_fsm[32'd0];
|
| 345 |
+
|
| 346 |
+
assign void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_170 = void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_169_i;
|
| 347 |
+
|
| 348 |
+
assign void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_173 = void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_172_i;
|
| 349 |
+
|
| 350 |
+
assign void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_176 = void_compute_output_buffer_2d_array_const_ap_shift_reg_n_chan_stream_weig_175_i;
|
| 351 |
+
|
| 352 |
+
endmodule //myproject_shift_line_buffer_array_ap_fixed_16_6_5_3_0_1u_config2_s
|
myproject_prj/solution1/impl/verilog/myproject_shift_line_buffer_array_ap_fixed_16_6_5_3_0_24u_config35_s.v
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
myproject_prj/solution1/impl/verilog/myproject_shift_line_buffer_array_ap_fixed_16_6_5_3_0_32u_config17_s_p_ZZN4nnet26conv_2dOK.v
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// ==============================================================
|
| 2 |
+
// Generated by Vitis HLS v2024.1
|
| 3 |
+
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
| 4 |
+
// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
|
| 5 |
+
// ==============================================================
|
| 6 |
+
|
| 7 |
+
`timescale 1 ns / 1 ps
|
| 8 |
+
|
| 9 |
+
module myproject_shift_line_buffer_array_ap_fixed_16_6_5_3_0_32u_config17_s_p_ZZN4nnet26conv_2dOK_core (
|
| 10 |
+
clk,
|
| 11 |
+
ce,
|
| 12 |
+
din,
|
| 13 |
+
addr,
|
| 14 |
+
dout);
|
| 15 |
+
|
| 16 |
+
parameter DATA_WIDTH = 16;
|
| 17 |
+
parameter ADDR_WIDTH = 4;
|
| 18 |
+
parameter DEPTH = 10;
|
| 19 |
+
|
| 20 |
+
input clk;
|
| 21 |
+
input ce;
|
| 22 |
+
input [DATA_WIDTH-1:0] din;
|
| 23 |
+
input [ADDR_WIDTH-1:0] addr;
|
| 24 |
+
output [DATA_WIDTH-1:0] dout;
|
| 25 |
+
|
| 26 |
+
reg[DATA_WIDTH-1:0] ShiftRegMem[0:DEPTH-1];
|
| 27 |
+
|
| 28 |
+
integer i;
|
| 29 |
+
|
| 30 |
+
|
| 31 |
+
initial
|
| 32 |
+
begin
|
| 33 |
+
for(i=0;i<DEPTH;i=i+1)
|
| 34 |
+
ShiftRegMem[i] <= {DATA_WIDTH{1'b0}};
|
| 35 |
+
end
|
| 36 |
+
|
| 37 |
+
always @ (posedge clk)
|
| 38 |
+
begin
|
| 39 |
+
if (ce)
|
| 40 |
+
begin
|
| 41 |
+
for(i=0;i<DEPTH-1;i=i+1)
|
| 42 |
+
ShiftRegMem[i+1] <= ShiftRegMem[i];
|
| 43 |
+
ShiftRegMem[0] <= din;
|
| 44 |
+
end
|
| 45 |
+
end
|
| 46 |
+
|
| 47 |
+
|
| 48 |
+
assign dout = ShiftRegMem[addr];
|
| 49 |
+
|
| 50 |
+
|
| 51 |
+
|
| 52 |
+
|
| 53 |
+
endmodule
|
| 54 |
+
|
| 55 |
+
module myproject_shift_line_buffer_array_ap_fixed_16_6_5_3_0_32u_config17_s_p_ZZN4nnet26conv_2dOK (
|
| 56 |
+
clk,
|
| 57 |
+
reset,
|
| 58 |
+
address0,
|
| 59 |
+
ce0,
|
| 60 |
+
we0,
|
| 61 |
+
d0,
|
| 62 |
+
q0);
|
| 63 |
+
|
| 64 |
+
parameter DataWidth = 16;
|
| 65 |
+
parameter AddressRange = 10;
|
| 66 |
+
parameter AddressWidth = 4;
|
| 67 |
+
|
| 68 |
+
input clk;
|
| 69 |
+
input reset;
|
| 70 |
+
input [AddressWidth-1:0] address0;
|
| 71 |
+
input ce0;
|
| 72 |
+
input we0;
|
| 73 |
+
input [DataWidth-1:0] d0;
|
| 74 |
+
output [DataWidth-1:0] q0;
|
| 75 |
+
|
| 76 |
+
myproject_shift_line_buffer_array_ap_fixed_16_6_5_3_0_32u_config17_s_p_ZZN4nnet26conv_2dOK_core #(
|
| 77 |
+
.DATA_WIDTH( DataWidth ),
|
| 78 |
+
.ADDR_WIDTH( AddressWidth ),
|
| 79 |
+
.DEPTH( AddressRange ))
|
| 80 |
+
myproject_shift_line_buffer_array_ap_fixed_16_6_5_3_0_32u_config17_s_p_ZZN4nnet26conv_2dOK_core_U(
|
| 81 |
+
.clk(clk),
|
| 82 |
+
.ce(we0),
|
| 83 |
+
.din(d0),
|
| 84 |
+
.addr(address0),
|
| 85 |
+
.dout(q0)
|
| 86 |
+
);
|
| 87 |
+
|
| 88 |
+
endmodule
|
myproject_prj/solution1/impl/verilog/myproject_shift_line_buffer_array_ap_fixed_16_6_5_3_0_48u_config29_s.v
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
myproject_prj/solution1/impl/verilog/myproject_shift_line_buffer_array_ap_fixed_16_6_5_3_0_8u_config7_s.v
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
myproject_prj/solution1/impl/verilog/myproject_start_for_clone_stream_array_ap_fixed_16u_array_ap_fixed_16_6_5_3_0_16u_16384oqc.v
ADDED
|
@@ -0,0 +1,151 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// ==============================================================
|
| 2 |
+
// Generated by Vitis HLS v2024.1
|
| 3 |
+
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
| 4 |
+
// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
|
| 5 |
+
// ==============================================================
|
| 6 |
+
// 67d7842dbbe25473c3c32b93c0da8047785f30d78e8a024de1b57352245f9689
|
| 7 |
+
|
| 8 |
+
`timescale 1ns/1ps
|
| 9 |
+
//RAW latency 1
|
| 10 |
+
|
| 11 |
+
module myproject_start_for_clone_stream_array_ap_fixed_16u_array_ap_fixed_16_6_5_3_0_16u_16384oqc
|
| 12 |
+
#(parameter
|
| 13 |
+
MEM_STYLE = "shiftReg",
|
| 14 |
+
DATA_WIDTH = 1,
|
| 15 |
+
ADDR_WIDTH = 1,
|
| 16 |
+
DEPTH = 2)
|
| 17 |
+
(
|
| 18 |
+
// system signal
|
| 19 |
+
input wire clk,
|
| 20 |
+
input wire reset,
|
| 21 |
+
|
| 22 |
+
// write
|
| 23 |
+
output wire if_full_n,
|
| 24 |
+
input wire if_write_ce,
|
| 25 |
+
input wire if_write,
|
| 26 |
+
input wire [DATA_WIDTH-1:0] if_din,
|
| 27 |
+
|
| 28 |
+
// read
|
| 29 |
+
|
| 30 |
+
output wire if_empty_n,
|
| 31 |
+
input wire if_read_ce,
|
| 32 |
+
input wire if_read,
|
| 33 |
+
output wire [DATA_WIDTH-1:0] if_dout
|
| 34 |
+
);
|
| 35 |
+
//------------------------Parameter----------------------
|
| 36 |
+
localparam
|
| 37 |
+
SRL_DEPTH = DEPTH,
|
| 38 |
+
SRL_AWIDTH = ADDR_WIDTH;
|
| 39 |
+
//------------------------Local signal-------------------
|
| 40 |
+
reg [SRL_AWIDTH-1:0] addr;
|
| 41 |
+
wire push;
|
| 42 |
+
wire pop;
|
| 43 |
+
reg [SRL_AWIDTH:0] mOutPtr;
|
| 44 |
+
reg empty_n = 1'b0;
|
| 45 |
+
reg full_n = 1'b1;
|
| 46 |
+
|
| 47 |
+
//------------------------Instantiation------------------
|
| 48 |
+
myproject_start_for_clone_stream_array_ap_fixed_16u_array_ap_fixed_16_6_5_3_0_16u_16384oqc_ShiftReg
|
| 49 |
+
#( .DATA_WIDTH (DATA_WIDTH),
|
| 50 |
+
.ADDR_WIDTH (SRL_AWIDTH),
|
| 51 |
+
.DEPTH (SRL_DEPTH))
|
| 52 |
+
U_myproject_start_for_clone_stream_array_ap_fixed_16u_array_ap_fixed_16_6_5_3_0_16u_16384oqc_ShiftReg (
|
| 53 |
+
.clk (clk),
|
| 54 |
+
.we (push),
|
| 55 |
+
.addr (addr),
|
| 56 |
+
.din (if_din),
|
| 57 |
+
.dout (if_dout)
|
| 58 |
+
);
|
| 59 |
+
//------------------------Task and function--------------
|
| 60 |
+
|
| 61 |
+
//------------------------Body---------------------------
|
| 62 |
+
// num_data_valid
|
| 63 |
+
|
| 64 |
+
// almost full/empty
|
| 65 |
+
|
| 66 |
+
// program full/empty
|
| 67 |
+
|
| 68 |
+
assign if_full_n = full_n;
|
| 69 |
+
assign if_empty_n = empty_n;
|
| 70 |
+
|
| 71 |
+
assign push = full_n & if_write_ce & if_write;
|
| 72 |
+
assign pop = empty_n & if_read_ce & if_read;
|
| 73 |
+
|
| 74 |
+
// addr
|
| 75 |
+
always @(posedge clk) begin
|
| 76 |
+
if (reset)
|
| 77 |
+
addr <= {SRL_AWIDTH{1'b0}};
|
| 78 |
+
else if (push & ~pop && empty_n)
|
| 79 |
+
addr <= addr + 1'b1;
|
| 80 |
+
else if (~push & pop && (mOutPtr != 1))
|
| 81 |
+
addr <= addr - 1'b1;
|
| 82 |
+
end
|
| 83 |
+
|
| 84 |
+
// mOutPtr
|
| 85 |
+
always @(posedge clk) begin
|
| 86 |
+
if (reset)
|
| 87 |
+
mOutPtr <= {SRL_AWIDTH+1{1'b0}};
|
| 88 |
+
else if (push & ~pop)
|
| 89 |
+
mOutPtr <= mOutPtr + 1'b1;
|
| 90 |
+
else if (~push & pop)
|
| 91 |
+
mOutPtr <= mOutPtr - 1'b1;
|
| 92 |
+
end
|
| 93 |
+
|
| 94 |
+
// full_n
|
| 95 |
+
always @(posedge clk) begin
|
| 96 |
+
if (reset)
|
| 97 |
+
full_n <= 1'b1;
|
| 98 |
+
else if ((push & ~pop) && (mOutPtr == DEPTH - 1))
|
| 99 |
+
full_n <= 1'b0;
|
| 100 |
+
else if (~push & pop)
|
| 101 |
+
full_n <= 1'b1;
|
| 102 |
+
end
|
| 103 |
+
|
| 104 |
+
// empty_n
|
| 105 |
+
always @(posedge clk) begin
|
| 106 |
+
if (reset)
|
| 107 |
+
empty_n <= 1'b0;
|
| 108 |
+
else if (push & ~pop)
|
| 109 |
+
empty_n <= 1'b1;
|
| 110 |
+
else if ((~push & pop) && (mOutPtr == 1))
|
| 111 |
+
empty_n <= 1'b0;
|
| 112 |
+
end
|
| 113 |
+
|
| 114 |
+
// almost_full_n
|
| 115 |
+
|
| 116 |
+
// almost_empty_n
|
| 117 |
+
|
| 118 |
+
// prog_full_n
|
| 119 |
+
|
| 120 |
+
// prog_empty_n
|
| 121 |
+
|
| 122 |
+
endmodule
|
| 123 |
+
|
| 124 |
+
|
| 125 |
+
module myproject_start_for_clone_stream_array_ap_fixed_16u_array_ap_fixed_16_6_5_3_0_16u_16384oqc_ShiftReg
|
| 126 |
+
#(parameter
|
| 127 |
+
DATA_WIDTH = 1,
|
| 128 |
+
ADDR_WIDTH = 1,
|
| 129 |
+
DEPTH = 2)
|
| 130 |
+
(
|
| 131 |
+
input wire clk,
|
| 132 |
+
input wire we,
|
| 133 |
+
input wire [ADDR_WIDTH-1:0] addr,
|
| 134 |
+
input wire [DATA_WIDTH-1:0] din,
|
| 135 |
+
output wire [DATA_WIDTH-1:0] dout
|
| 136 |
+
);
|
| 137 |
+
|
| 138 |
+
reg [DATA_WIDTH-1:0] SRL_SIG [0:DEPTH-1];
|
| 139 |
+
integer i;
|
| 140 |
+
|
| 141 |
+
always @(posedge clk) begin
|
| 142 |
+
if (we) begin
|
| 143 |
+
for (i=0; i<DEPTH-1; i=i+1)
|
| 144 |
+
SRL_SIG[i+1] <= SRL_SIG[i];
|
| 145 |
+
SRL_SIG[0] <= din;
|
| 146 |
+
end
|
| 147 |
+
end
|
| 148 |
+
|
| 149 |
+
assign dout = SRL_SIG[addr];
|
| 150 |
+
|
| 151 |
+
endmodule
|
myproject_prj/solution1/impl/verilog/myproject_start_for_conv_2d_cl_array_ap_fixed_24u_array_ap_fixed_41_21_5_3_0_8u_config3ozc.v
ADDED
|
@@ -0,0 +1,151 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// ==============================================================
|
| 2 |
+
// Generated by Vitis HLS v2024.1
|
| 3 |
+
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
| 4 |
+
// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
|
| 5 |
+
// ==============================================================
|
| 6 |
+
// 67d7842dbbe25473c3c32b93c0da8047785f30d78e8a024de1b57352245f9689
|
| 7 |
+
|
| 8 |
+
`timescale 1ns/1ps
|
| 9 |
+
//RAW latency 1
|
| 10 |
+
|
| 11 |
+
module myproject_start_for_conv_2d_cl_array_ap_fixed_24u_array_ap_fixed_41_21_5_3_0_8u_config3ozc
|
| 12 |
+
#(parameter
|
| 13 |
+
MEM_STYLE = "shiftReg",
|
| 14 |
+
DATA_WIDTH = 1,
|
| 15 |
+
ADDR_WIDTH = 1,
|
| 16 |
+
DEPTH = 2)
|
| 17 |
+
(
|
| 18 |
+
// system signal
|
| 19 |
+
input wire clk,
|
| 20 |
+
input wire reset,
|
| 21 |
+
|
| 22 |
+
// write
|
| 23 |
+
output wire if_full_n,
|
| 24 |
+
input wire if_write_ce,
|
| 25 |
+
input wire if_write,
|
| 26 |
+
input wire [DATA_WIDTH-1:0] if_din,
|
| 27 |
+
|
| 28 |
+
// read
|
| 29 |
+
|
| 30 |
+
output wire if_empty_n,
|
| 31 |
+
input wire if_read_ce,
|
| 32 |
+
input wire if_read,
|
| 33 |
+
output wire [DATA_WIDTH-1:0] if_dout
|
| 34 |
+
);
|
| 35 |
+
//------------------------Parameter----------------------
|
| 36 |
+
localparam
|
| 37 |
+
SRL_DEPTH = DEPTH,
|
| 38 |
+
SRL_AWIDTH = ADDR_WIDTH;
|
| 39 |
+
//------------------------Local signal-------------------
|
| 40 |
+
reg [SRL_AWIDTH-1:0] addr;
|
| 41 |
+
wire push;
|
| 42 |
+
wire pop;
|
| 43 |
+
reg [SRL_AWIDTH:0] mOutPtr;
|
| 44 |
+
reg empty_n = 1'b0;
|
| 45 |
+
reg full_n = 1'b1;
|
| 46 |
+
|
| 47 |
+
//------------------------Instantiation------------------
|
| 48 |
+
myproject_start_for_conv_2d_cl_array_ap_fixed_24u_array_ap_fixed_41_21_5_3_0_8u_config3ozc_ShiftReg
|
| 49 |
+
#( .DATA_WIDTH (DATA_WIDTH),
|
| 50 |
+
.ADDR_WIDTH (SRL_AWIDTH),
|
| 51 |
+
.DEPTH (SRL_DEPTH))
|
| 52 |
+
U_myproject_start_for_conv_2d_cl_array_ap_fixed_24u_array_ap_fixed_41_21_5_3_0_8u_config3ozc_ShiftReg (
|
| 53 |
+
.clk (clk),
|
| 54 |
+
.we (push),
|
| 55 |
+
.addr (addr),
|
| 56 |
+
.din (if_din),
|
| 57 |
+
.dout (if_dout)
|
| 58 |
+
);
|
| 59 |
+
//------------------------Task and function--------------
|
| 60 |
+
|
| 61 |
+
//------------------------Body---------------------------
|
| 62 |
+
// num_data_valid
|
| 63 |
+
|
| 64 |
+
// almost full/empty
|
| 65 |
+
|
| 66 |
+
// program full/empty
|
| 67 |
+
|
| 68 |
+
assign if_full_n = full_n;
|
| 69 |
+
assign if_empty_n = empty_n;
|
| 70 |
+
|
| 71 |
+
assign push = full_n & if_write_ce & if_write;
|
| 72 |
+
assign pop = empty_n & if_read_ce & if_read;
|
| 73 |
+
|
| 74 |
+
// addr
|
| 75 |
+
always @(posedge clk) begin
|
| 76 |
+
if (reset)
|
| 77 |
+
addr <= {SRL_AWIDTH{1'b0}};
|
| 78 |
+
else if (push & ~pop && empty_n)
|
| 79 |
+
addr <= addr + 1'b1;
|
| 80 |
+
else if (~push & pop && (mOutPtr != 1))
|
| 81 |
+
addr <= addr - 1'b1;
|
| 82 |
+
end
|
| 83 |
+
|
| 84 |
+
// mOutPtr
|
| 85 |
+
always @(posedge clk) begin
|
| 86 |
+
if (reset)
|
| 87 |
+
mOutPtr <= {SRL_AWIDTH+1{1'b0}};
|
| 88 |
+
else if (push & ~pop)
|
| 89 |
+
mOutPtr <= mOutPtr + 1'b1;
|
| 90 |
+
else if (~push & pop)
|
| 91 |
+
mOutPtr <= mOutPtr - 1'b1;
|
| 92 |
+
end
|
| 93 |
+
|
| 94 |
+
// full_n
|
| 95 |
+
always @(posedge clk) begin
|
| 96 |
+
if (reset)
|
| 97 |
+
full_n <= 1'b1;
|
| 98 |
+
else if ((push & ~pop) && (mOutPtr == DEPTH - 1))
|
| 99 |
+
full_n <= 1'b0;
|
| 100 |
+
else if (~push & pop)
|
| 101 |
+
full_n <= 1'b1;
|
| 102 |
+
end
|
| 103 |
+
|
| 104 |
+
// empty_n
|
| 105 |
+
always @(posedge clk) begin
|
| 106 |
+
if (reset)
|
| 107 |
+
empty_n <= 1'b0;
|
| 108 |
+
else if (push & ~pop)
|
| 109 |
+
empty_n <= 1'b1;
|
| 110 |
+
else if ((~push & pop) && (mOutPtr == 1))
|
| 111 |
+
empty_n <= 1'b0;
|
| 112 |
+
end
|
| 113 |
+
|
| 114 |
+
// almost_full_n
|
| 115 |
+
|
| 116 |
+
// almost_empty_n
|
| 117 |
+
|
| 118 |
+
// prog_full_n
|
| 119 |
+
|
| 120 |
+
// prog_empty_n
|
| 121 |
+
|
| 122 |
+
endmodule
|
| 123 |
+
|
| 124 |
+
|
| 125 |
+
module myproject_start_for_conv_2d_cl_array_ap_fixed_24u_array_ap_fixed_41_21_5_3_0_8u_config3ozc_ShiftReg
|
| 126 |
+
#(parameter
|
| 127 |
+
DATA_WIDTH = 1,
|
| 128 |
+
ADDR_WIDTH = 1,
|
| 129 |
+
DEPTH = 2)
|
| 130 |
+
(
|
| 131 |
+
input wire clk,
|
| 132 |
+
input wire we,
|
| 133 |
+
input wire [ADDR_WIDTH-1:0] addr,
|
| 134 |
+
input wire [DATA_WIDTH-1:0] din,
|
| 135 |
+
output wire [DATA_WIDTH-1:0] dout
|
| 136 |
+
);
|
| 137 |
+
|
| 138 |
+
reg [DATA_WIDTH-1:0] SRL_SIG [0:DEPTH-1];
|
| 139 |
+
integer i;
|
| 140 |
+
|
| 141 |
+
always @(posedge clk) begin
|
| 142 |
+
if (we) begin
|
| 143 |
+
for (i=0; i<DEPTH-1; i=i+1)
|
| 144 |
+
SRL_SIG[i+1] <= SRL_SIG[i];
|
| 145 |
+
SRL_SIG[0] <= din;
|
| 146 |
+
end
|
| 147 |
+
end
|
| 148 |
+
|
| 149 |
+
assign dout = SRL_SIG[addr];
|
| 150 |
+
|
| 151 |
+
endmodule
|
myproject_prj/solution1/impl/verilog/myproject_start_for_conv_2d_cl_array_ap_fixed_8u_array_ap_fixed_40_20_5_3_0_16u_config7okc.v
ADDED
|
@@ -0,0 +1,151 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// ==============================================================
|
| 2 |
+
// Generated by Vitis HLS v2024.1
|
| 3 |
+
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
| 4 |
+
// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
|
| 5 |
+
// ==============================================================
|
| 6 |
+
// 67d7842dbbe25473c3c32b93c0da8047785f30d78e8a024de1b57352245f9689
|
| 7 |
+
|
| 8 |
+
`timescale 1ns/1ps
|
| 9 |
+
//RAW latency 1
|
| 10 |
+
|
| 11 |
+
module myproject_start_for_conv_2d_cl_array_ap_fixed_8u_array_ap_fixed_40_20_5_3_0_16u_config7okc
|
| 12 |
+
#(parameter
|
| 13 |
+
MEM_STYLE = "shiftReg",
|
| 14 |
+
DATA_WIDTH = 1,
|
| 15 |
+
ADDR_WIDTH = 1,
|
| 16 |
+
DEPTH = 2)
|
| 17 |
+
(
|
| 18 |
+
// system signal
|
| 19 |
+
input wire clk,
|
| 20 |
+
input wire reset,
|
| 21 |
+
|
| 22 |
+
// write
|
| 23 |
+
output wire if_full_n,
|
| 24 |
+
input wire if_write_ce,
|
| 25 |
+
input wire if_write,
|
| 26 |
+
input wire [DATA_WIDTH-1:0] if_din,
|
| 27 |
+
|
| 28 |
+
// read
|
| 29 |
+
|
| 30 |
+
output wire if_empty_n,
|
| 31 |
+
input wire if_read_ce,
|
| 32 |
+
input wire if_read,
|
| 33 |
+
output wire [DATA_WIDTH-1:0] if_dout
|
| 34 |
+
);
|
| 35 |
+
//------------------------Parameter----------------------
|
| 36 |
+
localparam
|
| 37 |
+
SRL_DEPTH = DEPTH,
|
| 38 |
+
SRL_AWIDTH = ADDR_WIDTH;
|
| 39 |
+
//------------------------Local signal-------------------
|
| 40 |
+
reg [SRL_AWIDTH-1:0] addr;
|
| 41 |
+
wire push;
|
| 42 |
+
wire pop;
|
| 43 |
+
reg [SRL_AWIDTH:0] mOutPtr;
|
| 44 |
+
reg empty_n = 1'b0;
|
| 45 |
+
reg full_n = 1'b1;
|
| 46 |
+
|
| 47 |
+
//------------------------Instantiation------------------
|
| 48 |
+
myproject_start_for_conv_2d_cl_array_ap_fixed_8u_array_ap_fixed_40_20_5_3_0_16u_config7okc_ShiftReg
|
| 49 |
+
#( .DATA_WIDTH (DATA_WIDTH),
|
| 50 |
+
.ADDR_WIDTH (SRL_AWIDTH),
|
| 51 |
+
.DEPTH (SRL_DEPTH))
|
| 52 |
+
U_myproject_start_for_conv_2d_cl_array_ap_fixed_8u_array_ap_fixed_40_20_5_3_0_16u_config7okc_ShiftReg (
|
| 53 |
+
.clk (clk),
|
| 54 |
+
.we (push),
|
| 55 |
+
.addr (addr),
|
| 56 |
+
.din (if_din),
|
| 57 |
+
.dout (if_dout)
|
| 58 |
+
);
|
| 59 |
+
//------------------------Task and function--------------
|
| 60 |
+
|
| 61 |
+
//------------------------Body---------------------------
|
| 62 |
+
// num_data_valid
|
| 63 |
+
|
| 64 |
+
// almost full/empty
|
| 65 |
+
|
| 66 |
+
// program full/empty
|
| 67 |
+
|
| 68 |
+
assign if_full_n = full_n;
|
| 69 |
+
assign if_empty_n = empty_n;
|
| 70 |
+
|
| 71 |
+
assign push = full_n & if_write_ce & if_write;
|
| 72 |
+
assign pop = empty_n & if_read_ce & if_read;
|
| 73 |
+
|
| 74 |
+
// addr
|
| 75 |
+
always @(posedge clk) begin
|
| 76 |
+
if (reset)
|
| 77 |
+
addr <= {SRL_AWIDTH{1'b0}};
|
| 78 |
+
else if (push & ~pop && empty_n)
|
| 79 |
+
addr <= addr + 1'b1;
|
| 80 |
+
else if (~push & pop && (mOutPtr != 1))
|
| 81 |
+
addr <= addr - 1'b1;
|
| 82 |
+
end
|
| 83 |
+
|
| 84 |
+
// mOutPtr
|
| 85 |
+
always @(posedge clk) begin
|
| 86 |
+
if (reset)
|
| 87 |
+
mOutPtr <= {SRL_AWIDTH+1{1'b0}};
|
| 88 |
+
else if (push & ~pop)
|
| 89 |
+
mOutPtr <= mOutPtr + 1'b1;
|
| 90 |
+
else if (~push & pop)
|
| 91 |
+
mOutPtr <= mOutPtr - 1'b1;
|
| 92 |
+
end
|
| 93 |
+
|
| 94 |
+
// full_n
|
| 95 |
+
always @(posedge clk) begin
|
| 96 |
+
if (reset)
|
| 97 |
+
full_n <= 1'b1;
|
| 98 |
+
else if ((push & ~pop) && (mOutPtr == DEPTH - 1))
|
| 99 |
+
full_n <= 1'b0;
|
| 100 |
+
else if (~push & pop)
|
| 101 |
+
full_n <= 1'b1;
|
| 102 |
+
end
|
| 103 |
+
|
| 104 |
+
// empty_n
|
| 105 |
+
always @(posedge clk) begin
|
| 106 |
+
if (reset)
|
| 107 |
+
empty_n <= 1'b0;
|
| 108 |
+
else if (push & ~pop)
|
| 109 |
+
empty_n <= 1'b1;
|
| 110 |
+
else if ((~push & pop) && (mOutPtr == 1))
|
| 111 |
+
empty_n <= 1'b0;
|
| 112 |
+
end
|
| 113 |
+
|
| 114 |
+
// almost_full_n
|
| 115 |
+
|
| 116 |
+
// almost_empty_n
|
| 117 |
+
|
| 118 |
+
// prog_full_n
|
| 119 |
+
|
| 120 |
+
// prog_empty_n
|
| 121 |
+
|
| 122 |
+
endmodule
|
| 123 |
+
|
| 124 |
+
|
| 125 |
+
module myproject_start_for_conv_2d_cl_array_ap_fixed_8u_array_ap_fixed_40_20_5_3_0_16u_config7okc_ShiftReg
|
| 126 |
+
#(parameter
|
| 127 |
+
DATA_WIDTH = 1,
|
| 128 |
+
ADDR_WIDTH = 1,
|
| 129 |
+
DEPTH = 2)
|
| 130 |
+
(
|
| 131 |
+
input wire clk,
|
| 132 |
+
input wire we,
|
| 133 |
+
input wire [ADDR_WIDTH-1:0] addr,
|
| 134 |
+
input wire [DATA_WIDTH-1:0] din,
|
| 135 |
+
output wire [DATA_WIDTH-1:0] dout
|
| 136 |
+
);
|
| 137 |
+
|
| 138 |
+
reg [DATA_WIDTH-1:0] SRL_SIG [0:DEPTH-1];
|
| 139 |
+
integer i;
|
| 140 |
+
|
| 141 |
+
always @(posedge clk) begin
|
| 142 |
+
if (we) begin
|
| 143 |
+
for (i=0; i<DEPTH-1; i=i+1)
|
| 144 |
+
SRL_SIG[i+1] <= SRL_SIG[i];
|
| 145 |
+
SRL_SIG[0] <= din;
|
| 146 |
+
end
|
| 147 |
+
end
|
| 148 |
+
|
| 149 |
+
assign dout = SRL_SIG[addr];
|
| 150 |
+
|
| 151 |
+
endmodule
|
myproject_prj/solution1/impl/verilog/myproject_start_for_conv_2d_cl_array_array_ap_fixed_43_23_5_3_0_32u_config23_U0.v
ADDED
|
@@ -0,0 +1,151 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// ==============================================================
|
| 2 |
+
// Generated by Vitis HLS v2024.1
|
| 3 |
+
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
| 4 |
+
// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
|
| 5 |
+
// ==============================================================
|
| 6 |
+
// 67d7842dbbe25473c3c32b93c0da8047785f30d78e8a024de1b57352245f9689
|
| 7 |
+
|
| 8 |
+
`timescale 1ns/1ps
|
| 9 |
+
//RAW latency 1
|
| 10 |
+
|
| 11 |
+
module myproject_start_for_conv_2d_cl_array_array_ap_fixed_43_23_5_3_0_32u_config23_U0
|
| 12 |
+
#(parameter
|
| 13 |
+
MEM_STYLE = "shiftReg",
|
| 14 |
+
DATA_WIDTH = 1,
|
| 15 |
+
ADDR_WIDTH = 1,
|
| 16 |
+
DEPTH = 2)
|
| 17 |
+
(
|
| 18 |
+
// system signal
|
| 19 |
+
input wire clk,
|
| 20 |
+
input wire reset,
|
| 21 |
+
|
| 22 |
+
// write
|
| 23 |
+
output wire if_full_n,
|
| 24 |
+
input wire if_write_ce,
|
| 25 |
+
input wire if_write,
|
| 26 |
+
input wire [DATA_WIDTH-1:0] if_din,
|
| 27 |
+
|
| 28 |
+
// read
|
| 29 |
+
|
| 30 |
+
output wire if_empty_n,
|
| 31 |
+
input wire if_read_ce,
|
| 32 |
+
input wire if_read,
|
| 33 |
+
output wire [DATA_WIDTH-1:0] if_dout
|
| 34 |
+
);
|
| 35 |
+
//------------------------Parameter----------------------
|
| 36 |
+
localparam
|
| 37 |
+
SRL_DEPTH = DEPTH,
|
| 38 |
+
SRL_AWIDTH = ADDR_WIDTH;
|
| 39 |
+
//------------------------Local signal-------------------
|
| 40 |
+
reg [SRL_AWIDTH-1:0] addr;
|
| 41 |
+
wire push;
|
| 42 |
+
wire pop;
|
| 43 |
+
reg [SRL_AWIDTH:0] mOutPtr;
|
| 44 |
+
reg empty_n = 1'b0;
|
| 45 |
+
reg full_n = 1'b1;
|
| 46 |
+
|
| 47 |
+
//------------------------Instantiation------------------
|
| 48 |
+
myproject_start_for_conv_2d_cl_array_array_ap_fixed_43_23_5_3_0_32u_config23_U0_ShiftReg
|
| 49 |
+
#( .DATA_WIDTH (DATA_WIDTH),
|
| 50 |
+
.ADDR_WIDTH (SRL_AWIDTH),
|
| 51 |
+
.DEPTH (SRL_DEPTH))
|
| 52 |
+
U_myproject_start_for_conv_2d_cl_array_array_ap_fixed_43_23_5_3_0_32u_config23_U0_ShiftReg (
|
| 53 |
+
.clk (clk),
|
| 54 |
+
.we (push),
|
| 55 |
+
.addr (addr),
|
| 56 |
+
.din (if_din),
|
| 57 |
+
.dout (if_dout)
|
| 58 |
+
);
|
| 59 |
+
//------------------------Task and function--------------
|
| 60 |
+
|
| 61 |
+
//------------------------Body---------------------------
|
| 62 |
+
// num_data_valid
|
| 63 |
+
|
| 64 |
+
// almost full/empty
|
| 65 |
+
|
| 66 |
+
// program full/empty
|
| 67 |
+
|
| 68 |
+
assign if_full_n = full_n;
|
| 69 |
+
assign if_empty_n = empty_n;
|
| 70 |
+
|
| 71 |
+
assign push = full_n & if_write_ce & if_write;
|
| 72 |
+
assign pop = empty_n & if_read_ce & if_read;
|
| 73 |
+
|
| 74 |
+
// addr
|
| 75 |
+
always @(posedge clk) begin
|
| 76 |
+
if (reset)
|
| 77 |
+
addr <= {SRL_AWIDTH{1'b0}};
|
| 78 |
+
else if (push & ~pop && empty_n)
|
| 79 |
+
addr <= addr + 1'b1;
|
| 80 |
+
else if (~push & pop && (mOutPtr != 1))
|
| 81 |
+
addr <= addr - 1'b1;
|
| 82 |
+
end
|
| 83 |
+
|
| 84 |
+
// mOutPtr
|
| 85 |
+
always @(posedge clk) begin
|
| 86 |
+
if (reset)
|
| 87 |
+
mOutPtr <= {SRL_AWIDTH+1{1'b0}};
|
| 88 |
+
else if (push & ~pop)
|
| 89 |
+
mOutPtr <= mOutPtr + 1'b1;
|
| 90 |
+
else if (~push & pop)
|
| 91 |
+
mOutPtr <= mOutPtr - 1'b1;
|
| 92 |
+
end
|
| 93 |
+
|
| 94 |
+
// full_n
|
| 95 |
+
always @(posedge clk) begin
|
| 96 |
+
if (reset)
|
| 97 |
+
full_n <= 1'b1;
|
| 98 |
+
else if ((push & ~pop) && (mOutPtr == DEPTH - 1))
|
| 99 |
+
full_n <= 1'b0;
|
| 100 |
+
else if (~push & pop)
|
| 101 |
+
full_n <= 1'b1;
|
| 102 |
+
end
|
| 103 |
+
|
| 104 |
+
// empty_n
|
| 105 |
+
always @(posedge clk) begin
|
| 106 |
+
if (reset)
|
| 107 |
+
empty_n <= 1'b0;
|
| 108 |
+
else if (push & ~pop)
|
| 109 |
+
empty_n <= 1'b1;
|
| 110 |
+
else if ((~push & pop) && (mOutPtr == 1))
|
| 111 |
+
empty_n <= 1'b0;
|
| 112 |
+
end
|
| 113 |
+
|
| 114 |
+
// almost_full_n
|
| 115 |
+
|
| 116 |
+
// almost_empty_n
|
| 117 |
+
|
| 118 |
+
// prog_full_n
|
| 119 |
+
|
| 120 |
+
// prog_empty_n
|
| 121 |
+
|
| 122 |
+
endmodule
|
| 123 |
+
|
| 124 |
+
|
| 125 |
+
module myproject_start_for_conv_2d_cl_array_array_ap_fixed_43_23_5_3_0_32u_config23_U0_ShiftReg
|
| 126 |
+
#(parameter
|
| 127 |
+
DATA_WIDTH = 1,
|
| 128 |
+
ADDR_WIDTH = 1,
|
| 129 |
+
DEPTH = 2)
|
| 130 |
+
(
|
| 131 |
+
input wire clk,
|
| 132 |
+
input wire we,
|
| 133 |
+
input wire [ADDR_WIDTH-1:0] addr,
|
| 134 |
+
input wire [DATA_WIDTH-1:0] din,
|
| 135 |
+
output wire [DATA_WIDTH-1:0] dout
|
| 136 |
+
);
|
| 137 |
+
|
| 138 |
+
reg [DATA_WIDTH-1:0] SRL_SIG [0:DEPTH-1];
|
| 139 |
+
integer i;
|
| 140 |
+
|
| 141 |
+
always @(posedge clk) begin
|
| 142 |
+
if (we) begin
|
| 143 |
+
for (i=0; i<DEPTH-1; i=i+1)
|
| 144 |
+
SRL_SIG[i+1] <= SRL_SIG[i];
|
| 145 |
+
SRL_SIG[0] <= din;
|
| 146 |
+
end
|
| 147 |
+
end
|
| 148 |
+
|
| 149 |
+
assign dout = SRL_SIG[addr];
|
| 150 |
+
|
| 151 |
+
endmodule
|
myproject_prj/solution1/impl/verilog/myproject_start_for_relu_array_ap_fixed_16u_array_ap_fixed_16_6_5_3_0_16u_relu_config32ovc.v
ADDED
|
@@ -0,0 +1,151 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// ==============================================================
|
| 2 |
+
// Generated by Vitis HLS v2024.1
|
| 3 |
+
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
| 4 |
+
// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
|
| 5 |
+
// ==============================================================
|
| 6 |
+
// 67d7842dbbe25473c3c32b93c0da8047785f30d78e8a024de1b57352245f9689
|
| 7 |
+
|
| 8 |
+
`timescale 1ns/1ps
|
| 9 |
+
//RAW latency 1
|
| 10 |
+
|
| 11 |
+
module myproject_start_for_relu_array_ap_fixed_16u_array_ap_fixed_16_6_5_3_0_16u_relu_config32ovc
|
| 12 |
+
#(parameter
|
| 13 |
+
MEM_STYLE = "shiftReg",
|
| 14 |
+
DATA_WIDTH = 1,
|
| 15 |
+
ADDR_WIDTH = 1,
|
| 16 |
+
DEPTH = 2)
|
| 17 |
+
(
|
| 18 |
+
// system signal
|
| 19 |
+
input wire clk,
|
| 20 |
+
input wire reset,
|
| 21 |
+
|
| 22 |
+
// write
|
| 23 |
+
output wire if_full_n,
|
| 24 |
+
input wire if_write_ce,
|
| 25 |
+
input wire if_write,
|
| 26 |
+
input wire [DATA_WIDTH-1:0] if_din,
|
| 27 |
+
|
| 28 |
+
// read
|
| 29 |
+
|
| 30 |
+
output wire if_empty_n,
|
| 31 |
+
input wire if_read_ce,
|
| 32 |
+
input wire if_read,
|
| 33 |
+
output wire [DATA_WIDTH-1:0] if_dout
|
| 34 |
+
);
|
| 35 |
+
//------------------------Parameter----------------------
|
| 36 |
+
localparam
|
| 37 |
+
SRL_DEPTH = DEPTH,
|
| 38 |
+
SRL_AWIDTH = ADDR_WIDTH;
|
| 39 |
+
//------------------------Local signal-------------------
|
| 40 |
+
reg [SRL_AWIDTH-1:0] addr;
|
| 41 |
+
wire push;
|
| 42 |
+
wire pop;
|
| 43 |
+
reg [SRL_AWIDTH:0] mOutPtr;
|
| 44 |
+
reg empty_n = 1'b0;
|
| 45 |
+
reg full_n = 1'b1;
|
| 46 |
+
|
| 47 |
+
//------------------------Instantiation------------------
|
| 48 |
+
myproject_start_for_relu_array_ap_fixed_16u_array_ap_fixed_16_6_5_3_0_16u_relu_config32ovc_ShiftReg
|
| 49 |
+
#( .DATA_WIDTH (DATA_WIDTH),
|
| 50 |
+
.ADDR_WIDTH (SRL_AWIDTH),
|
| 51 |
+
.DEPTH (SRL_DEPTH))
|
| 52 |
+
U_myproject_start_for_relu_array_ap_fixed_16u_array_ap_fixed_16_6_5_3_0_16u_relu_config32ovc_ShiftReg (
|
| 53 |
+
.clk (clk),
|
| 54 |
+
.we (push),
|
| 55 |
+
.addr (addr),
|
| 56 |
+
.din (if_din),
|
| 57 |
+
.dout (if_dout)
|
| 58 |
+
);
|
| 59 |
+
//------------------------Task and function--------------
|
| 60 |
+
|
| 61 |
+
//------------------------Body---------------------------
|
| 62 |
+
// num_data_valid
|
| 63 |
+
|
| 64 |
+
// almost full/empty
|
| 65 |
+
|
| 66 |
+
// program full/empty
|
| 67 |
+
|
| 68 |
+
assign if_full_n = full_n;
|
| 69 |
+
assign if_empty_n = empty_n;
|
| 70 |
+
|
| 71 |
+
assign push = full_n & if_write_ce & if_write;
|
| 72 |
+
assign pop = empty_n & if_read_ce & if_read;
|
| 73 |
+
|
| 74 |
+
// addr
|
| 75 |
+
always @(posedge clk) begin
|
| 76 |
+
if (reset)
|
| 77 |
+
addr <= {SRL_AWIDTH{1'b0}};
|
| 78 |
+
else if (push & ~pop && empty_n)
|
| 79 |
+
addr <= addr + 1'b1;
|
| 80 |
+
else if (~push & pop && (mOutPtr != 1))
|
| 81 |
+
addr <= addr - 1'b1;
|
| 82 |
+
end
|
| 83 |
+
|
| 84 |
+
// mOutPtr
|
| 85 |
+
always @(posedge clk) begin
|
| 86 |
+
if (reset)
|
| 87 |
+
mOutPtr <= {SRL_AWIDTH+1{1'b0}};
|
| 88 |
+
else if (push & ~pop)
|
| 89 |
+
mOutPtr <= mOutPtr + 1'b1;
|
| 90 |
+
else if (~push & pop)
|
| 91 |
+
mOutPtr <= mOutPtr - 1'b1;
|
| 92 |
+
end
|
| 93 |
+
|
| 94 |
+
// full_n
|
| 95 |
+
always @(posedge clk) begin
|
| 96 |
+
if (reset)
|
| 97 |
+
full_n <= 1'b1;
|
| 98 |
+
else if ((push & ~pop) && (mOutPtr == DEPTH - 1))
|
| 99 |
+
full_n <= 1'b0;
|
| 100 |
+
else if (~push & pop)
|
| 101 |
+
full_n <= 1'b1;
|
| 102 |
+
end
|
| 103 |
+
|
| 104 |
+
// empty_n
|
| 105 |
+
always @(posedge clk) begin
|
| 106 |
+
if (reset)
|
| 107 |
+
empty_n <= 1'b0;
|
| 108 |
+
else if (push & ~pop)
|
| 109 |
+
empty_n <= 1'b1;
|
| 110 |
+
else if ((~push & pop) && (mOutPtr == 1))
|
| 111 |
+
empty_n <= 1'b0;
|
| 112 |
+
end
|
| 113 |
+
|
| 114 |
+
// almost_full_n
|
| 115 |
+
|
| 116 |
+
// almost_empty_n
|
| 117 |
+
|
| 118 |
+
// prog_full_n
|
| 119 |
+
|
| 120 |
+
// prog_empty_n
|
| 121 |
+
|
| 122 |
+
endmodule
|
| 123 |
+
|
| 124 |
+
|
| 125 |
+
module myproject_start_for_relu_array_ap_fixed_16u_array_ap_fixed_16_6_5_3_0_16u_relu_config32ovc_ShiftReg
|
| 126 |
+
#(parameter
|
| 127 |
+
DATA_WIDTH = 1,
|
| 128 |
+
ADDR_WIDTH = 1,
|
| 129 |
+
DEPTH = 2)
|
| 130 |
+
(
|
| 131 |
+
input wire clk,
|
| 132 |
+
input wire we,
|
| 133 |
+
input wire [ADDR_WIDTH-1:0] addr,
|
| 134 |
+
input wire [DATA_WIDTH-1:0] din,
|
| 135 |
+
output wire [DATA_WIDTH-1:0] dout
|
| 136 |
+
);
|
| 137 |
+
|
| 138 |
+
reg [DATA_WIDTH-1:0] SRL_SIG [0:DEPTH-1];
|
| 139 |
+
integer i;
|
| 140 |
+
|
| 141 |
+
always @(posedge clk) begin
|
| 142 |
+
if (we) begin
|
| 143 |
+
for (i=0; i<DEPTH-1; i=i+1)
|
| 144 |
+
SRL_SIG[i+1] <= SRL_SIG[i];
|
| 145 |
+
SRL_SIG[0] <= din;
|
| 146 |
+
end
|
| 147 |
+
end
|
| 148 |
+
|
| 149 |
+
assign dout = SRL_SIG[addr];
|
| 150 |
+
|
| 151 |
+
endmodule
|
myproject_prj/solution1/impl/verilog/myproject_start_for_zeropad2d_cl_array_ap_fixed_1u_array_ap_fixed_16_6_5_3_0_1u_config4ohc.v
ADDED
|
@@ -0,0 +1,151 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// ==============================================================
|
| 2 |
+
// Generated by Vitis HLS v2024.1
|
| 3 |
+
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
| 4 |
+
// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
|
| 5 |
+
// ==============================================================
|
| 6 |
+
// 67d7842dbbe25473c3c32b93c0da8047785f30d78e8a024de1b57352245f9689
|
| 7 |
+
|
| 8 |
+
`timescale 1ns/1ps
|
| 9 |
+
//RAW latency 1
|
| 10 |
+
|
| 11 |
+
module myproject_start_for_zeropad2d_cl_array_ap_fixed_1u_array_ap_fixed_16_6_5_3_0_1u_config4ohc
|
| 12 |
+
#(parameter
|
| 13 |
+
MEM_STYLE = "shiftReg",
|
| 14 |
+
DATA_WIDTH = 1,
|
| 15 |
+
ADDR_WIDTH = 1,
|
| 16 |
+
DEPTH = 2)
|
| 17 |
+
(
|
| 18 |
+
// system signal
|
| 19 |
+
input wire clk,
|
| 20 |
+
input wire reset,
|
| 21 |
+
|
| 22 |
+
// write
|
| 23 |
+
output wire if_full_n,
|
| 24 |
+
input wire if_write_ce,
|
| 25 |
+
input wire if_write,
|
| 26 |
+
input wire [DATA_WIDTH-1:0] if_din,
|
| 27 |
+
|
| 28 |
+
// read
|
| 29 |
+
|
| 30 |
+
output wire if_empty_n,
|
| 31 |
+
input wire if_read_ce,
|
| 32 |
+
input wire if_read,
|
| 33 |
+
output wire [DATA_WIDTH-1:0] if_dout
|
| 34 |
+
);
|
| 35 |
+
//------------------------Parameter----------------------
|
| 36 |
+
localparam
|
| 37 |
+
SRL_DEPTH = DEPTH,
|
| 38 |
+
SRL_AWIDTH = ADDR_WIDTH;
|
| 39 |
+
//------------------------Local signal-------------------
|
| 40 |
+
reg [SRL_AWIDTH-1:0] addr;
|
| 41 |
+
wire push;
|
| 42 |
+
wire pop;
|
| 43 |
+
reg [SRL_AWIDTH:0] mOutPtr;
|
| 44 |
+
reg empty_n = 1'b0;
|
| 45 |
+
reg full_n = 1'b1;
|
| 46 |
+
|
| 47 |
+
//------------------------Instantiation------------------
|
| 48 |
+
myproject_start_for_zeropad2d_cl_array_ap_fixed_1u_array_ap_fixed_16_6_5_3_0_1u_config4ohc_ShiftReg
|
| 49 |
+
#( .DATA_WIDTH (DATA_WIDTH),
|
| 50 |
+
.ADDR_WIDTH (SRL_AWIDTH),
|
| 51 |
+
.DEPTH (SRL_DEPTH))
|
| 52 |
+
U_myproject_start_for_zeropad2d_cl_array_ap_fixed_1u_array_ap_fixed_16_6_5_3_0_1u_config4ohc_ShiftReg (
|
| 53 |
+
.clk (clk),
|
| 54 |
+
.we (push),
|
| 55 |
+
.addr (addr),
|
| 56 |
+
.din (if_din),
|
| 57 |
+
.dout (if_dout)
|
| 58 |
+
);
|
| 59 |
+
//------------------------Task and function--------------
|
| 60 |
+
|
| 61 |
+
//------------------------Body---------------------------
|
| 62 |
+
// num_data_valid
|
| 63 |
+
|
| 64 |
+
// almost full/empty
|
| 65 |
+
|
| 66 |
+
// program full/empty
|
| 67 |
+
|
| 68 |
+
assign if_full_n = full_n;
|
| 69 |
+
assign if_empty_n = empty_n;
|
| 70 |
+
|
| 71 |
+
assign push = full_n & if_write_ce & if_write;
|
| 72 |
+
assign pop = empty_n & if_read_ce & if_read;
|
| 73 |
+
|
| 74 |
+
// addr
|
| 75 |
+
always @(posedge clk) begin
|
| 76 |
+
if (reset)
|
| 77 |
+
addr <= {SRL_AWIDTH{1'b0}};
|
| 78 |
+
else if (push & ~pop && empty_n)
|
| 79 |
+
addr <= addr + 1'b1;
|
| 80 |
+
else if (~push & pop && (mOutPtr != 1))
|
| 81 |
+
addr <= addr - 1'b1;
|
| 82 |
+
end
|
| 83 |
+
|
| 84 |
+
// mOutPtr
|
| 85 |
+
always @(posedge clk) begin
|
| 86 |
+
if (reset)
|
| 87 |
+
mOutPtr <= {SRL_AWIDTH+1{1'b0}};
|
| 88 |
+
else if (push & ~pop)
|
| 89 |
+
mOutPtr <= mOutPtr + 1'b1;
|
| 90 |
+
else if (~push & pop)
|
| 91 |
+
mOutPtr <= mOutPtr - 1'b1;
|
| 92 |
+
end
|
| 93 |
+
|
| 94 |
+
// full_n
|
| 95 |
+
always @(posedge clk) begin
|
| 96 |
+
if (reset)
|
| 97 |
+
full_n <= 1'b1;
|
| 98 |
+
else if ((push & ~pop) && (mOutPtr == DEPTH - 1))
|
| 99 |
+
full_n <= 1'b0;
|
| 100 |
+
else if (~push & pop)
|
| 101 |
+
full_n <= 1'b1;
|
| 102 |
+
end
|
| 103 |
+
|
| 104 |
+
// empty_n
|
| 105 |
+
always @(posedge clk) begin
|
| 106 |
+
if (reset)
|
| 107 |
+
empty_n <= 1'b0;
|
| 108 |
+
else if (push & ~pop)
|
| 109 |
+
empty_n <= 1'b1;
|
| 110 |
+
else if ((~push & pop) && (mOutPtr == 1))
|
| 111 |
+
empty_n <= 1'b0;
|
| 112 |
+
end
|
| 113 |
+
|
| 114 |
+
// almost_full_n
|
| 115 |
+
|
| 116 |
+
// almost_empty_n
|
| 117 |
+
|
| 118 |
+
// prog_full_n
|
| 119 |
+
|
| 120 |
+
// prog_empty_n
|
| 121 |
+
|
| 122 |
+
endmodule
|
| 123 |
+
|
| 124 |
+
|
| 125 |
+
module myproject_start_for_zeropad2d_cl_array_ap_fixed_1u_array_ap_fixed_16_6_5_3_0_1u_config4ohc_ShiftReg
|
| 126 |
+
#(parameter
|
| 127 |
+
DATA_WIDTH = 1,
|
| 128 |
+
ADDR_WIDTH = 1,
|
| 129 |
+
DEPTH = 2)
|
| 130 |
+
(
|
| 131 |
+
input wire clk,
|
| 132 |
+
input wire we,
|
| 133 |
+
input wire [ADDR_WIDTH-1:0] addr,
|
| 134 |
+
input wire [DATA_WIDTH-1:0] din,
|
| 135 |
+
output wire [DATA_WIDTH-1:0] dout
|
| 136 |
+
);
|
| 137 |
+
|
| 138 |
+
reg [DATA_WIDTH-1:0] SRL_SIG [0:DEPTH-1];
|
| 139 |
+
integer i;
|
| 140 |
+
|
| 141 |
+
always @(posedge clk) begin
|
| 142 |
+
if (we) begin
|
| 143 |
+
for (i=0; i<DEPTH-1; i=i+1)
|
| 144 |
+
SRL_SIG[i+1] <= SRL_SIG[i];
|
| 145 |
+
SRL_SIG[0] <= din;
|
| 146 |
+
end
|
| 147 |
+
end
|
| 148 |
+
|
| 149 |
+
assign dout = SRL_SIG[addr];
|
| 150 |
+
|
| 151 |
+
endmodule
|
myproject_prj/solution1/impl/verilog/myproject_start_for_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_32u_config50_U0.v
ADDED
|
@@ -0,0 +1,151 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// ==============================================================
|
| 2 |
+
// Generated by Vitis HLS v2024.1
|
| 3 |
+
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
| 4 |
+
// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
|
| 5 |
+
// ==============================================================
|
| 6 |
+
// 67d7842dbbe25473c3c32b93c0da8047785f30d78e8a024de1b57352245f9689
|
| 7 |
+
|
| 8 |
+
`timescale 1ns/1ps
|
| 9 |
+
//RAW latency 1
|
| 10 |
+
|
| 11 |
+
module myproject_start_for_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_32u_config50_U0
|
| 12 |
+
#(parameter
|
| 13 |
+
MEM_STYLE = "shiftReg",
|
| 14 |
+
DATA_WIDTH = 1,
|
| 15 |
+
ADDR_WIDTH = 1,
|
| 16 |
+
DEPTH = 2)
|
| 17 |
+
(
|
| 18 |
+
// system signal
|
| 19 |
+
input wire clk,
|
| 20 |
+
input wire reset,
|
| 21 |
+
|
| 22 |
+
// write
|
| 23 |
+
output wire if_full_n,
|
| 24 |
+
input wire if_write_ce,
|
| 25 |
+
input wire if_write,
|
| 26 |
+
input wire [DATA_WIDTH-1:0] if_din,
|
| 27 |
+
|
| 28 |
+
// read
|
| 29 |
+
|
| 30 |
+
output wire if_empty_n,
|
| 31 |
+
input wire if_read_ce,
|
| 32 |
+
input wire if_read,
|
| 33 |
+
output wire [DATA_WIDTH-1:0] if_dout
|
| 34 |
+
);
|
| 35 |
+
//------------------------Parameter----------------------
|
| 36 |
+
localparam
|
| 37 |
+
SRL_DEPTH = DEPTH,
|
| 38 |
+
SRL_AWIDTH = ADDR_WIDTH;
|
| 39 |
+
//------------------------Local signal-------------------
|
| 40 |
+
reg [SRL_AWIDTH-1:0] addr;
|
| 41 |
+
wire push;
|
| 42 |
+
wire pop;
|
| 43 |
+
reg [SRL_AWIDTH:0] mOutPtr;
|
| 44 |
+
reg empty_n = 1'b0;
|
| 45 |
+
reg full_n = 1'b1;
|
| 46 |
+
|
| 47 |
+
//------------------------Instantiation------------------
|
| 48 |
+
myproject_start_for_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_32u_config50_U0_ShiftReg
|
| 49 |
+
#( .DATA_WIDTH (DATA_WIDTH),
|
| 50 |
+
.ADDR_WIDTH (SRL_AWIDTH),
|
| 51 |
+
.DEPTH (SRL_DEPTH))
|
| 52 |
+
U_myproject_start_for_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_32u_config50_U0_ShiftReg (
|
| 53 |
+
.clk (clk),
|
| 54 |
+
.we (push),
|
| 55 |
+
.addr (addr),
|
| 56 |
+
.din (if_din),
|
| 57 |
+
.dout (if_dout)
|
| 58 |
+
);
|
| 59 |
+
//------------------------Task and function--------------
|
| 60 |
+
|
| 61 |
+
//------------------------Body---------------------------
|
| 62 |
+
// num_data_valid
|
| 63 |
+
|
| 64 |
+
// almost full/empty
|
| 65 |
+
|
| 66 |
+
// program full/empty
|
| 67 |
+
|
| 68 |
+
assign if_full_n = full_n;
|
| 69 |
+
assign if_empty_n = empty_n;
|
| 70 |
+
|
| 71 |
+
assign push = full_n & if_write_ce & if_write;
|
| 72 |
+
assign pop = empty_n & if_read_ce & if_read;
|
| 73 |
+
|
| 74 |
+
// addr
|
| 75 |
+
always @(posedge clk) begin
|
| 76 |
+
if (reset)
|
| 77 |
+
addr <= {SRL_AWIDTH{1'b0}};
|
| 78 |
+
else if (push & ~pop && empty_n)
|
| 79 |
+
addr <= addr + 1'b1;
|
| 80 |
+
else if (~push & pop && (mOutPtr != 1))
|
| 81 |
+
addr <= addr - 1'b1;
|
| 82 |
+
end
|
| 83 |
+
|
| 84 |
+
// mOutPtr
|
| 85 |
+
always @(posedge clk) begin
|
| 86 |
+
if (reset)
|
| 87 |
+
mOutPtr <= {SRL_AWIDTH+1{1'b0}};
|
| 88 |
+
else if (push & ~pop)
|
| 89 |
+
mOutPtr <= mOutPtr + 1'b1;
|
| 90 |
+
else if (~push & pop)
|
| 91 |
+
mOutPtr <= mOutPtr - 1'b1;
|
| 92 |
+
end
|
| 93 |
+
|
| 94 |
+
// full_n
|
| 95 |
+
always @(posedge clk) begin
|
| 96 |
+
if (reset)
|
| 97 |
+
full_n <= 1'b1;
|
| 98 |
+
else if ((push & ~pop) && (mOutPtr == DEPTH - 1))
|
| 99 |
+
full_n <= 1'b0;
|
| 100 |
+
else if (~push & pop)
|
| 101 |
+
full_n <= 1'b1;
|
| 102 |
+
end
|
| 103 |
+
|
| 104 |
+
// empty_n
|
| 105 |
+
always @(posedge clk) begin
|
| 106 |
+
if (reset)
|
| 107 |
+
empty_n <= 1'b0;
|
| 108 |
+
else if (push & ~pop)
|
| 109 |
+
empty_n <= 1'b1;
|
| 110 |
+
else if ((~push & pop) && (mOutPtr == 1))
|
| 111 |
+
empty_n <= 1'b0;
|
| 112 |
+
end
|
| 113 |
+
|
| 114 |
+
// almost_full_n
|
| 115 |
+
|
| 116 |
+
// almost_empty_n
|
| 117 |
+
|
| 118 |
+
// prog_full_n
|
| 119 |
+
|
| 120 |
+
// prog_empty_n
|
| 121 |
+
|
| 122 |
+
endmodule
|
| 123 |
+
|
| 124 |
+
|
| 125 |
+
module myproject_start_for_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_32u_config50_U0_ShiftReg
|
| 126 |
+
#(parameter
|
| 127 |
+
DATA_WIDTH = 1,
|
| 128 |
+
ADDR_WIDTH = 1,
|
| 129 |
+
DEPTH = 2)
|
| 130 |
+
(
|
| 131 |
+
input wire clk,
|
| 132 |
+
input wire we,
|
| 133 |
+
input wire [ADDR_WIDTH-1:0] addr,
|
| 134 |
+
input wire [DATA_WIDTH-1:0] din,
|
| 135 |
+
output wire [DATA_WIDTH-1:0] dout
|
| 136 |
+
);
|
| 137 |
+
|
| 138 |
+
reg [DATA_WIDTH-1:0] SRL_SIG [0:DEPTH-1];
|
| 139 |
+
integer i;
|
| 140 |
+
|
| 141 |
+
always @(posedge clk) begin
|
| 142 |
+
if (we) begin
|
| 143 |
+
for (i=0; i<DEPTH-1; i=i+1)
|
| 144 |
+
SRL_SIG[i+1] <= SRL_SIG[i];
|
| 145 |
+
SRL_SIG[0] <= din;
|
| 146 |
+
end
|
| 147 |
+
end
|
| 148 |
+
|
| 149 |
+
assign dout = SRL_SIG[addr];
|
| 150 |
+
|
| 151 |
+
endmodule
|
myproject_prj/solution1/impl/verilog/myproject_start_for_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_32u_config52_U0.v
ADDED
|
@@ -0,0 +1,151 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// ==============================================================
|
| 2 |
+
// Generated by Vitis HLS v2024.1
|
| 3 |
+
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
| 4 |
+
// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
|
| 5 |
+
// ==============================================================
|
| 6 |
+
// 67d7842dbbe25473c3c32b93c0da8047785f30d78e8a024de1b57352245f9689
|
| 7 |
+
|
| 8 |
+
`timescale 1ns/1ps
|
| 9 |
+
//RAW latency 1
|
| 10 |
+
|
| 11 |
+
module myproject_start_for_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_32u_config52_U0
|
| 12 |
+
#(parameter
|
| 13 |
+
MEM_STYLE = "shiftReg",
|
| 14 |
+
DATA_WIDTH = 1,
|
| 15 |
+
ADDR_WIDTH = 1,
|
| 16 |
+
DEPTH = 2)
|
| 17 |
+
(
|
| 18 |
+
// system signal
|
| 19 |
+
input wire clk,
|
| 20 |
+
input wire reset,
|
| 21 |
+
|
| 22 |
+
// write
|
| 23 |
+
output wire if_full_n,
|
| 24 |
+
input wire if_write_ce,
|
| 25 |
+
input wire if_write,
|
| 26 |
+
input wire [DATA_WIDTH-1:0] if_din,
|
| 27 |
+
|
| 28 |
+
// read
|
| 29 |
+
|
| 30 |
+
output wire if_empty_n,
|
| 31 |
+
input wire if_read_ce,
|
| 32 |
+
input wire if_read,
|
| 33 |
+
output wire [DATA_WIDTH-1:0] if_dout
|
| 34 |
+
);
|
| 35 |
+
//------------------------Parameter----------------------
|
| 36 |
+
localparam
|
| 37 |
+
SRL_DEPTH = DEPTH,
|
| 38 |
+
SRL_AWIDTH = ADDR_WIDTH;
|
| 39 |
+
//------------------------Local signal-------------------
|
| 40 |
+
reg [SRL_AWIDTH-1:0] addr;
|
| 41 |
+
wire push;
|
| 42 |
+
wire pop;
|
| 43 |
+
reg [SRL_AWIDTH:0] mOutPtr;
|
| 44 |
+
reg empty_n = 1'b0;
|
| 45 |
+
reg full_n = 1'b1;
|
| 46 |
+
|
| 47 |
+
//------------------------Instantiation------------------
|
| 48 |
+
myproject_start_for_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_32u_config52_U0_ShiftReg
|
| 49 |
+
#( .DATA_WIDTH (DATA_WIDTH),
|
| 50 |
+
.ADDR_WIDTH (SRL_AWIDTH),
|
| 51 |
+
.DEPTH (SRL_DEPTH))
|
| 52 |
+
U_myproject_start_for_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_32u_config52_U0_ShiftReg (
|
| 53 |
+
.clk (clk),
|
| 54 |
+
.we (push),
|
| 55 |
+
.addr (addr),
|
| 56 |
+
.din (if_din),
|
| 57 |
+
.dout (if_dout)
|
| 58 |
+
);
|
| 59 |
+
//------------------------Task and function--------------
|
| 60 |
+
|
| 61 |
+
//------------------------Body---------------------------
|
| 62 |
+
// num_data_valid
|
| 63 |
+
|
| 64 |
+
// almost full/empty
|
| 65 |
+
|
| 66 |
+
// program full/empty
|
| 67 |
+
|
| 68 |
+
assign if_full_n = full_n;
|
| 69 |
+
assign if_empty_n = empty_n;
|
| 70 |
+
|
| 71 |
+
assign push = full_n & if_write_ce & if_write;
|
| 72 |
+
assign pop = empty_n & if_read_ce & if_read;
|
| 73 |
+
|
| 74 |
+
// addr
|
| 75 |
+
always @(posedge clk) begin
|
| 76 |
+
if (reset)
|
| 77 |
+
addr <= {SRL_AWIDTH{1'b0}};
|
| 78 |
+
else if (push & ~pop && empty_n)
|
| 79 |
+
addr <= addr + 1'b1;
|
| 80 |
+
else if (~push & pop && (mOutPtr != 1))
|
| 81 |
+
addr <= addr - 1'b1;
|
| 82 |
+
end
|
| 83 |
+
|
| 84 |
+
// mOutPtr
|
| 85 |
+
always @(posedge clk) begin
|
| 86 |
+
if (reset)
|
| 87 |
+
mOutPtr <= {SRL_AWIDTH+1{1'b0}};
|
| 88 |
+
else if (push & ~pop)
|
| 89 |
+
mOutPtr <= mOutPtr + 1'b1;
|
| 90 |
+
else if (~push & pop)
|
| 91 |
+
mOutPtr <= mOutPtr - 1'b1;
|
| 92 |
+
end
|
| 93 |
+
|
| 94 |
+
// full_n
|
| 95 |
+
always @(posedge clk) begin
|
| 96 |
+
if (reset)
|
| 97 |
+
full_n <= 1'b1;
|
| 98 |
+
else if ((push & ~pop) && (mOutPtr == DEPTH - 1))
|
| 99 |
+
full_n <= 1'b0;
|
| 100 |
+
else if (~push & pop)
|
| 101 |
+
full_n <= 1'b1;
|
| 102 |
+
end
|
| 103 |
+
|
| 104 |
+
// empty_n
|
| 105 |
+
always @(posedge clk) begin
|
| 106 |
+
if (reset)
|
| 107 |
+
empty_n <= 1'b0;
|
| 108 |
+
else if (push & ~pop)
|
| 109 |
+
empty_n <= 1'b1;
|
| 110 |
+
else if ((~push & pop) && (mOutPtr == 1))
|
| 111 |
+
empty_n <= 1'b0;
|
| 112 |
+
end
|
| 113 |
+
|
| 114 |
+
// almost_full_n
|
| 115 |
+
|
| 116 |
+
// almost_empty_n
|
| 117 |
+
|
| 118 |
+
// prog_full_n
|
| 119 |
+
|
| 120 |
+
// prog_empty_n
|
| 121 |
+
|
| 122 |
+
endmodule
|
| 123 |
+
|
| 124 |
+
|
| 125 |
+
module myproject_start_for_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_32u_config52_U0_ShiftReg
|
| 126 |
+
#(parameter
|
| 127 |
+
DATA_WIDTH = 1,
|
| 128 |
+
ADDR_WIDTH = 1,
|
| 129 |
+
DEPTH = 2)
|
| 130 |
+
(
|
| 131 |
+
input wire clk,
|
| 132 |
+
input wire we,
|
| 133 |
+
input wire [ADDR_WIDTH-1:0] addr,
|
| 134 |
+
input wire [DATA_WIDTH-1:0] din,
|
| 135 |
+
output wire [DATA_WIDTH-1:0] dout
|
| 136 |
+
);
|
| 137 |
+
|
| 138 |
+
reg [DATA_WIDTH-1:0] SRL_SIG [0:DEPTH-1];
|
| 139 |
+
integer i;
|
| 140 |
+
|
| 141 |
+
always @(posedge clk) begin
|
| 142 |
+
if (we) begin
|
| 143 |
+
for (i=0; i<DEPTH-1; i=i+1)
|
| 144 |
+
SRL_SIG[i+1] <= SRL_SIG[i];
|
| 145 |
+
SRL_SIG[0] <= din;
|
| 146 |
+
end
|
| 147 |
+
end
|
| 148 |
+
|
| 149 |
+
assign dout = SRL_SIG[addr];
|
| 150 |
+
|
| 151 |
+
endmodule
|
myproject_prj/solution1/impl/verilog/myproject_start_for_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_48u_config56_U0.v
ADDED
|
@@ -0,0 +1,151 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// ==============================================================
|
| 2 |
+
// Generated by Vitis HLS v2024.1
|
| 3 |
+
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
| 4 |
+
// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
|
| 5 |
+
// ==============================================================
|
| 6 |
+
// 67d7842dbbe25473c3c32b93c0da8047785f30d78e8a024de1b57352245f9689
|
| 7 |
+
|
| 8 |
+
`timescale 1ns/1ps
|
| 9 |
+
//RAW latency 1
|
| 10 |
+
|
| 11 |
+
module myproject_start_for_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_48u_config56_U0
|
| 12 |
+
#(parameter
|
| 13 |
+
MEM_STYLE = "shiftReg",
|
| 14 |
+
DATA_WIDTH = 1,
|
| 15 |
+
ADDR_WIDTH = 1,
|
| 16 |
+
DEPTH = 2)
|
| 17 |
+
(
|
| 18 |
+
// system signal
|
| 19 |
+
input wire clk,
|
| 20 |
+
input wire reset,
|
| 21 |
+
|
| 22 |
+
// write
|
| 23 |
+
output wire if_full_n,
|
| 24 |
+
input wire if_write_ce,
|
| 25 |
+
input wire if_write,
|
| 26 |
+
input wire [DATA_WIDTH-1:0] if_din,
|
| 27 |
+
|
| 28 |
+
// read
|
| 29 |
+
|
| 30 |
+
output wire if_empty_n,
|
| 31 |
+
input wire if_read_ce,
|
| 32 |
+
input wire if_read,
|
| 33 |
+
output wire [DATA_WIDTH-1:0] if_dout
|
| 34 |
+
);
|
| 35 |
+
//------------------------Parameter----------------------
|
| 36 |
+
localparam
|
| 37 |
+
SRL_DEPTH = DEPTH,
|
| 38 |
+
SRL_AWIDTH = ADDR_WIDTH;
|
| 39 |
+
//------------------------Local signal-------------------
|
| 40 |
+
reg [SRL_AWIDTH-1:0] addr;
|
| 41 |
+
wire push;
|
| 42 |
+
wire pop;
|
| 43 |
+
reg [SRL_AWIDTH:0] mOutPtr;
|
| 44 |
+
reg empty_n = 1'b0;
|
| 45 |
+
reg full_n = 1'b1;
|
| 46 |
+
|
| 47 |
+
//------------------------Instantiation------------------
|
| 48 |
+
myproject_start_for_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_48u_config56_U0_ShiftReg
|
| 49 |
+
#( .DATA_WIDTH (DATA_WIDTH),
|
| 50 |
+
.ADDR_WIDTH (SRL_AWIDTH),
|
| 51 |
+
.DEPTH (SRL_DEPTH))
|
| 52 |
+
U_myproject_start_for_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_48u_config56_U0_ShiftReg (
|
| 53 |
+
.clk (clk),
|
| 54 |
+
.we (push),
|
| 55 |
+
.addr (addr),
|
| 56 |
+
.din (if_din),
|
| 57 |
+
.dout (if_dout)
|
| 58 |
+
);
|
| 59 |
+
//------------------------Task and function--------------
|
| 60 |
+
|
| 61 |
+
//------------------------Body---------------------------
|
| 62 |
+
// num_data_valid
|
| 63 |
+
|
| 64 |
+
// almost full/empty
|
| 65 |
+
|
| 66 |
+
// program full/empty
|
| 67 |
+
|
| 68 |
+
assign if_full_n = full_n;
|
| 69 |
+
assign if_empty_n = empty_n;
|
| 70 |
+
|
| 71 |
+
assign push = full_n & if_write_ce & if_write;
|
| 72 |
+
assign pop = empty_n & if_read_ce & if_read;
|
| 73 |
+
|
| 74 |
+
// addr
|
| 75 |
+
always @(posedge clk) begin
|
| 76 |
+
if (reset)
|
| 77 |
+
addr <= {SRL_AWIDTH{1'b0}};
|
| 78 |
+
else if (push & ~pop && empty_n)
|
| 79 |
+
addr <= addr + 1'b1;
|
| 80 |
+
else if (~push & pop && (mOutPtr != 1))
|
| 81 |
+
addr <= addr - 1'b1;
|
| 82 |
+
end
|
| 83 |
+
|
| 84 |
+
// mOutPtr
|
| 85 |
+
always @(posedge clk) begin
|
| 86 |
+
if (reset)
|
| 87 |
+
mOutPtr <= {SRL_AWIDTH+1{1'b0}};
|
| 88 |
+
else if (push & ~pop)
|
| 89 |
+
mOutPtr <= mOutPtr + 1'b1;
|
| 90 |
+
else if (~push & pop)
|
| 91 |
+
mOutPtr <= mOutPtr - 1'b1;
|
| 92 |
+
end
|
| 93 |
+
|
| 94 |
+
// full_n
|
| 95 |
+
always @(posedge clk) begin
|
| 96 |
+
if (reset)
|
| 97 |
+
full_n <= 1'b1;
|
| 98 |
+
else if ((push & ~pop) && (mOutPtr == DEPTH - 1))
|
| 99 |
+
full_n <= 1'b0;
|
| 100 |
+
else if (~push & pop)
|
| 101 |
+
full_n <= 1'b1;
|
| 102 |
+
end
|
| 103 |
+
|
| 104 |
+
// empty_n
|
| 105 |
+
always @(posedge clk) begin
|
| 106 |
+
if (reset)
|
| 107 |
+
empty_n <= 1'b0;
|
| 108 |
+
else if (push & ~pop)
|
| 109 |
+
empty_n <= 1'b1;
|
| 110 |
+
else if ((~push & pop) && (mOutPtr == 1))
|
| 111 |
+
empty_n <= 1'b0;
|
| 112 |
+
end
|
| 113 |
+
|
| 114 |
+
// almost_full_n
|
| 115 |
+
|
| 116 |
+
// almost_empty_n
|
| 117 |
+
|
| 118 |
+
// prog_full_n
|
| 119 |
+
|
| 120 |
+
// prog_empty_n
|
| 121 |
+
|
| 122 |
+
endmodule
|
| 123 |
+
|
| 124 |
+
|
| 125 |
+
module myproject_start_for_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_48u_config56_U0_ShiftReg
|
| 126 |
+
#(parameter
|
| 127 |
+
DATA_WIDTH = 1,
|
| 128 |
+
ADDR_WIDTH = 1,
|
| 129 |
+
DEPTH = 2)
|
| 130 |
+
(
|
| 131 |
+
input wire clk,
|
| 132 |
+
input wire we,
|
| 133 |
+
input wire [ADDR_WIDTH-1:0] addr,
|
| 134 |
+
input wire [DATA_WIDTH-1:0] din,
|
| 135 |
+
output wire [DATA_WIDTH-1:0] dout
|
| 136 |
+
);
|
| 137 |
+
|
| 138 |
+
reg [DATA_WIDTH-1:0] SRL_SIG [0:DEPTH-1];
|
| 139 |
+
integer i;
|
| 140 |
+
|
| 141 |
+
always @(posedge clk) begin
|
| 142 |
+
if (we) begin
|
| 143 |
+
for (i=0; i<DEPTH-1; i=i+1)
|
| 144 |
+
SRL_SIG[i+1] <= SRL_SIG[i];
|
| 145 |
+
SRL_SIG[0] <= din;
|
| 146 |
+
end
|
| 147 |
+
end
|
| 148 |
+
|
| 149 |
+
assign dout = SRL_SIG[addr];
|
| 150 |
+
|
| 151 |
+
endmodule
|
myproject_prj/solution1/impl/verilog/myproject_transpose_array_array_ap_fixed_1u_config41_Pipeline_VITIS_LOOP_45_1.v
ADDED
|
@@ -0,0 +1,230 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// ==============================================================
|
| 2 |
+
// Generated by Vitis HLS v2024.1
|
| 3 |
+
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
| 4 |
+
// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
|
| 5 |
+
// ==============================================================
|
| 6 |
+
|
| 7 |
+
`timescale 1 ns / 1 ps
|
| 8 |
+
|
| 9 |
+
module myproject_transpose_array_array_ap_fixed_1u_config41_Pipeline_VITIS_LOOP_45_1 (
|
| 10 |
+
ap_clk,
|
| 11 |
+
ap_rst,
|
| 12 |
+
ap_start,
|
| 13 |
+
ap_done,
|
| 14 |
+
ap_idle,
|
| 15 |
+
ap_ready,
|
| 16 |
+
x_TVALID,
|
| 17 |
+
x_TDATA,
|
| 18 |
+
x_TREADY,
|
| 19 |
+
p_0_0_0209_out,
|
| 20 |
+
p_0_0_0209_out_ap_vld
|
| 21 |
+
);
|
| 22 |
+
|
| 23 |
+
parameter ap_ST_fsm_state1 = 1'd1;
|
| 24 |
+
|
| 25 |
+
input ap_clk;
|
| 26 |
+
input ap_rst;
|
| 27 |
+
input ap_start;
|
| 28 |
+
output ap_done;
|
| 29 |
+
output ap_idle;
|
| 30 |
+
output ap_ready;
|
| 31 |
+
input x_TVALID;
|
| 32 |
+
input [1023:0] x_TDATA;
|
| 33 |
+
output x_TREADY;
|
| 34 |
+
output [15:0] p_0_0_0209_out;
|
| 35 |
+
output p_0_0_0209_out_ap_vld;
|
| 36 |
+
|
| 37 |
+
reg ap_idle;
|
| 38 |
+
reg x_TREADY;
|
| 39 |
+
reg p_0_0_0209_out_ap_vld;
|
| 40 |
+
|
| 41 |
+
(* fsm_encoding = "none" *) reg [0:0] ap_CS_fsm;
|
| 42 |
+
wire ap_CS_fsm_state1;
|
| 43 |
+
wire [0:0] icmp_ln45_fu_193_p2;
|
| 44 |
+
reg ap_block_state1_pp0_stage0_iter0;
|
| 45 |
+
reg ap_condition_exit_pp0_iter0_stage0;
|
| 46 |
+
wire ap_loop_exit_ready;
|
| 47 |
+
reg ap_ready_int;
|
| 48 |
+
reg x_TDATA_blk_n;
|
| 49 |
+
reg [6:0] i_fu_164;
|
| 50 |
+
wire [6:0] add_ln45_fu_199_p2;
|
| 51 |
+
wire ap_loop_init;
|
| 52 |
+
reg [6:0] ap_sig_allocacmp_i_32;
|
| 53 |
+
reg [15:0] p_0_0_0209_fu_168;
|
| 54 |
+
wire [15:0] data_array_fu_209_p1;
|
| 55 |
+
wire [5:0] trunc_ln45_fu_205_p1;
|
| 56 |
+
reg ap_done_reg;
|
| 57 |
+
wire ap_continue_int;
|
| 58 |
+
reg ap_done_int;
|
| 59 |
+
reg [0:0] ap_NS_fsm;
|
| 60 |
+
reg ap_ST_fsm_state1_blk;
|
| 61 |
+
wire ap_start_int;
|
| 62 |
+
wire ap_ready_sig;
|
| 63 |
+
wire ap_done_sig;
|
| 64 |
+
wire ap_ce_reg;
|
| 65 |
+
|
| 66 |
+
// power-on initialization
|
| 67 |
+
initial begin
|
| 68 |
+
#0 ap_CS_fsm = 1'd1;
|
| 69 |
+
#0 i_fu_164 = 7'd0;
|
| 70 |
+
#0 p_0_0_0209_fu_168 = 16'd0;
|
| 71 |
+
#0 ap_done_reg = 1'b0;
|
| 72 |
+
end
|
| 73 |
+
|
| 74 |
+
myproject_flow_control_loop_pipe_sequential_init flow_control_loop_pipe_sequential_init_U(
|
| 75 |
+
.ap_clk(ap_clk),
|
| 76 |
+
.ap_rst(ap_rst),
|
| 77 |
+
.ap_start(ap_start),
|
| 78 |
+
.ap_ready(ap_ready_sig),
|
| 79 |
+
.ap_done(ap_done_sig),
|
| 80 |
+
.ap_start_int(ap_start_int),
|
| 81 |
+
.ap_loop_init(ap_loop_init),
|
| 82 |
+
.ap_ready_int(ap_ready_int),
|
| 83 |
+
.ap_loop_exit_ready(ap_condition_exit_pp0_iter0_stage0),
|
| 84 |
+
.ap_loop_exit_done(ap_done_int),
|
| 85 |
+
.ap_continue_int(ap_continue_int),
|
| 86 |
+
.ap_done_int(ap_done_int)
|
| 87 |
+
);
|
| 88 |
+
|
| 89 |
+
always @ (posedge ap_clk) begin
|
| 90 |
+
if (ap_rst == 1'b1) begin
|
| 91 |
+
ap_CS_fsm <= ap_ST_fsm_state1;
|
| 92 |
+
end else begin
|
| 93 |
+
ap_CS_fsm <= ap_NS_fsm;
|
| 94 |
+
end
|
| 95 |
+
end
|
| 96 |
+
|
| 97 |
+
always @ (posedge ap_clk) begin
|
| 98 |
+
if (ap_rst == 1'b1) begin
|
| 99 |
+
ap_done_reg <= 1'b0;
|
| 100 |
+
end else begin
|
| 101 |
+
if ((ap_continue_int == 1'b1)) begin
|
| 102 |
+
ap_done_reg <= 1'b0;
|
| 103 |
+
end else if (((ap_loop_exit_ready == 1'b1) & (1'b0 == ap_block_state1_pp0_stage0_iter0) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 104 |
+
ap_done_reg <= 1'b1;
|
| 105 |
+
end
|
| 106 |
+
end
|
| 107 |
+
end
|
| 108 |
+
|
| 109 |
+
always @ (posedge ap_clk) begin
|
| 110 |
+
if (((1'b0 == ap_block_state1_pp0_stage0_iter0) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 111 |
+
if ((icmp_ln45_fu_193_p2 == 1'd0)) begin
|
| 112 |
+
i_fu_164 <= add_ln45_fu_199_p2;
|
| 113 |
+
end else if ((ap_loop_init == 1'b1)) begin
|
| 114 |
+
i_fu_164 <= 7'd0;
|
| 115 |
+
end
|
| 116 |
+
end
|
| 117 |
+
end
|
| 118 |
+
|
| 119 |
+
always @ (posedge ap_clk) begin
|
| 120 |
+
if (((trunc_ln45_fu_205_p1 == 6'd0) & (1'b0 == ap_block_state1_pp0_stage0_iter0) & (icmp_ln45_fu_193_p2 == 1'd0) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 121 |
+
p_0_0_0209_fu_168 <= data_array_fu_209_p1;
|
| 122 |
+
end
|
| 123 |
+
end
|
| 124 |
+
|
| 125 |
+
always @ (*) begin
|
| 126 |
+
if ((1'b1 == ap_block_state1_pp0_stage0_iter0)) begin
|
| 127 |
+
ap_ST_fsm_state1_blk = 1'b1;
|
| 128 |
+
end else begin
|
| 129 |
+
ap_ST_fsm_state1_blk = 1'b0;
|
| 130 |
+
end
|
| 131 |
+
end
|
| 132 |
+
|
| 133 |
+
always @ (*) begin
|
| 134 |
+
if (((1'b0 == ap_block_state1_pp0_stage0_iter0) & (icmp_ln45_fu_193_p2 == 1'd1) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 135 |
+
ap_condition_exit_pp0_iter0_stage0 = 1'b1;
|
| 136 |
+
end else begin
|
| 137 |
+
ap_condition_exit_pp0_iter0_stage0 = 1'b0;
|
| 138 |
+
end
|
| 139 |
+
end
|
| 140 |
+
|
| 141 |
+
always @ (*) begin
|
| 142 |
+
if (((ap_loop_exit_ready == 1'b1) & (1'b0 == ap_block_state1_pp0_stage0_iter0) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 143 |
+
ap_done_int = 1'b1;
|
| 144 |
+
end else begin
|
| 145 |
+
ap_done_int = ap_done_reg;
|
| 146 |
+
end
|
| 147 |
+
end
|
| 148 |
+
|
| 149 |
+
always @ (*) begin
|
| 150 |
+
if (((1'b1 == ap_CS_fsm_state1) & (ap_start_int == 1'b0))) begin
|
| 151 |
+
ap_idle = 1'b1;
|
| 152 |
+
end else begin
|
| 153 |
+
ap_idle = 1'b0;
|
| 154 |
+
end
|
| 155 |
+
end
|
| 156 |
+
|
| 157 |
+
always @ (*) begin
|
| 158 |
+
if (((1'b0 == ap_block_state1_pp0_stage0_iter0) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 159 |
+
ap_ready_int = 1'b1;
|
| 160 |
+
end else begin
|
| 161 |
+
ap_ready_int = 1'b0;
|
| 162 |
+
end
|
| 163 |
+
end
|
| 164 |
+
|
| 165 |
+
always @ (*) begin
|
| 166 |
+
if (((ap_loop_init == 1'b1) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 167 |
+
ap_sig_allocacmp_i_32 = 7'd0;
|
| 168 |
+
end else begin
|
| 169 |
+
ap_sig_allocacmp_i_32 = i_fu_164;
|
| 170 |
+
end
|
| 171 |
+
end
|
| 172 |
+
|
| 173 |
+
always @ (*) begin
|
| 174 |
+
if (((ap_loop_exit_ready == 1'b1) & (1'b0 == ap_block_state1_pp0_stage0_iter0) & (icmp_ln45_fu_193_p2 == 1'd1) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 175 |
+
p_0_0_0209_out_ap_vld = 1'b1;
|
| 176 |
+
end else begin
|
| 177 |
+
p_0_0_0209_out_ap_vld = 1'b0;
|
| 178 |
+
end
|
| 179 |
+
end
|
| 180 |
+
|
| 181 |
+
always @ (*) begin
|
| 182 |
+
if (((icmp_ln45_fu_193_p2 == 1'd0) & (1'b1 == ap_CS_fsm_state1) & (ap_start_int == 1'b1))) begin
|
| 183 |
+
x_TDATA_blk_n = x_TVALID;
|
| 184 |
+
end else begin
|
| 185 |
+
x_TDATA_blk_n = 1'b1;
|
| 186 |
+
end
|
| 187 |
+
end
|
| 188 |
+
|
| 189 |
+
always @ (*) begin
|
| 190 |
+
if (((1'b0 == ap_block_state1_pp0_stage0_iter0) & (icmp_ln45_fu_193_p2 == 1'd0) & (1'b1 == ap_CS_fsm_state1))) begin
|
| 191 |
+
x_TREADY = 1'b1;
|
| 192 |
+
end else begin
|
| 193 |
+
x_TREADY = 1'b0;
|
| 194 |
+
end
|
| 195 |
+
end
|
| 196 |
+
|
| 197 |
+
always @ (*) begin
|
| 198 |
+
case (ap_CS_fsm)
|
| 199 |
+
ap_ST_fsm_state1 : begin
|
| 200 |
+
ap_NS_fsm = ap_ST_fsm_state1;
|
| 201 |
+
end
|
| 202 |
+
default : begin
|
| 203 |
+
ap_NS_fsm = 'bx;
|
| 204 |
+
end
|
| 205 |
+
endcase
|
| 206 |
+
end
|
| 207 |
+
|
| 208 |
+
assign add_ln45_fu_199_p2 = (ap_sig_allocacmp_i_32 + 7'd1);
|
| 209 |
+
|
| 210 |
+
assign ap_CS_fsm_state1 = ap_CS_fsm[32'd0];
|
| 211 |
+
|
| 212 |
+
always @ (*) begin
|
| 213 |
+
ap_block_state1_pp0_stage0_iter0 = ((ap_start_int == 1'b0) | ((icmp_ln45_fu_193_p2 == 1'd0) & (x_TVALID == 1'b0)));
|
| 214 |
+
end
|
| 215 |
+
|
| 216 |
+
assign ap_done = ap_done_sig;
|
| 217 |
+
|
| 218 |
+
assign ap_loop_exit_ready = ap_condition_exit_pp0_iter0_stage0;
|
| 219 |
+
|
| 220 |
+
assign ap_ready = ap_ready_sig;
|
| 221 |
+
|
| 222 |
+
assign data_array_fu_209_p1 = x_TDATA[15:0];
|
| 223 |
+
|
| 224 |
+
assign icmp_ln45_fu_193_p2 = ((ap_sig_allocacmp_i_32 == 7'd64) ? 1'b1 : 1'b0);
|
| 225 |
+
|
| 226 |
+
assign p_0_0_0209_out = p_0_0_0209_fu_168;
|
| 227 |
+
|
| 228 |
+
assign trunc_ln45_fu_205_p1 = ap_sig_allocacmp_i_32[5:0];
|
| 229 |
+
|
| 230 |
+
endmodule //myproject_transpose_array_array_ap_fixed_1u_config41_Pipeline_VITIS_LOOP_45_1
|
myproject_prj/solution1/impl/verilog/myproject_zeropad2d_cl_array_ap_fixed_8u_array_ap_fixed_16_6_5_3_0_8u_config47_s.v
ADDED
|
@@ -0,0 +1,430 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// ==============================================================
|
| 2 |
+
// Generated by Vitis HLS v2024.1
|
| 3 |
+
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
| 4 |
+
// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
|
| 5 |
+
// ==============================================================
|
| 6 |
+
|
| 7 |
+
`timescale 1 ns / 1 ps
|
| 8 |
+
|
| 9 |
+
module myproject_zeropad2d_cl_array_ap_fixed_8u_array_ap_fixed_16_6_5_3_0_8u_config47_s (
|
| 10 |
+
ap_clk,
|
| 11 |
+
ap_rst,
|
| 12 |
+
ap_start,
|
| 13 |
+
start_full_n,
|
| 14 |
+
ap_done,
|
| 15 |
+
ap_continue,
|
| 16 |
+
ap_idle,
|
| 17 |
+
ap_ready,
|
| 18 |
+
start_out,
|
| 19 |
+
start_write,
|
| 20 |
+
layer3_out_dout,
|
| 21 |
+
layer3_out_num_data_valid,
|
| 22 |
+
layer3_out_fifo_cap,
|
| 23 |
+
layer3_out_empty_n,
|
| 24 |
+
layer3_out_read,
|
| 25 |
+
layer47_out_din,
|
| 26 |
+
layer47_out_num_data_valid,
|
| 27 |
+
layer47_out_fifo_cap,
|
| 28 |
+
layer47_out_full_n,
|
| 29 |
+
layer47_out_write
|
| 30 |
+
);
|
| 31 |
+
|
| 32 |
+
parameter ap_ST_fsm_state1 = 8'd1;
|
| 33 |
+
parameter ap_ST_fsm_state2 = 8'd2;
|
| 34 |
+
parameter ap_ST_fsm_state3 = 8'd4;
|
| 35 |
+
parameter ap_ST_fsm_state4 = 8'd8;
|
| 36 |
+
parameter ap_ST_fsm_state5 = 8'd16;
|
| 37 |
+
parameter ap_ST_fsm_state6 = 8'd32;
|
| 38 |
+
parameter ap_ST_fsm_state7 = 8'd64;
|
| 39 |
+
parameter ap_ST_fsm_state8 = 8'd128;
|
| 40 |
+
|
| 41 |
+
input ap_clk;
|
| 42 |
+
input ap_rst;
|
| 43 |
+
input ap_start;
|
| 44 |
+
input start_full_n;
|
| 45 |
+
output ap_done;
|
| 46 |
+
input ap_continue;
|
| 47 |
+
output ap_idle;
|
| 48 |
+
output ap_ready;
|
| 49 |
+
output start_out;
|
| 50 |
+
output start_write;
|
| 51 |
+
input [127:0] layer3_out_dout;
|
| 52 |
+
input [12:0] layer3_out_num_data_valid;
|
| 53 |
+
input [12:0] layer3_out_fifo_cap;
|
| 54 |
+
input layer3_out_empty_n;
|
| 55 |
+
output layer3_out_read;
|
| 56 |
+
output [127:0] layer47_out_din;
|
| 57 |
+
input [13:0] layer47_out_num_data_valid;
|
| 58 |
+
input [13:0] layer47_out_fifo_cap;
|
| 59 |
+
input layer47_out_full_n;
|
| 60 |
+
output layer47_out_write;
|
| 61 |
+
|
| 62 |
+
reg ap_done;
|
| 63 |
+
reg ap_idle;
|
| 64 |
+
reg start_write;
|
| 65 |
+
reg layer3_out_read;
|
| 66 |
+
reg[127:0] layer47_out_din;
|
| 67 |
+
reg layer47_out_write;
|
| 68 |
+
|
| 69 |
+
reg real_start;
|
| 70 |
+
reg start_once_reg;
|
| 71 |
+
reg ap_done_reg;
|
| 72 |
+
(* fsm_encoding = "none" *) reg [7:0] ap_CS_fsm;
|
| 73 |
+
wire ap_CS_fsm_state1;
|
| 74 |
+
reg internal_ap_ready;
|
| 75 |
+
wire grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadTopWidth_fu_22_ap_start;
|
| 76 |
+
wire grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadTopWidth_fu_22_ap_done;
|
| 77 |
+
wire grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadTopWidth_fu_22_ap_idle;
|
| 78 |
+
wire grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadTopWidth_fu_22_ap_ready;
|
| 79 |
+
wire [127:0] grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadTopWidth_fu_22_layer47_out_din;
|
| 80 |
+
wire grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadTopWidth_fu_22_layer47_out_write;
|
| 81 |
+
wire grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadMain_fu_28_ap_start;
|
| 82 |
+
wire grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadMain_fu_28_ap_done;
|
| 83 |
+
wire grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadMain_fu_28_ap_idle;
|
| 84 |
+
wire grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadMain_fu_28_ap_ready;
|
| 85 |
+
wire [127:0] grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadMain_fu_28_layer47_out_din;
|
| 86 |
+
wire grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadMain_fu_28_layer47_out_write;
|
| 87 |
+
wire grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadMain_fu_28_layer3_out_read;
|
| 88 |
+
wire grp_zeropad2d_cl_array_array_ap_fixed_8u_config47_Pipeline_PadBottomWidth_fu_36_ap_start;
|
| 89 |
+
wire grp_zeropad2d_cl_array_array_ap_fixed_8u_config47_Pipeline_PadBottomWidth_fu_36_ap_done;
|
| 90 |
+
wire grp_zeropad2d_cl_array_array_ap_fixed_8u_config47_Pipeline_PadBottomWidth_fu_36_ap_idle;
|
| 91 |
+
wire grp_zeropad2d_cl_array_array_ap_fixed_8u_config47_Pipeline_PadBottomWidth_fu_36_ap_ready;
|
| 92 |
+
wire [127:0] grp_zeropad2d_cl_array_array_ap_fixed_8u_config47_Pipeline_PadBottomWidth_fu_36_layer47_out_din;
|
| 93 |
+
wire grp_zeropad2d_cl_array_array_ap_fixed_8u_config47_Pipeline_PadBottomWidth_fu_36_layer47_out_write;
|
| 94 |
+
reg grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadTopWidth_fu_22_ap_start_reg;
|
| 95 |
+
reg ap_block_state1_ignore_call3;
|
| 96 |
+
wire ap_CS_fsm_state2;
|
| 97 |
+
reg grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadMain_fu_28_ap_start_reg;
|
| 98 |
+
wire ap_CS_fsm_state4;
|
| 99 |
+
wire ap_CS_fsm_state5;
|
| 100 |
+
reg grp_zeropad2d_cl_array_array_ap_fixed_8u_config47_Pipeline_PadBottomWidth_fu_36_ap_start_reg;
|
| 101 |
+
wire ap_CS_fsm_state7;
|
| 102 |
+
wire ap_CS_fsm_state8;
|
| 103 |
+
reg [7:0] ap_NS_fsm;
|
| 104 |
+
reg ap_block_state1;
|
| 105 |
+
reg ap_ST_fsm_state1_blk;
|
| 106 |
+
reg ap_ST_fsm_state2_blk;
|
| 107 |
+
wire ap_ST_fsm_state3_blk;
|
| 108 |
+
wire ap_ST_fsm_state4_blk;
|
| 109 |
+
reg ap_ST_fsm_state5_blk;
|
| 110 |
+
wire ap_ST_fsm_state6_blk;
|
| 111 |
+
wire ap_ST_fsm_state7_blk;
|
| 112 |
+
reg ap_ST_fsm_state8_blk;
|
| 113 |
+
wire ap_ce_reg;
|
| 114 |
+
|
| 115 |
+
// power-on initialization
|
| 116 |
+
initial begin
|
| 117 |
+
#0 start_once_reg = 1'b0;
|
| 118 |
+
#0 ap_done_reg = 1'b0;
|
| 119 |
+
#0 ap_CS_fsm = 8'd1;
|
| 120 |
+
#0 grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadTopWidth_fu_22_ap_start_reg = 1'b0;
|
| 121 |
+
#0 grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadMain_fu_28_ap_start_reg = 1'b0;
|
| 122 |
+
#0 grp_zeropad2d_cl_array_array_ap_fixed_8u_config47_Pipeline_PadBottomWidth_fu_36_ap_start_reg = 1'b0;
|
| 123 |
+
end
|
| 124 |
+
|
| 125 |
+
myproject_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadTopWidth grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadTopWidth_fu_22(
|
| 126 |
+
.ap_clk(ap_clk),
|
| 127 |
+
.ap_rst(ap_rst),
|
| 128 |
+
.ap_start(grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadTopWidth_fu_22_ap_start),
|
| 129 |
+
.ap_done(grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadTopWidth_fu_22_ap_done),
|
| 130 |
+
.ap_idle(grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadTopWidth_fu_22_ap_idle),
|
| 131 |
+
.ap_ready(grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadTopWidth_fu_22_ap_ready),
|
| 132 |
+
.layer47_out_din(grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadTopWidth_fu_22_layer47_out_din),
|
| 133 |
+
.layer47_out_num_data_valid(14'd0),
|
| 134 |
+
.layer47_out_fifo_cap(14'd0),
|
| 135 |
+
.layer47_out_full_n(layer47_out_full_n),
|
| 136 |
+
.layer47_out_write(grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadTopWidth_fu_22_layer47_out_write)
|
| 137 |
+
);
|
| 138 |
+
|
| 139 |
+
myproject_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadMain grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadMain_fu_28(
|
| 140 |
+
.ap_clk(ap_clk),
|
| 141 |
+
.ap_rst(ap_rst),
|
| 142 |
+
.ap_start(grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadMain_fu_28_ap_start),
|
| 143 |
+
.ap_done(grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadMain_fu_28_ap_done),
|
| 144 |
+
.ap_idle(grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadMain_fu_28_ap_idle),
|
| 145 |
+
.ap_ready(grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadMain_fu_28_ap_ready),
|
| 146 |
+
.layer47_out_din(grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadMain_fu_28_layer47_out_din),
|
| 147 |
+
.layer47_out_num_data_valid(14'd0),
|
| 148 |
+
.layer47_out_fifo_cap(14'd0),
|
| 149 |
+
.layer47_out_full_n(layer47_out_full_n),
|
| 150 |
+
.layer47_out_write(grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadMain_fu_28_layer47_out_write),
|
| 151 |
+
.layer3_out_dout(layer3_out_dout),
|
| 152 |
+
.layer3_out_num_data_valid(13'd0),
|
| 153 |
+
.layer3_out_fifo_cap(13'd0),
|
| 154 |
+
.layer3_out_empty_n(layer3_out_empty_n),
|
| 155 |
+
.layer3_out_read(grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadMain_fu_28_layer3_out_read)
|
| 156 |
+
);
|
| 157 |
+
|
| 158 |
+
myproject_zeropad2d_cl_array_array_ap_fixed_8u_config47_Pipeline_PadBottomWidth grp_zeropad2d_cl_array_array_ap_fixed_8u_config47_Pipeline_PadBottomWidth_fu_36(
|
| 159 |
+
.ap_clk(ap_clk),
|
| 160 |
+
.ap_rst(ap_rst),
|
| 161 |
+
.ap_start(grp_zeropad2d_cl_array_array_ap_fixed_8u_config47_Pipeline_PadBottomWidth_fu_36_ap_start),
|
| 162 |
+
.ap_done(grp_zeropad2d_cl_array_array_ap_fixed_8u_config47_Pipeline_PadBottomWidth_fu_36_ap_done),
|
| 163 |
+
.ap_idle(grp_zeropad2d_cl_array_array_ap_fixed_8u_config47_Pipeline_PadBottomWidth_fu_36_ap_idle),
|
| 164 |
+
.ap_ready(grp_zeropad2d_cl_array_array_ap_fixed_8u_config47_Pipeline_PadBottomWidth_fu_36_ap_ready),
|
| 165 |
+
.layer47_out_din(grp_zeropad2d_cl_array_array_ap_fixed_8u_config47_Pipeline_PadBottomWidth_fu_36_layer47_out_din),
|
| 166 |
+
.layer47_out_num_data_valid(14'd0),
|
| 167 |
+
.layer47_out_fifo_cap(14'd0),
|
| 168 |
+
.layer47_out_full_n(layer47_out_full_n),
|
| 169 |
+
.layer47_out_write(grp_zeropad2d_cl_array_array_ap_fixed_8u_config47_Pipeline_PadBottomWidth_fu_36_layer47_out_write)
|
| 170 |
+
);
|
| 171 |
+
|
| 172 |
+
always @ (posedge ap_clk) begin
|
| 173 |
+
if (ap_rst == 1'b1) begin
|
| 174 |
+
ap_CS_fsm <= ap_ST_fsm_state1;
|
| 175 |
+
end else begin
|
| 176 |
+
ap_CS_fsm <= ap_NS_fsm;
|
| 177 |
+
end
|
| 178 |
+
end
|
| 179 |
+
|
| 180 |
+
always @ (posedge ap_clk) begin
|
| 181 |
+
if (ap_rst == 1'b1) begin
|
| 182 |
+
ap_done_reg <= 1'b0;
|
| 183 |
+
end else begin
|
| 184 |
+
if ((ap_continue == 1'b1)) begin
|
| 185 |
+
ap_done_reg <= 1'b0;
|
| 186 |
+
end else if (((grp_zeropad2d_cl_array_array_ap_fixed_8u_config47_Pipeline_PadBottomWidth_fu_36_ap_done == 1'b1) & (1'b1 == ap_CS_fsm_state8))) begin
|
| 187 |
+
ap_done_reg <= 1'b1;
|
| 188 |
+
end
|
| 189 |
+
end
|
| 190 |
+
end
|
| 191 |
+
|
| 192 |
+
always @ (posedge ap_clk) begin
|
| 193 |
+
if (ap_rst == 1'b1) begin
|
| 194 |
+
grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadMain_fu_28_ap_start_reg <= 1'b0;
|
| 195 |
+
end else begin
|
| 196 |
+
if ((1'b1 == ap_CS_fsm_state4)) begin
|
| 197 |
+
grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadMain_fu_28_ap_start_reg <= 1'b1;
|
| 198 |
+
end else if ((grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadMain_fu_28_ap_ready == 1'b1)) begin
|
| 199 |
+
grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadMain_fu_28_ap_start_reg <= 1'b0;
|
| 200 |
+
end
|
| 201 |
+
end
|
| 202 |
+
end
|
| 203 |
+
|
| 204 |
+
always @ (posedge ap_clk) begin
|
| 205 |
+
if (ap_rst == 1'b1) begin
|
| 206 |
+
grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadTopWidth_fu_22_ap_start_reg <= 1'b0;
|
| 207 |
+
end else begin
|
| 208 |
+
if (((1'b1 == ap_CS_fsm_state1) & (1'b0 == ap_block_state1_ignore_call3))) begin
|
| 209 |
+
grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadTopWidth_fu_22_ap_start_reg <= 1'b1;
|
| 210 |
+
end else if ((grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadTopWidth_fu_22_ap_ready == 1'b1)) begin
|
| 211 |
+
grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadTopWidth_fu_22_ap_start_reg <= 1'b0;
|
| 212 |
+
end
|
| 213 |
+
end
|
| 214 |
+
end
|
| 215 |
+
|
| 216 |
+
always @ (posedge ap_clk) begin
|
| 217 |
+
if (ap_rst == 1'b1) begin
|
| 218 |
+
grp_zeropad2d_cl_array_array_ap_fixed_8u_config47_Pipeline_PadBottomWidth_fu_36_ap_start_reg <= 1'b0;
|
| 219 |
+
end else begin
|
| 220 |
+
if ((1'b1 == ap_CS_fsm_state7)) begin
|
| 221 |
+
grp_zeropad2d_cl_array_array_ap_fixed_8u_config47_Pipeline_PadBottomWidth_fu_36_ap_start_reg <= 1'b1;
|
| 222 |
+
end else if ((grp_zeropad2d_cl_array_array_ap_fixed_8u_config47_Pipeline_PadBottomWidth_fu_36_ap_ready == 1'b1)) begin
|
| 223 |
+
grp_zeropad2d_cl_array_array_ap_fixed_8u_config47_Pipeline_PadBottomWidth_fu_36_ap_start_reg <= 1'b0;
|
| 224 |
+
end
|
| 225 |
+
end
|
| 226 |
+
end
|
| 227 |
+
|
| 228 |
+
always @ (posedge ap_clk) begin
|
| 229 |
+
if (ap_rst == 1'b1) begin
|
| 230 |
+
start_once_reg <= 1'b0;
|
| 231 |
+
end else begin
|
| 232 |
+
if (((internal_ap_ready == 1'b0) & (real_start == 1'b1))) begin
|
| 233 |
+
start_once_reg <= 1'b1;
|
| 234 |
+
end else if ((internal_ap_ready == 1'b1)) begin
|
| 235 |
+
start_once_reg <= 1'b0;
|
| 236 |
+
end
|
| 237 |
+
end
|
| 238 |
+
end
|
| 239 |
+
|
| 240 |
+
always @ (*) begin
|
| 241 |
+
if ((1'b1 == ap_block_state1)) begin
|
| 242 |
+
ap_ST_fsm_state1_blk = 1'b1;
|
| 243 |
+
end else begin
|
| 244 |
+
ap_ST_fsm_state1_blk = 1'b0;
|
| 245 |
+
end
|
| 246 |
+
end
|
| 247 |
+
|
| 248 |
+
always @ (*) begin
|
| 249 |
+
if ((grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadTopWidth_fu_22_ap_done == 1'b0)) begin
|
| 250 |
+
ap_ST_fsm_state2_blk = 1'b1;
|
| 251 |
+
end else begin
|
| 252 |
+
ap_ST_fsm_state2_blk = 1'b0;
|
| 253 |
+
end
|
| 254 |
+
end
|
| 255 |
+
|
| 256 |
+
assign ap_ST_fsm_state3_blk = 1'b0;
|
| 257 |
+
|
| 258 |
+
assign ap_ST_fsm_state4_blk = 1'b0;
|
| 259 |
+
|
| 260 |
+
always @ (*) begin
|
| 261 |
+
if ((grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadMain_fu_28_ap_done == 1'b0)) begin
|
| 262 |
+
ap_ST_fsm_state5_blk = 1'b1;
|
| 263 |
+
end else begin
|
| 264 |
+
ap_ST_fsm_state5_blk = 1'b0;
|
| 265 |
+
end
|
| 266 |
+
end
|
| 267 |
+
|
| 268 |
+
assign ap_ST_fsm_state6_blk = 1'b0;
|
| 269 |
+
|
| 270 |
+
assign ap_ST_fsm_state7_blk = 1'b0;
|
| 271 |
+
|
| 272 |
+
always @ (*) begin
|
| 273 |
+
if ((grp_zeropad2d_cl_array_array_ap_fixed_8u_config47_Pipeline_PadBottomWidth_fu_36_ap_done == 1'b0)) begin
|
| 274 |
+
ap_ST_fsm_state8_blk = 1'b1;
|
| 275 |
+
end else begin
|
| 276 |
+
ap_ST_fsm_state8_blk = 1'b0;
|
| 277 |
+
end
|
| 278 |
+
end
|
| 279 |
+
|
| 280 |
+
always @ (*) begin
|
| 281 |
+
if (((grp_zeropad2d_cl_array_array_ap_fixed_8u_config47_Pipeline_PadBottomWidth_fu_36_ap_done == 1'b1) & (1'b1 == ap_CS_fsm_state8))) begin
|
| 282 |
+
ap_done = 1'b1;
|
| 283 |
+
end else begin
|
| 284 |
+
ap_done = ap_done_reg;
|
| 285 |
+
end
|
| 286 |
+
end
|
| 287 |
+
|
| 288 |
+
always @ (*) begin
|
| 289 |
+
if (((1'b1 == ap_CS_fsm_state1) & (real_start == 1'b0))) begin
|
| 290 |
+
ap_idle = 1'b1;
|
| 291 |
+
end else begin
|
| 292 |
+
ap_idle = 1'b0;
|
| 293 |
+
end
|
| 294 |
+
end
|
| 295 |
+
|
| 296 |
+
always @ (*) begin
|
| 297 |
+
if (((grp_zeropad2d_cl_array_array_ap_fixed_8u_config47_Pipeline_PadBottomWidth_fu_36_ap_done == 1'b1) & (1'b1 == ap_CS_fsm_state8))) begin
|
| 298 |
+
internal_ap_ready = 1'b1;
|
| 299 |
+
end else begin
|
| 300 |
+
internal_ap_ready = 1'b0;
|
| 301 |
+
end
|
| 302 |
+
end
|
| 303 |
+
|
| 304 |
+
always @ (*) begin
|
| 305 |
+
if ((1'b1 == ap_CS_fsm_state5)) begin
|
| 306 |
+
layer3_out_read = grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadMain_fu_28_layer3_out_read;
|
| 307 |
+
end else begin
|
| 308 |
+
layer3_out_read = 1'b0;
|
| 309 |
+
end
|
| 310 |
+
end
|
| 311 |
+
|
| 312 |
+
always @ (*) begin
|
| 313 |
+
if ((1'b1 == ap_CS_fsm_state8)) begin
|
| 314 |
+
layer47_out_din = grp_zeropad2d_cl_array_array_ap_fixed_8u_config47_Pipeline_PadBottomWidth_fu_36_layer47_out_din;
|
| 315 |
+
end else if ((1'b1 == ap_CS_fsm_state5)) begin
|
| 316 |
+
layer47_out_din = grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadMain_fu_28_layer47_out_din;
|
| 317 |
+
end else if ((1'b1 == ap_CS_fsm_state2)) begin
|
| 318 |
+
layer47_out_din = grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadTopWidth_fu_22_layer47_out_din;
|
| 319 |
+
end else begin
|
| 320 |
+
layer47_out_din = grp_zeropad2d_cl_array_array_ap_fixed_8u_config47_Pipeline_PadBottomWidth_fu_36_layer47_out_din;
|
| 321 |
+
end
|
| 322 |
+
end
|
| 323 |
+
|
| 324 |
+
always @ (*) begin
|
| 325 |
+
if ((1'b1 == ap_CS_fsm_state8)) begin
|
| 326 |
+
layer47_out_write = grp_zeropad2d_cl_array_array_ap_fixed_8u_config47_Pipeline_PadBottomWidth_fu_36_layer47_out_write;
|
| 327 |
+
end else if ((1'b1 == ap_CS_fsm_state5)) begin
|
| 328 |
+
layer47_out_write = grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadMain_fu_28_layer47_out_write;
|
| 329 |
+
end else if ((1'b1 == ap_CS_fsm_state2)) begin
|
| 330 |
+
layer47_out_write = grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadTopWidth_fu_22_layer47_out_write;
|
| 331 |
+
end else begin
|
| 332 |
+
layer47_out_write = 1'b0;
|
| 333 |
+
end
|
| 334 |
+
end
|
| 335 |
+
|
| 336 |
+
always @ (*) begin
|
| 337 |
+
if (((start_once_reg == 1'b0) & (start_full_n == 1'b0))) begin
|
| 338 |
+
real_start = 1'b0;
|
| 339 |
+
end else begin
|
| 340 |
+
real_start = ap_start;
|
| 341 |
+
end
|
| 342 |
+
end
|
| 343 |
+
|
| 344 |
+
always @ (*) begin
|
| 345 |
+
if (((start_once_reg == 1'b0) & (real_start == 1'b1))) begin
|
| 346 |
+
start_write = 1'b1;
|
| 347 |
+
end else begin
|
| 348 |
+
start_write = 1'b0;
|
| 349 |
+
end
|
| 350 |
+
end
|
| 351 |
+
|
| 352 |
+
always @ (*) begin
|
| 353 |
+
case (ap_CS_fsm)
|
| 354 |
+
ap_ST_fsm_state1 : begin
|
| 355 |
+
if (((1'b1 == ap_CS_fsm_state1) & (1'b0 == ap_block_state1))) begin
|
| 356 |
+
ap_NS_fsm = ap_ST_fsm_state2;
|
| 357 |
+
end else begin
|
| 358 |
+
ap_NS_fsm = ap_ST_fsm_state1;
|
| 359 |
+
end
|
| 360 |
+
end
|
| 361 |
+
ap_ST_fsm_state2 : begin
|
| 362 |
+
if (((grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadTopWidth_fu_22_ap_done == 1'b1) & (1'b1 == ap_CS_fsm_state2))) begin
|
| 363 |
+
ap_NS_fsm = ap_ST_fsm_state3;
|
| 364 |
+
end else begin
|
| 365 |
+
ap_NS_fsm = ap_ST_fsm_state2;
|
| 366 |
+
end
|
| 367 |
+
end
|
| 368 |
+
ap_ST_fsm_state3 : begin
|
| 369 |
+
ap_NS_fsm = ap_ST_fsm_state4;
|
| 370 |
+
end
|
| 371 |
+
ap_ST_fsm_state4 : begin
|
| 372 |
+
ap_NS_fsm = ap_ST_fsm_state5;
|
| 373 |
+
end
|
| 374 |
+
ap_ST_fsm_state5 : begin
|
| 375 |
+
if (((grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadMain_fu_28_ap_done == 1'b1) & (1'b1 == ap_CS_fsm_state5))) begin
|
| 376 |
+
ap_NS_fsm = ap_ST_fsm_state6;
|
| 377 |
+
end else begin
|
| 378 |
+
ap_NS_fsm = ap_ST_fsm_state5;
|
| 379 |
+
end
|
| 380 |
+
end
|
| 381 |
+
ap_ST_fsm_state6 : begin
|
| 382 |
+
ap_NS_fsm = ap_ST_fsm_state7;
|
| 383 |
+
end
|
| 384 |
+
ap_ST_fsm_state7 : begin
|
| 385 |
+
ap_NS_fsm = ap_ST_fsm_state8;
|
| 386 |
+
end
|
| 387 |
+
ap_ST_fsm_state8 : begin
|
| 388 |
+
if (((grp_zeropad2d_cl_array_array_ap_fixed_8u_config47_Pipeline_PadBottomWidth_fu_36_ap_done == 1'b1) & (1'b1 == ap_CS_fsm_state8))) begin
|
| 389 |
+
ap_NS_fsm = ap_ST_fsm_state1;
|
| 390 |
+
end else begin
|
| 391 |
+
ap_NS_fsm = ap_ST_fsm_state8;
|
| 392 |
+
end
|
| 393 |
+
end
|
| 394 |
+
default : begin
|
| 395 |
+
ap_NS_fsm = 'bx;
|
| 396 |
+
end
|
| 397 |
+
endcase
|
| 398 |
+
end
|
| 399 |
+
|
| 400 |
+
assign ap_CS_fsm_state1 = ap_CS_fsm[32'd0];
|
| 401 |
+
|
| 402 |
+
assign ap_CS_fsm_state2 = ap_CS_fsm[32'd1];
|
| 403 |
+
|
| 404 |
+
assign ap_CS_fsm_state4 = ap_CS_fsm[32'd3];
|
| 405 |
+
|
| 406 |
+
assign ap_CS_fsm_state5 = ap_CS_fsm[32'd4];
|
| 407 |
+
|
| 408 |
+
assign ap_CS_fsm_state7 = ap_CS_fsm[32'd6];
|
| 409 |
+
|
| 410 |
+
assign ap_CS_fsm_state8 = ap_CS_fsm[32'd7];
|
| 411 |
+
|
| 412 |
+
always @ (*) begin
|
| 413 |
+
ap_block_state1 = ((ap_done_reg == 1'b1) | (real_start == 1'b0));
|
| 414 |
+
end
|
| 415 |
+
|
| 416 |
+
always @ (*) begin
|
| 417 |
+
ap_block_state1_ignore_call3 = ((ap_done_reg == 1'b1) | (real_start == 1'b0));
|
| 418 |
+
end
|
| 419 |
+
|
| 420 |
+
assign ap_ready = internal_ap_ready;
|
| 421 |
+
|
| 422 |
+
assign grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadMain_fu_28_ap_start = grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadMain_fu_28_ap_start_reg;
|
| 423 |
+
|
| 424 |
+
assign grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadTopWidth_fu_22_ap_start = grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config47_Pipeline_PadTopWidth_fu_22_ap_start_reg;
|
| 425 |
+
|
| 426 |
+
assign grp_zeropad2d_cl_array_array_ap_fixed_8u_config47_Pipeline_PadBottomWidth_fu_36_ap_start = grp_zeropad2d_cl_array_array_ap_fixed_8u_config47_Pipeline_PadBottomWidth_fu_36_ap_start_reg;
|
| 427 |
+
|
| 428 |
+
assign start_out = real_start;
|
| 429 |
+
|
| 430 |
+
endmodule //myproject_zeropad2d_cl_array_ap_fixed_8u_array_ap_fixed_16_6_5_3_0_8u_config47_s
|
myproject_prj/solution1/impl/verilog/myproject_zeropad2d_cl_array_ap_fixed_8u_array_ap_fixed_16_6_5_3_0_8u_config48_s.v
ADDED
|
@@ -0,0 +1,430 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// ==============================================================
|
| 2 |
+
// Generated by Vitis HLS v2024.1
|
| 3 |
+
// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
|
| 4 |
+
// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
|
| 5 |
+
// ==============================================================
|
| 6 |
+
|
| 7 |
+
`timescale 1 ns / 1 ps
|
| 8 |
+
|
| 9 |
+
module myproject_zeropad2d_cl_array_ap_fixed_8u_array_ap_fixed_16_6_5_3_0_8u_config48_s (
|
| 10 |
+
ap_clk,
|
| 11 |
+
ap_rst,
|
| 12 |
+
ap_start,
|
| 13 |
+
start_full_n,
|
| 14 |
+
ap_done,
|
| 15 |
+
ap_continue,
|
| 16 |
+
ap_idle,
|
| 17 |
+
ap_ready,
|
| 18 |
+
start_out,
|
| 19 |
+
start_write,
|
| 20 |
+
layer6_out_dout,
|
| 21 |
+
layer6_out_num_data_valid,
|
| 22 |
+
layer6_out_fifo_cap,
|
| 23 |
+
layer6_out_empty_n,
|
| 24 |
+
layer6_out_read,
|
| 25 |
+
layer48_out_din,
|
| 26 |
+
layer48_out_num_data_valid,
|
| 27 |
+
layer48_out_fifo_cap,
|
| 28 |
+
layer48_out_full_n,
|
| 29 |
+
layer48_out_write
|
| 30 |
+
);
|
| 31 |
+
|
| 32 |
+
parameter ap_ST_fsm_state1 = 8'd1;
|
| 33 |
+
parameter ap_ST_fsm_state2 = 8'd2;
|
| 34 |
+
parameter ap_ST_fsm_state3 = 8'd4;
|
| 35 |
+
parameter ap_ST_fsm_state4 = 8'd8;
|
| 36 |
+
parameter ap_ST_fsm_state5 = 8'd16;
|
| 37 |
+
parameter ap_ST_fsm_state6 = 8'd32;
|
| 38 |
+
parameter ap_ST_fsm_state7 = 8'd64;
|
| 39 |
+
parameter ap_ST_fsm_state8 = 8'd128;
|
| 40 |
+
|
| 41 |
+
input ap_clk;
|
| 42 |
+
input ap_rst;
|
| 43 |
+
input ap_start;
|
| 44 |
+
input start_full_n;
|
| 45 |
+
output ap_done;
|
| 46 |
+
input ap_continue;
|
| 47 |
+
output ap_idle;
|
| 48 |
+
output ap_ready;
|
| 49 |
+
output start_out;
|
| 50 |
+
output start_write;
|
| 51 |
+
input [127:0] layer6_out_dout;
|
| 52 |
+
input [10:0] layer6_out_num_data_valid;
|
| 53 |
+
input [10:0] layer6_out_fifo_cap;
|
| 54 |
+
input layer6_out_empty_n;
|
| 55 |
+
output layer6_out_read;
|
| 56 |
+
output [127:0] layer48_out_din;
|
| 57 |
+
input [11:0] layer48_out_num_data_valid;
|
| 58 |
+
input [11:0] layer48_out_fifo_cap;
|
| 59 |
+
input layer48_out_full_n;
|
| 60 |
+
output layer48_out_write;
|
| 61 |
+
|
| 62 |
+
reg ap_done;
|
| 63 |
+
reg ap_idle;
|
| 64 |
+
reg start_write;
|
| 65 |
+
reg layer6_out_read;
|
| 66 |
+
reg[127:0] layer48_out_din;
|
| 67 |
+
reg layer48_out_write;
|
| 68 |
+
|
| 69 |
+
reg real_start;
|
| 70 |
+
reg start_once_reg;
|
| 71 |
+
reg ap_done_reg;
|
| 72 |
+
(* fsm_encoding = "none" *) reg [7:0] ap_CS_fsm;
|
| 73 |
+
wire ap_CS_fsm_state1;
|
| 74 |
+
reg internal_ap_ready;
|
| 75 |
+
wire grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadTopWidth_fu_22_ap_start;
|
| 76 |
+
wire grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadTopWidth_fu_22_ap_done;
|
| 77 |
+
wire grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadTopWidth_fu_22_ap_idle;
|
| 78 |
+
wire grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadTopWidth_fu_22_ap_ready;
|
| 79 |
+
wire [127:0] grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadTopWidth_fu_22_layer48_out_din;
|
| 80 |
+
wire grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadTopWidth_fu_22_layer48_out_write;
|
| 81 |
+
wire grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadMain_fu_28_ap_start;
|
| 82 |
+
wire grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadMain_fu_28_ap_done;
|
| 83 |
+
wire grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadMain_fu_28_ap_idle;
|
| 84 |
+
wire grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadMain_fu_28_ap_ready;
|
| 85 |
+
wire [127:0] grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadMain_fu_28_layer48_out_din;
|
| 86 |
+
wire grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadMain_fu_28_layer48_out_write;
|
| 87 |
+
wire grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadMain_fu_28_layer6_out_read;
|
| 88 |
+
wire grp_zeropad2d_cl_array_array_ap_fixed_8u_config48_Pipeline_PadBottomWidth_fu_36_ap_start;
|
| 89 |
+
wire grp_zeropad2d_cl_array_array_ap_fixed_8u_config48_Pipeline_PadBottomWidth_fu_36_ap_done;
|
| 90 |
+
wire grp_zeropad2d_cl_array_array_ap_fixed_8u_config48_Pipeline_PadBottomWidth_fu_36_ap_idle;
|
| 91 |
+
wire grp_zeropad2d_cl_array_array_ap_fixed_8u_config48_Pipeline_PadBottomWidth_fu_36_ap_ready;
|
| 92 |
+
wire [127:0] grp_zeropad2d_cl_array_array_ap_fixed_8u_config48_Pipeline_PadBottomWidth_fu_36_layer48_out_din;
|
| 93 |
+
wire grp_zeropad2d_cl_array_array_ap_fixed_8u_config48_Pipeline_PadBottomWidth_fu_36_layer48_out_write;
|
| 94 |
+
reg grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadTopWidth_fu_22_ap_start_reg;
|
| 95 |
+
reg ap_block_state1_ignore_call3;
|
| 96 |
+
wire ap_CS_fsm_state2;
|
| 97 |
+
reg grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadMain_fu_28_ap_start_reg;
|
| 98 |
+
wire ap_CS_fsm_state4;
|
| 99 |
+
wire ap_CS_fsm_state5;
|
| 100 |
+
reg grp_zeropad2d_cl_array_array_ap_fixed_8u_config48_Pipeline_PadBottomWidth_fu_36_ap_start_reg;
|
| 101 |
+
wire ap_CS_fsm_state7;
|
| 102 |
+
wire ap_CS_fsm_state8;
|
| 103 |
+
reg [7:0] ap_NS_fsm;
|
| 104 |
+
reg ap_block_state1;
|
| 105 |
+
reg ap_ST_fsm_state1_blk;
|
| 106 |
+
reg ap_ST_fsm_state2_blk;
|
| 107 |
+
wire ap_ST_fsm_state3_blk;
|
| 108 |
+
wire ap_ST_fsm_state4_blk;
|
| 109 |
+
reg ap_ST_fsm_state5_blk;
|
| 110 |
+
wire ap_ST_fsm_state6_blk;
|
| 111 |
+
wire ap_ST_fsm_state7_blk;
|
| 112 |
+
reg ap_ST_fsm_state8_blk;
|
| 113 |
+
wire ap_ce_reg;
|
| 114 |
+
|
| 115 |
+
// power-on initialization
|
| 116 |
+
initial begin
|
| 117 |
+
#0 start_once_reg = 1'b0;
|
| 118 |
+
#0 ap_done_reg = 1'b0;
|
| 119 |
+
#0 ap_CS_fsm = 8'd1;
|
| 120 |
+
#0 grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadTopWidth_fu_22_ap_start_reg = 1'b0;
|
| 121 |
+
#0 grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadMain_fu_28_ap_start_reg = 1'b0;
|
| 122 |
+
#0 grp_zeropad2d_cl_array_array_ap_fixed_8u_config48_Pipeline_PadBottomWidth_fu_36_ap_start_reg = 1'b0;
|
| 123 |
+
end
|
| 124 |
+
|
| 125 |
+
myproject_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadTopWidth grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadTopWidth_fu_22(
|
| 126 |
+
.ap_clk(ap_clk),
|
| 127 |
+
.ap_rst(ap_rst),
|
| 128 |
+
.ap_start(grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadTopWidth_fu_22_ap_start),
|
| 129 |
+
.ap_done(grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadTopWidth_fu_22_ap_done),
|
| 130 |
+
.ap_idle(grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadTopWidth_fu_22_ap_idle),
|
| 131 |
+
.ap_ready(grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadTopWidth_fu_22_ap_ready),
|
| 132 |
+
.layer48_out_din(grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadTopWidth_fu_22_layer48_out_din),
|
| 133 |
+
.layer48_out_num_data_valid(12'd0),
|
| 134 |
+
.layer48_out_fifo_cap(12'd0),
|
| 135 |
+
.layer48_out_full_n(layer48_out_full_n),
|
| 136 |
+
.layer48_out_write(grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadTopWidth_fu_22_layer48_out_write)
|
| 137 |
+
);
|
| 138 |
+
|
| 139 |
+
myproject_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadMain grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadMain_fu_28(
|
| 140 |
+
.ap_clk(ap_clk),
|
| 141 |
+
.ap_rst(ap_rst),
|
| 142 |
+
.ap_start(grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadMain_fu_28_ap_start),
|
| 143 |
+
.ap_done(grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadMain_fu_28_ap_done),
|
| 144 |
+
.ap_idle(grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadMain_fu_28_ap_idle),
|
| 145 |
+
.ap_ready(grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadMain_fu_28_ap_ready),
|
| 146 |
+
.layer48_out_din(grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadMain_fu_28_layer48_out_din),
|
| 147 |
+
.layer48_out_num_data_valid(12'd0),
|
| 148 |
+
.layer48_out_fifo_cap(12'd0),
|
| 149 |
+
.layer48_out_full_n(layer48_out_full_n),
|
| 150 |
+
.layer48_out_write(grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadMain_fu_28_layer48_out_write),
|
| 151 |
+
.layer6_out_dout(layer6_out_dout),
|
| 152 |
+
.layer6_out_num_data_valid(11'd0),
|
| 153 |
+
.layer6_out_fifo_cap(11'd0),
|
| 154 |
+
.layer6_out_empty_n(layer6_out_empty_n),
|
| 155 |
+
.layer6_out_read(grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadMain_fu_28_layer6_out_read)
|
| 156 |
+
);
|
| 157 |
+
|
| 158 |
+
myproject_zeropad2d_cl_array_array_ap_fixed_8u_config48_Pipeline_PadBottomWidth grp_zeropad2d_cl_array_array_ap_fixed_8u_config48_Pipeline_PadBottomWidth_fu_36(
|
| 159 |
+
.ap_clk(ap_clk),
|
| 160 |
+
.ap_rst(ap_rst),
|
| 161 |
+
.ap_start(grp_zeropad2d_cl_array_array_ap_fixed_8u_config48_Pipeline_PadBottomWidth_fu_36_ap_start),
|
| 162 |
+
.ap_done(grp_zeropad2d_cl_array_array_ap_fixed_8u_config48_Pipeline_PadBottomWidth_fu_36_ap_done),
|
| 163 |
+
.ap_idle(grp_zeropad2d_cl_array_array_ap_fixed_8u_config48_Pipeline_PadBottomWidth_fu_36_ap_idle),
|
| 164 |
+
.ap_ready(grp_zeropad2d_cl_array_array_ap_fixed_8u_config48_Pipeline_PadBottomWidth_fu_36_ap_ready),
|
| 165 |
+
.layer48_out_din(grp_zeropad2d_cl_array_array_ap_fixed_8u_config48_Pipeline_PadBottomWidth_fu_36_layer48_out_din),
|
| 166 |
+
.layer48_out_num_data_valid(12'd0),
|
| 167 |
+
.layer48_out_fifo_cap(12'd0),
|
| 168 |
+
.layer48_out_full_n(layer48_out_full_n),
|
| 169 |
+
.layer48_out_write(grp_zeropad2d_cl_array_array_ap_fixed_8u_config48_Pipeline_PadBottomWidth_fu_36_layer48_out_write)
|
| 170 |
+
);
|
| 171 |
+
|
| 172 |
+
always @ (posedge ap_clk) begin
|
| 173 |
+
if (ap_rst == 1'b1) begin
|
| 174 |
+
ap_CS_fsm <= ap_ST_fsm_state1;
|
| 175 |
+
end else begin
|
| 176 |
+
ap_CS_fsm <= ap_NS_fsm;
|
| 177 |
+
end
|
| 178 |
+
end
|
| 179 |
+
|
| 180 |
+
always @ (posedge ap_clk) begin
|
| 181 |
+
if (ap_rst == 1'b1) begin
|
| 182 |
+
ap_done_reg <= 1'b0;
|
| 183 |
+
end else begin
|
| 184 |
+
if ((ap_continue == 1'b1)) begin
|
| 185 |
+
ap_done_reg <= 1'b0;
|
| 186 |
+
end else if (((grp_zeropad2d_cl_array_array_ap_fixed_8u_config48_Pipeline_PadBottomWidth_fu_36_ap_done == 1'b1) & (1'b1 == ap_CS_fsm_state8))) begin
|
| 187 |
+
ap_done_reg <= 1'b1;
|
| 188 |
+
end
|
| 189 |
+
end
|
| 190 |
+
end
|
| 191 |
+
|
| 192 |
+
always @ (posedge ap_clk) begin
|
| 193 |
+
if (ap_rst == 1'b1) begin
|
| 194 |
+
grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadMain_fu_28_ap_start_reg <= 1'b0;
|
| 195 |
+
end else begin
|
| 196 |
+
if ((1'b1 == ap_CS_fsm_state4)) begin
|
| 197 |
+
grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadMain_fu_28_ap_start_reg <= 1'b1;
|
| 198 |
+
end else if ((grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadMain_fu_28_ap_ready == 1'b1)) begin
|
| 199 |
+
grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadMain_fu_28_ap_start_reg <= 1'b0;
|
| 200 |
+
end
|
| 201 |
+
end
|
| 202 |
+
end
|
| 203 |
+
|
| 204 |
+
always @ (posedge ap_clk) begin
|
| 205 |
+
if (ap_rst == 1'b1) begin
|
| 206 |
+
grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadTopWidth_fu_22_ap_start_reg <= 1'b0;
|
| 207 |
+
end else begin
|
| 208 |
+
if (((1'b1 == ap_CS_fsm_state1) & (1'b0 == ap_block_state1_ignore_call3))) begin
|
| 209 |
+
grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadTopWidth_fu_22_ap_start_reg <= 1'b1;
|
| 210 |
+
end else if ((grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadTopWidth_fu_22_ap_ready == 1'b1)) begin
|
| 211 |
+
grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadTopWidth_fu_22_ap_start_reg <= 1'b0;
|
| 212 |
+
end
|
| 213 |
+
end
|
| 214 |
+
end
|
| 215 |
+
|
| 216 |
+
always @ (posedge ap_clk) begin
|
| 217 |
+
if (ap_rst == 1'b1) begin
|
| 218 |
+
grp_zeropad2d_cl_array_array_ap_fixed_8u_config48_Pipeline_PadBottomWidth_fu_36_ap_start_reg <= 1'b0;
|
| 219 |
+
end else begin
|
| 220 |
+
if ((1'b1 == ap_CS_fsm_state7)) begin
|
| 221 |
+
grp_zeropad2d_cl_array_array_ap_fixed_8u_config48_Pipeline_PadBottomWidth_fu_36_ap_start_reg <= 1'b1;
|
| 222 |
+
end else if ((grp_zeropad2d_cl_array_array_ap_fixed_8u_config48_Pipeline_PadBottomWidth_fu_36_ap_ready == 1'b1)) begin
|
| 223 |
+
grp_zeropad2d_cl_array_array_ap_fixed_8u_config48_Pipeline_PadBottomWidth_fu_36_ap_start_reg <= 1'b0;
|
| 224 |
+
end
|
| 225 |
+
end
|
| 226 |
+
end
|
| 227 |
+
|
| 228 |
+
always @ (posedge ap_clk) begin
|
| 229 |
+
if (ap_rst == 1'b1) begin
|
| 230 |
+
start_once_reg <= 1'b0;
|
| 231 |
+
end else begin
|
| 232 |
+
if (((internal_ap_ready == 1'b0) & (real_start == 1'b1))) begin
|
| 233 |
+
start_once_reg <= 1'b1;
|
| 234 |
+
end else if ((internal_ap_ready == 1'b1)) begin
|
| 235 |
+
start_once_reg <= 1'b0;
|
| 236 |
+
end
|
| 237 |
+
end
|
| 238 |
+
end
|
| 239 |
+
|
| 240 |
+
always @ (*) begin
|
| 241 |
+
if ((1'b1 == ap_block_state1)) begin
|
| 242 |
+
ap_ST_fsm_state1_blk = 1'b1;
|
| 243 |
+
end else begin
|
| 244 |
+
ap_ST_fsm_state1_blk = 1'b0;
|
| 245 |
+
end
|
| 246 |
+
end
|
| 247 |
+
|
| 248 |
+
always @ (*) begin
|
| 249 |
+
if ((grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadTopWidth_fu_22_ap_done == 1'b0)) begin
|
| 250 |
+
ap_ST_fsm_state2_blk = 1'b1;
|
| 251 |
+
end else begin
|
| 252 |
+
ap_ST_fsm_state2_blk = 1'b0;
|
| 253 |
+
end
|
| 254 |
+
end
|
| 255 |
+
|
| 256 |
+
assign ap_ST_fsm_state3_blk = 1'b0;
|
| 257 |
+
|
| 258 |
+
assign ap_ST_fsm_state4_blk = 1'b0;
|
| 259 |
+
|
| 260 |
+
always @ (*) begin
|
| 261 |
+
if ((grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadMain_fu_28_ap_done == 1'b0)) begin
|
| 262 |
+
ap_ST_fsm_state5_blk = 1'b1;
|
| 263 |
+
end else begin
|
| 264 |
+
ap_ST_fsm_state5_blk = 1'b0;
|
| 265 |
+
end
|
| 266 |
+
end
|
| 267 |
+
|
| 268 |
+
assign ap_ST_fsm_state6_blk = 1'b0;
|
| 269 |
+
|
| 270 |
+
assign ap_ST_fsm_state7_blk = 1'b0;
|
| 271 |
+
|
| 272 |
+
always @ (*) begin
|
| 273 |
+
if ((grp_zeropad2d_cl_array_array_ap_fixed_8u_config48_Pipeline_PadBottomWidth_fu_36_ap_done == 1'b0)) begin
|
| 274 |
+
ap_ST_fsm_state8_blk = 1'b1;
|
| 275 |
+
end else begin
|
| 276 |
+
ap_ST_fsm_state8_blk = 1'b0;
|
| 277 |
+
end
|
| 278 |
+
end
|
| 279 |
+
|
| 280 |
+
always @ (*) begin
|
| 281 |
+
if (((grp_zeropad2d_cl_array_array_ap_fixed_8u_config48_Pipeline_PadBottomWidth_fu_36_ap_done == 1'b1) & (1'b1 == ap_CS_fsm_state8))) begin
|
| 282 |
+
ap_done = 1'b1;
|
| 283 |
+
end else begin
|
| 284 |
+
ap_done = ap_done_reg;
|
| 285 |
+
end
|
| 286 |
+
end
|
| 287 |
+
|
| 288 |
+
always @ (*) begin
|
| 289 |
+
if (((1'b1 == ap_CS_fsm_state1) & (real_start == 1'b0))) begin
|
| 290 |
+
ap_idle = 1'b1;
|
| 291 |
+
end else begin
|
| 292 |
+
ap_idle = 1'b0;
|
| 293 |
+
end
|
| 294 |
+
end
|
| 295 |
+
|
| 296 |
+
always @ (*) begin
|
| 297 |
+
if (((grp_zeropad2d_cl_array_array_ap_fixed_8u_config48_Pipeline_PadBottomWidth_fu_36_ap_done == 1'b1) & (1'b1 == ap_CS_fsm_state8))) begin
|
| 298 |
+
internal_ap_ready = 1'b1;
|
| 299 |
+
end else begin
|
| 300 |
+
internal_ap_ready = 1'b0;
|
| 301 |
+
end
|
| 302 |
+
end
|
| 303 |
+
|
| 304 |
+
always @ (*) begin
|
| 305 |
+
if ((1'b1 == ap_CS_fsm_state8)) begin
|
| 306 |
+
layer48_out_din = grp_zeropad2d_cl_array_array_ap_fixed_8u_config48_Pipeline_PadBottomWidth_fu_36_layer48_out_din;
|
| 307 |
+
end else if ((1'b1 == ap_CS_fsm_state5)) begin
|
| 308 |
+
layer48_out_din = grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadMain_fu_28_layer48_out_din;
|
| 309 |
+
end else if ((1'b1 == ap_CS_fsm_state2)) begin
|
| 310 |
+
layer48_out_din = grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadTopWidth_fu_22_layer48_out_din;
|
| 311 |
+
end else begin
|
| 312 |
+
layer48_out_din = grp_zeropad2d_cl_array_array_ap_fixed_8u_config48_Pipeline_PadBottomWidth_fu_36_layer48_out_din;
|
| 313 |
+
end
|
| 314 |
+
end
|
| 315 |
+
|
| 316 |
+
always @ (*) begin
|
| 317 |
+
if ((1'b1 == ap_CS_fsm_state8)) begin
|
| 318 |
+
layer48_out_write = grp_zeropad2d_cl_array_array_ap_fixed_8u_config48_Pipeline_PadBottomWidth_fu_36_layer48_out_write;
|
| 319 |
+
end else if ((1'b1 == ap_CS_fsm_state5)) begin
|
| 320 |
+
layer48_out_write = grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadMain_fu_28_layer48_out_write;
|
| 321 |
+
end else if ((1'b1 == ap_CS_fsm_state2)) begin
|
| 322 |
+
layer48_out_write = grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadTopWidth_fu_22_layer48_out_write;
|
| 323 |
+
end else begin
|
| 324 |
+
layer48_out_write = 1'b0;
|
| 325 |
+
end
|
| 326 |
+
end
|
| 327 |
+
|
| 328 |
+
always @ (*) begin
|
| 329 |
+
if ((1'b1 == ap_CS_fsm_state5)) begin
|
| 330 |
+
layer6_out_read = grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadMain_fu_28_layer6_out_read;
|
| 331 |
+
end else begin
|
| 332 |
+
layer6_out_read = 1'b0;
|
| 333 |
+
end
|
| 334 |
+
end
|
| 335 |
+
|
| 336 |
+
always @ (*) begin
|
| 337 |
+
if (((start_once_reg == 1'b0) & (start_full_n == 1'b0))) begin
|
| 338 |
+
real_start = 1'b0;
|
| 339 |
+
end else begin
|
| 340 |
+
real_start = ap_start;
|
| 341 |
+
end
|
| 342 |
+
end
|
| 343 |
+
|
| 344 |
+
always @ (*) begin
|
| 345 |
+
if (((start_once_reg == 1'b0) & (real_start == 1'b1))) begin
|
| 346 |
+
start_write = 1'b1;
|
| 347 |
+
end else begin
|
| 348 |
+
start_write = 1'b0;
|
| 349 |
+
end
|
| 350 |
+
end
|
| 351 |
+
|
| 352 |
+
always @ (*) begin
|
| 353 |
+
case (ap_CS_fsm)
|
| 354 |
+
ap_ST_fsm_state1 : begin
|
| 355 |
+
if (((1'b1 == ap_CS_fsm_state1) & (1'b0 == ap_block_state1))) begin
|
| 356 |
+
ap_NS_fsm = ap_ST_fsm_state2;
|
| 357 |
+
end else begin
|
| 358 |
+
ap_NS_fsm = ap_ST_fsm_state1;
|
| 359 |
+
end
|
| 360 |
+
end
|
| 361 |
+
ap_ST_fsm_state2 : begin
|
| 362 |
+
if (((grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadTopWidth_fu_22_ap_done == 1'b1) & (1'b1 == ap_CS_fsm_state2))) begin
|
| 363 |
+
ap_NS_fsm = ap_ST_fsm_state3;
|
| 364 |
+
end else begin
|
| 365 |
+
ap_NS_fsm = ap_ST_fsm_state2;
|
| 366 |
+
end
|
| 367 |
+
end
|
| 368 |
+
ap_ST_fsm_state3 : begin
|
| 369 |
+
ap_NS_fsm = ap_ST_fsm_state4;
|
| 370 |
+
end
|
| 371 |
+
ap_ST_fsm_state4 : begin
|
| 372 |
+
ap_NS_fsm = ap_ST_fsm_state5;
|
| 373 |
+
end
|
| 374 |
+
ap_ST_fsm_state5 : begin
|
| 375 |
+
if (((grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadMain_fu_28_ap_done == 1'b1) & (1'b1 == ap_CS_fsm_state5))) begin
|
| 376 |
+
ap_NS_fsm = ap_ST_fsm_state6;
|
| 377 |
+
end else begin
|
| 378 |
+
ap_NS_fsm = ap_ST_fsm_state5;
|
| 379 |
+
end
|
| 380 |
+
end
|
| 381 |
+
ap_ST_fsm_state6 : begin
|
| 382 |
+
ap_NS_fsm = ap_ST_fsm_state7;
|
| 383 |
+
end
|
| 384 |
+
ap_ST_fsm_state7 : begin
|
| 385 |
+
ap_NS_fsm = ap_ST_fsm_state8;
|
| 386 |
+
end
|
| 387 |
+
ap_ST_fsm_state8 : begin
|
| 388 |
+
if (((grp_zeropad2d_cl_array_array_ap_fixed_8u_config48_Pipeline_PadBottomWidth_fu_36_ap_done == 1'b1) & (1'b1 == ap_CS_fsm_state8))) begin
|
| 389 |
+
ap_NS_fsm = ap_ST_fsm_state1;
|
| 390 |
+
end else begin
|
| 391 |
+
ap_NS_fsm = ap_ST_fsm_state8;
|
| 392 |
+
end
|
| 393 |
+
end
|
| 394 |
+
default : begin
|
| 395 |
+
ap_NS_fsm = 'bx;
|
| 396 |
+
end
|
| 397 |
+
endcase
|
| 398 |
+
end
|
| 399 |
+
|
| 400 |
+
assign ap_CS_fsm_state1 = ap_CS_fsm[32'd0];
|
| 401 |
+
|
| 402 |
+
assign ap_CS_fsm_state2 = ap_CS_fsm[32'd1];
|
| 403 |
+
|
| 404 |
+
assign ap_CS_fsm_state4 = ap_CS_fsm[32'd3];
|
| 405 |
+
|
| 406 |
+
assign ap_CS_fsm_state5 = ap_CS_fsm[32'd4];
|
| 407 |
+
|
| 408 |
+
assign ap_CS_fsm_state7 = ap_CS_fsm[32'd6];
|
| 409 |
+
|
| 410 |
+
assign ap_CS_fsm_state8 = ap_CS_fsm[32'd7];
|
| 411 |
+
|
| 412 |
+
always @ (*) begin
|
| 413 |
+
ap_block_state1 = ((ap_done_reg == 1'b1) | (real_start == 1'b0));
|
| 414 |
+
end
|
| 415 |
+
|
| 416 |
+
always @ (*) begin
|
| 417 |
+
ap_block_state1_ignore_call3 = ((ap_done_reg == 1'b1) | (real_start == 1'b0));
|
| 418 |
+
end
|
| 419 |
+
|
| 420 |
+
assign ap_ready = internal_ap_ready;
|
| 421 |
+
|
| 422 |
+
assign grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadMain_fu_28_ap_start = grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadMain_fu_28_ap_start_reg;
|
| 423 |
+
|
| 424 |
+
assign grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadTopWidth_fu_22_ap_start = grp_zeropad2d_cl_array_array_ap_fixed_16_6_5_3_0_8u_config48_Pipeline_PadTopWidth_fu_22_ap_start_reg;
|
| 425 |
+
|
| 426 |
+
assign grp_zeropad2d_cl_array_array_ap_fixed_8u_config48_Pipeline_PadBottomWidth_fu_36_ap_start = grp_zeropad2d_cl_array_array_ap_fixed_8u_config48_Pipeline_PadBottomWidth_fu_36_ap_start_reg;
|
| 427 |
+
|
| 428 |
+
assign start_out = real_start;
|
| 429 |
+
|
| 430 |
+
endmodule //myproject_zeropad2d_cl_array_ap_fixed_8u_array_ap_fixed_16_6_5_3_0_8u_config48_s
|