In Part 1 of this 2-part series, we examined how ScanWorks’ Fast Flash Programming (FFP) instrument can be integrated alongside customer-defined logic in an FPGA configuration generated by ASSET’s Embedded Technology Generator (ETG).
In this installment, we reverse the architecture. We’ll explore how the FFP IP generated by ETG can be instantiated inside a customer-owned top-level design—empowering FPGA developers to bring high-performance flash programming into an already-optimized and verified HDL framework.
Why Reverse the Integration? By embedding the FFP core directly into their IP, customers can:
- Retain ownership of their RTL hierarchy and synthesis flow while incorporating the Fast Flash Programming feature
- Insert the FFP logic where it fits best in your system
- Optionally expose FFP ports through boundary scan for ScanWorks-driven control
Integration Architecture
In the illustration above, the green rectangle represents the customer FPGA Top Module wherein the ScanWorks ETG-generated configurable logic (the blue rectangle) is instantiated among the customer sub-modules. The JTAG connections are already made by way of a vendor library module within the ETG Instance hierarchy. The user only needs to connect the FFP Instance sub-module’s SPI signals, MOSI, MISO, SSEL, and SCK to the pins at the top level of the module dedicated to the SPI interface.
Integration Process
- Generate the IP: create a Fast Flash Programming instrument tailored for your FPGA using ASSET’s ETG tool through ScanWorks which is configured to align to your target Flash.
- Add to Your HDL Design: Instantiate the module in your top-level Verilog or VHDL file, wiring up SPI IO’s to the appropriate ports.
- Validate Programming Sequence: Use the ScanWorks “SPI Flash IP” action to initiate and validate the programming flow.
Final Thoughts
This approach unlocks maximum flexibility for customers who prefer to control their synthesis, floor planning, and integration processes, without disrupting your architecture. With the FFP instrument now a portable logic component, fast programming can be brought directly into your RTL environment. No need to switch frameworks or workflows—just embed, hook it up, and flash at production speed. See the chart below for programming speed improvements.