LegUp 9.2 DocumentationΒΆ
LegUp automatically compiles a C/C++ program into hardware described in Verilog HDL (Hardware Description Language). The generated hardware can be programmed onto an Microchip FPGA (Field-Programmable Gate Array). Hardware implemented on an FPGA can provide 2-10X performance and power benefits over the same computation running on regular processors.
The documentation is comprised of the following sections:
- Getting Started: Installation and a quick start guide
- User Guide: How to use LegUp to generate hardware
- Optimization Guide: How to optimize the generated hardware
- Hardware Architecture: Synthesized hardware architecture
- LegUp Pragmas Manual: Pragmas manual
- Constraints Manual: Constraints manual
- Frequently Asked Questions: Frequently asked questions
- Release Notes: New features and known problems with each release
For example applications using LegUp please check out our github at:
For support, please contact legup@microchip.com.
- 1. Getting Started
- 2. User Guide
- 2.1. Introduction to High-Level Synthesis
- 2.2. LegUp Overview
- 2.3. LegUp Pragmas
- 2.4. LegUp Constraints
- 2.5. Specifying the Top-level Function
- 2.6. SW/HW Co-Simulation
- 2.7. Loop Pipelining
- 2.8. Multi-threading with LegUp Threads
- 2.9. Supported LegUp Thread APIs
- 2.10. Data Flow Parallelism with LegUp Threads
- 2.11. Function Pipelining
- 2.12. Memory Partitioning
- 2.13. LegUp C++ Library
- 2.13.1. Streaming Library
- 2.13.2. C++ Arbitrary Precision Data Types Library
- 2.13.3. C++ Arbitrary Precision Integer Library
- 2.13.4. C++ Arbitrary Precision Bit-level Operations
- 2.13.5. C++ Arbitrary Precision Fixed Point Library
- 2.13.6. Supported Operations in ap_[u]int, ap_[u]fixpt, and floating-point
- 2.13.7. Image Processing Library
- 2.14. LegUp C Library
- 2.15. Top-Level RTL Interface
- 2.16. Specifying a Custom Test Bench
- 2.17. Report Files
- 2.18. Schedule Viewer
- 2.19. Instantiating LegUp IP Core in Libero SmartDesign
- 2.20. LegUp Command Line Interface
- 3. Optimization Guide
- 4. Hardware Architecture
- 5. LegUp Pragmas Manual
- 5.1. Set Custom Top-Level Function
- 5.2. Pipeline Function
- 5.3. Inline Function
- 5.4. Noinline Function
- 5.5. Flatten Function
- 5.6. Replicate Function
- 5.7. Pipeline Loop
- 5.8. Unroll Loop
- 5.9. Configure Scalar Argument Interface
- 5.10. Configure Argument as Memory Interface
- 5.11. Configure Global Variable as Memory Interface
- 5.12. Configure Argument as Scalar Memory Interface
- 5.13. Configure Global Variable as Scalar Memory Interface
- 5.14. Configure Global as AXI4 Interface
- 5.15. Partition Memory
- 5.16. Partition Top-Level Interface
- 5.17. Contention-Free Memory Access
- 6. Constraints Manual
- 6.1. CLOCK_PERIOD
- 6.2. set_custom_top_level_module
- 6.3. set_custom_test_bench_module
- 6.4. set_custom_test_bench_file
- 6.5. set_synthesis_top_module
- 6.6. set_resource_constraint
- 6.7. set_operation_latency
- 6.8. KEEP_SIGNALS_WITH_NO_FANOUT
- 6.9. VSIM_ASSERT
- 6.10. STRENGTH_REDUCTION
- 6.11. STRENGTH_REDUCTION_ADDERS_ALLOWED_PER_MULTIPLIER
- 7. Frequently Asked Questions
- 8. Release Notes