The DesignWare Library's Datapath and Building Block IP is a collection of reusable intellectual property blocks that are tightly integrated into the Synopsys synthesis environment. Using the DesignWare Library's Datapath and Building Block IP allows transparent, high-level optimization of performance during synthesis. The large availability of IP components enables design reuse and significantly improves productivity. The DesignWare Library's Datapath and Building Block IP consists of:
| Application Specific: Control Logic | |
|---|---|
| DW_arb_2t | Two-Tier Arbiter with Dynamic/Fair-Among-Equal Scheme |
| DW_arb_dp | Arbiter with Dynamic Priority Scheme |
| DW_arb_fcfs | Arbiter with First-Come-First-Served Priority Scheme |
| DW_arb_rr | Arbiter with Round Robin Priority Scheme |
| DW_arb_sp | Arbiter with Static Priority Scheme |
| Datapath: Arithmetic Components | |
| DW01_absval | Absolute Value |
| DW01_add | Adder |
| DW01_addsub | Adder-Subtractor |
| DW01_ash | Arithmetic Shifter |
| DW01_bsh | Barrel Shifter |
| DW01_cmp2 | 2-Function Comparator |
| DW01_cmp6 | 6-Function Comparator |
| DW01_csa | Carry Save Adder |
| DW01_dec | Decrementer |
| DW01_inc | Incrementer |
| DW01_incdec | Incrementer-Decrementer |
| DW01_satrnd | Arithmetic Saturation and Rounding Logic |
| DW01_sub | Subtractor |
| DW02_mac | Multiplier-Accumulator |
| DW02_mult | Multiplier |
| DW02_multp | Partial Product Multiplier |
| DW02_mult_2_stage | Two-Stage Pipelined Multiplier |
| DW02_mult_3_stage | Three-Stage Pipelined Multiplier |
| DW02_mult_4_stage | Four-Stage Pipelined Multiplier |
| DW02_mult_5_stage | Five-Stage Pipelined Multiplier |
| DW02_mult_6_stage | Six-Stage Pipelined Multiplier |
| DW02_prod_sum | Generalized Sum of Products |
| DW02_prod_sum1 | Multiplier-Adder |
| DW02_sum | Vector Adder |
| DW02_tree | Wallace Tree Compressor |
| DW_addsub_dx | Duplex Adder/Subtractor with Saturation and Rounding |
| DW_bin2gray | Binary to Gray Converter |
| DW_cmp_dx | Duplex Comparator |
| DW_cntr_gray | Gray Code Counter |
| DW_div | Combinational Divider |
| DW_div_pipe | Stallable Pipelined Divider |
| DW_div_sat | Combinational Divider with Saturation |
| DW_exp2 | Base-2 Exponential |
| DW_gray2bin | Gray to Binary Converter |
| DW_inc_gray | Gray Incrementer |
| DW_inv_sqrt | Reciprocal of Square-Root |
| DW_lbsh | Barrel Shifter with Preferred Left Direction |
| DW_ln | Natural Logarithm |
| DW_log2 | Base-2 Logarithm |
| DW_lp_multifunc | minPower Low Power Multi-function Unit |
| DW_lp_multifunc_DG | minPower Low Power Multi-function Unit with Datapath Gating |
| DW_lp_piped_div | minPower Low Power Pipelined Divide |
| DW_lp_piped_mult | minPower Low Power Pipelined Multiplier |
| DW_lp_piped_prod_sum | minPower Low Power Pipelined Sum of Products |
| DW_lp_piped_sqrt | minPower Low Power Pipelined Square Root |
| DW_minmax | Minimum/Maximum Value |
| DW_mult_dx | Duplex Multiplier |
| DW_mult_pipe | Stallable Pipelined Multiplier |
| DW_norm | Normalization for Fractional Input |
| DW_norm_rnd | Normalization and Rounding |
| DW_piped_mac | Pipelined Multiplier-Accumulator |
| DW_prod_sum_pipe | Stallable Pipelined Generalized Sum of Products |
| DW_rash | Arithmetic Shifter with Preferred Right Direction |
| DW_rbsh | Barrel Shifter with Preferred Right Direction |
| DW_shifter | Combined Arithmetic and Barrel Shifter |
| DW_sla | Arithmetic Left Shifter |
| DW_sqrt | Combinational Square Root |
| DW_sqrt_pipe | Stallable Pipelined Square Root |
| DW_square | Integer Squarer |
| DW_squarep | Partial Product Integer Squarer |
| DW_sra | Arithmetic Right Shifter |
| Datapath: Floating Point | |
| DW_fp_add | Floating-Point Adder |
| DW_fp_addsub | Floating-Point Adder/Subtractor |
| DW_fp_addsub_DG | Floating-Point Adder/subtractor with Datapath Gating |
| DW_fp_add_DG | Floating-Point Adder with Datapath Gating |
| DW_fp_cmp | Floating-Point Comparator |
| DW_fp_cmp_DG | Floating-Point Comparator with Datapath Gating |
| DW_fp_div | Floating-Point Divider |
| DW_fp_div_DG | Floating-Point Divider with Datapath Gating |
| DW_fp_div_seq | Floating-Point Sequential Divider |
| DW_fp_dp2 | 2-Term Floating-Point Dot-product |
| DW_fp_dp3 | 3-Term Floating-Point Dot-product |
| DW_fp_dp4 | 4-Term Floating-Point Dot-product |
| DW_fp_exp | Floating-Point Exponential (e^a) |
| DW_fp_exp2 | Floating-Point Base-2 Exponential |
| DW_fp_flt2i | Floating-Point to Integer Converter |
| DW_fp_i2flt | Integer to Floating-Point Converter |
| DW_fp_invsqrt | Floating-Point Reciprocal of Square Root |
| DW_fp_ln | Floating-Point Natural Logarithm |
| DW_fp_log2 | Floating-Point Base-2 Logarithm |
| DW_fp_mac | Floating-Point Multiply and Add |
| DW_fp_mac_DG | Floating-Point Multiply-and-Add with Datapath Gating |
| DW_fp_mult | Floating-Point Multiplier |
| DW_fp_mult_DG | Floating-Point Multiply with Datapath Gating |
| DW_fp_recip | Floating-Point Reciprocal |
| DW_fp_recip_DG | Floating-Point Reciprocal with Datapath Gating |
| DW_fp_sincos | Floating-Point Sine or Cosine |
| DW_fp_sqrt | Floating-Point Square Root |
| DW_fp_square | Floating-Point Square |
| DW_fp_sub | Floating-Point Subtractor |
| DW_fp_sub_DG | Floating-Point Subtractor with Datapath Gating |
| DW_fp_sum3 | 3-input Floating-Point Adder |
| DW_fp_sum3_DG | 3-Input Floating-Point Adder with Datapath Gating |
| DW_fp_sum4 | 4-input Floating-Point Adder |
| DW_lp_fp_multifunc | minPower Low Power Floating-Point Multi-function Unit |
| DW_lp_fp_multifunc_DG | minPower Low Power Floating-Point Multi-function Unit with Datapath Gating |
| DW_lp_piped_fp_add | minPower Low Power Pipelined Floating-Point Adder |
| DW_lp_piped_fp_div | minPower Low Power Pipelined Floating-Point Divide |
| DW_lp_piped_fp_mult | minPower Low Power Pipelined Floating-Point Multiplier |
| DW_lp_piped_fp_recip | minPower Low Power Pipelined Floating-Point Reciprocal |
| DW_lp_piped_fp_sum3 | minPower Low Power Pipelined 3-input Floating-Point Adder |
| Datapath: Sequential | |
| DW_div_seq | Sequential Divider |
| DW_mult_seq | Sequential Multiplier |
| DW_sqrt_seq | Sequential Square Root |
| Datapath: Trigonometric | |
| DW_sincos | Sine and Cosine |
| Data Integrity | |
| DW04_par_gen | Parity Generator and Checker |
| DW_crc_p | Universal Parallel (Combinational) CRC Generator/Checker |
| DW_crc_s | Universal Synchronous (Clocked) CRC Generator/Checker |
| DW_ecc | Error Checking and Correction |
| DW_lp_piped_ecc | minPower Low Power Pipelined Error Correction (ECC) |
| Data Integrity: Coding | |
| DW_8b10b_dec | 8b10b Decoder |
| DW_8b10b_enc | 8b10b Encoder |
| DW_8b10b_unbal | 8b10b Coding Balance Predictor |
| Digital Signal Processing | |
| DW_dct_2d | Two Dimensional Discreet Cosine Transform (DCT) |
| DW_fir | High-Speed Digital FIR Filter |
| DW_fir_seq | Sequential Digital FIR Filter Processor |
| DW_iir_dc | High-Speed Digital IIR Filter with Dynamic Coefficients |
| DW_iir_sc | High-Speed Digital IIR Filter with Static Coefficients |
| Interface: Clock Domain Crossing | |
| DW_data_qsync_hl | Quasi-Synchronous Data Interface for H-to-L Frequency Clocks |
| DW_data_qsync_lh | Quasi-Synchronous Data Interface for L-to-H Frequency Clocks |
| DW_data_sync | Data Bus Synchronizer with Acknowledge |
| DW_data_sync_1c | Single Clock Filtered Data Bus Synchronizer |
| DW_data_sync_na | Data Bus Synchronizer without Acknowledge |
| DW_gray_sync | Gray Coded Synchronizer |
| DW_pulseack_sync | Pulse Synchronizer with Acknowledge |
| DW_pulse_sync | Dual Clock Pulse Synchronizer |
| DW_reset_sync | Reset Sequence Synchronizer |
| DW_stream_sync | Data Stream Synchronizer |
| DW_sync | Single Clock Data Bus Synchronizer |
| Logic: Combinational Components | |
| DW01_binenc | Binary Encoder |
| DW01_decode | Decoder |
| DW01_mux_any | Universal Multiplexer |
| DW01_prienc | Priority Encoder |
| DW_decode_en | Binary Decoder with Enable |
| DW_lod | Leading One's Detector |
| DW_lsd | Leading Signs Detector |
| DW_lza | Leading Zero's Anticipator |
| DW_lzd | Leading Zero's Detector |
| DW_pricod | Priority Coder |
| DW_thermdec | Binary Thermometer Decoder with Enable |
| Logic: Sequential Components | |
| DW03_bictr_dcnto | Up/Down Binary Counter with Dynamic Count-to Flag |
| DW03_bictr_decode | Up/Down Binary Counter with Output Decode |
| DW03_bictr_scnto | Up/Down Binary Counter with Static Count-to Flag |
| DW03_lfsr_dcnto | LFSR Counter with Dynamic Count-to Flag |
| DW03_lfsr_load | LFSR Counter with Loadable Input |
| DW03_lfsr_scnto | LFSR Counter with Static Count-to Flag |
| DW03_lfsr_updn | LFSR Up/Down Counter |
| DW03_updn_ctr | Up/Down Counter |
| DW_dpll_sd | Digital Phase Locked Loop |
| DW_lp_cntr_updn_df | minPower Low Power Counter with Dynamic Terminal Count Flag |
| DW_lp_cntr_up_df | minPower Low Power Up Counter with Dynamic Terminal Count Flag |
| Memory: FIFO | |
| DW_asymdata_inbuf | Asymmetric Data Input Buffer |
| DW_asymdata_outbuf | Asymmetric Data Output Buffer |
| DW_asymfifo_s1_df | Asymmetric I/O Synchronous (Single Clock) FIFO with Dynamic Flags |
| DW_asymfifo_s1_sf | Asymmetric I/O Synchronous (Single Clock) FIFO with Static Flags |
| DW_asymfifo_s2_sf | Asymmetric Synchronous (Dual-Clock) FIFO with Static Flags |
| DW_fifo_2c_df | Dual clock FIFO with Dynamic Flags |
| DW_fifo_s1_df | Synchronous (Single Clock) FIFO with Dynamic Flags |
| DW_fifo_s1_sf | Synchronous (Single Clock) FIFO with Static Flags |
| DW_fifo_s2_sf | Synchronous (Dual-Clock) FIFO with Static Flags |
| DW_lp_fifo_1c_df | Low Power Single Independent Clock FIFO |
| Memory: FIFO Controllers | |
| DW_asymfifoctl_2c_df | Asymmetric Synchronous (Dual Clock) FIFO Controller with Dynamic Flags |
| DW_asymfifoctl_s1_df | Asymmetric I/O Synchronous (Single Clock) FIFO Controller with Dynamic Flags |
| DW_asymfifoctl_s1_sf | Asymmetric I/O Synchronous (Single Clock) FIFO Controller with Static Flags |
| DW_asymfifoctl_s2_sf | Asymmetric Synchronous (Dual-Clock) FIFO Controller with Static Flags |
| DW_fifoctl_2c_df | Dual clock FIFO Controller with Synchronous Memory Support and Dynamic Flags |
| DW_fifoctl_s1_df | Synchronous (Single Clock) FIFO Controller with Dynamic Flags |
| DW_fifoctl_s1_sf | Synchronous (Single-Clock) FIFO Controller with Static Flags |
| DW_fifoctl_s2_sf | Synchronous (Dual-Clock) FIFO Controller with Static Flags |
| DW_lp_fifoctl_1c_df | minPower Low Power Single clock FIFO Controller with Dynamic Flags |
| Memory: Registers | |
| DW03_pipe_reg | Pipeline Register |
| DW03_reg_s_pl | Register with Synchronous Enable Reset |
| DW03_shftreg | Shift Register |
| DW04_shad_reg | Shadow and Multibit Register |
| DW_pl_reg | Pipeline Register with individual enables |
| Memory: SRAMs | |
| DW_ram_2r_2w_s_dff | Synchronous write, asynchronous read, 4-port RAM (FF-based) |
| DW_ram_2r_w_a_dff | Asynchronous Three-Port RAM (Flip-Flop Based) |
| DW_ram_2r_w_a_lat | Write-Port, Dual-Read-Port RAM (Latch-Based) |
| DW_ram_2r_w_s_dff | Synchronous Write-Port, Asynchronous Dual Read-Port RAM (Flip-Flop Based) |
| DW_ram_2r_w_s_lat | Synchronous Write-Port, Asynchronous Dual Read-Port RAM (Latch-Based) |
| DW_ram_rw_a_dff | Asynchronous Single-Port RAM (Flip-Flop Based) |
| DW_ram_rw_a_lat | Asynchronous Single-Port RAM (Latch-Based) |
| DW_ram_rw_s_dff | Synchronous Single-Port, Read/Write RAM (Flip-Flop Based) |
| DW_ram_rw_s_lat | Synchronous Single-Port, Read/Write RAM (Latch-Based) |
| DW_ram_r_w_2c_dff | Synchronous Two-Clock RAM (Flip-Flop-Based)) |
| DW_ram_r_w_a_dff | Asynchronous Dual-Port RAM (Flip-Flop Based) |
| DW_ram_r_w_a_lat | Asynchronous Dual-Port RAM (Latch-Based) |
| DW_ram_r_w_s_dff | Synchronous Write-Port, Asynchronous Read-Port RAM (Flip-Flop Based) |
| DW_ram_r_w_s_lat | Synchronous Write-Port, Asynchronous Read-Port RAM (Latch-Based) |
| Memory: Stacks | |
| DW_stack | Synchronous (Single Clock) Stack |
| DW_stackctl | Synchronous (Single Clock) Stack Controller |
| Test: JTAG | |
| DW_bc_1 | Boundary Scan Cell Type BC_1 |
| DW_bc_10 | Boundary Scan Cell Type BC_10 |
| DW_bc_2 | Boundary Scan Cell Type BC_2 |
| DW_bc_3 | Boundary Scan Cell Type BC_3 |
| DW_bc_4 | Boundary Scan Cell Type BC_4 |
| DW_bc_5 | Boundary Scan Cell Type BC_5 |
| DW_bc_7 | Boundary Scan Cell Type BC_7 |
| DW_bc_8 | Boundary Scan Cell Type BC_8 |
| DW_bc_9 | Boundary Scan Cell Type BC_9 |
| DW_tap | TAP Controller |
| DW_tap_uc | TAP Controller with USERCODE Support |
| Datapath Functions | |
| DWF_dp_absval | Returns the absolute value (magnitude) of an argument |
| DWF_dp_blend | Implements an alpha blender or linear interpolator |
| DWF_dp_count_ones | Counts ones in argument |
| DWF_dp_mult_comb | Performs a combined unsigned/signed multiply |
| DWF_dp_mult_comb_ovfldet | Performs a combined unsigned/signed multiply and overflow detection |
| DWF_dp_mult_comb_sat | Performs a combined unsigned/signed multiply and saturation |
| DWF_dp_mult_ovfldet | Performs a multiplication with overflow detection |
| DWF_dp_mult_sat | Performs a multiplication and saturation |
| DWF_dp_rnd | Performs arithmetic rounding |
| DWF_dp_rndsat | Performs arithmetic rounding and saturation |
| DWF_dp_sat | Performs arithmetic saturation |
| DWF_dp_sign_select | Performs sign selection / conditional two's complement |
| DWF_dp_simd_add | Configurable SIMD adder |
| DWF_dp_simd_addc | Configurable SIMD adder with carry |
| DWF_dp_simd_mult | Configurable SIMD multiplier |
| DWF_dp_sub_abs | Returns the absolute value of a subtraction |
| DW_lp_pipe_mgr | minPower Low Power Pipeline Manager |