1. Introduction to Altera Programmer
In the world of programmable logic devices, the Altera Programmer stands as a crucial tool for engineers and developers working with Complex Programmable Logic Devices (CPLDs) and Field-Programmable Gate Arrays (FPGAs). This comprehensive guide will walk you through the intricacies of using an Altera Programmer, with a focus on JTAG programming for popular devices such as MAX II, Cyclone IV, and the EPM240T100C5N.
What is an Altera Programmer?
An Altera Programmer is a hardware device used to configure Altera (now part of Intel) CPLDs and FPGAs. It serves as the bridge between your development computer and the target device, allowing you to download your designed logic onto the chip.
Key Uses for CPLD and FPGA Devices
CPLDs and FPGAs are versatile semiconductor devices that can be programmed to perform a wide range of digital logic functions. Some key applications include:
- Prototyping complex digital systems
- Implementing custom interfaces and protocols
- Accelerating specific computational tasks
- Serving as glue logic in larger electronic systems

Overview of Supported Devices
This guide will focus on programming three popular Altera devices:
- MAX II: A family of low-cost, non-volatile CPLDs
- Cyclone IV: A series of low-power, high-functionality FPGAs
- EPM240T100C5N: A specific MAX II CPLD with 240 macrocells
2. Understanding JTAG Programming
JTAG (Joint Test Action Group) programming is the primary method used for configuring Altera devices. Let’s delve into what JTAG is and why it’s crucial for Altera device programming.
What is JTAG?
JTAG, officially known as IEEE 1149.1 Standard Test Access Port and Boundary-Scan Architecture, is a widely adopted industry standard for testing and programming integrated circuits. It provides a standardized interface for accessing and controlling the pins of a device without direct physical contact.
Why JTAG is Used in Altera Device Programming
JTAG is the preferred method for programming Altera devices due to several advantages:
- Standardization: JTAG is an industry-standard protocol, ensuring compatibility across different tools and devices.
- In-System Programming: Devices can be programmed while soldered onto a PCB, eliminating the need for specialized sockets.
- Daisy-Chaining: Multiple devices can be programmed through a single JTAG interface.
- Debugging Capabilities: JTAG allows for real-time debugging and monitoring of device operations.
Comparison of JTAG vs. Other Programming Methods
While JTAG is the primary programming method for Altera devices, it’s worth comparing it to alternative approaches:
- JTAG vs. In-Socket Programming:
- JTAG: In-system programming, no special socket required
- In-Socket: Requires removing the chip and using a dedicated programmer
- JTAG vs. Serial Programming:
- JTAG: Faster programming speeds, more debugging features
- Serial: Simpler interface, but limited functionality
- JTAG vs. Passive Serial:
- JTAG: More versatile, supports both programming and debugging
- Passive Serial: Simpler, but limited to programming only
3. Required Tools & Software

To successfully program Altera devices, you’ll need specific software tools. Let’s explore the essential software required for Altera programming.
Overview of Quartus Prime and MAX+II Programmer
- Quartus Prime:
- Comprehensive development environment for Altera FPGAs and CPLDs
- Supports device programming, synthesis, place-and-route, and timing analysis
- Available in different editions: Lite (free), Standard, and Pro
- MAX+II Programmer:
- Legacy tool specifically designed for older MAX series CPLDs
- Simpler interface focused solely on device programming
- Still relevant for programming certain MAX II devices
Where to Download Quartus and MAX+II Software
You can download the necessary software from the official Intel FPGA website:
- Quartus Prime: https://www.intel.com/content/www/us/en/software/programmable/quartus-prime/overview.html
- MAX+II Programmer: https://www.intel.com/content/www/us/en/programmable/downloads/software/max2/max2-index.html
System Requirements and Installation Tips
Before installing Quartus Prime or MAX+II Programmer, ensure your system meets the following requirements:
- Operating System:
- Windows 10/8.1/7 (64-bit versions)
- Red Hat Enterprise Linux 6 or 7
- SUSE Enterprise Linux 11 or 12
- Processor: Multi-core 64-bit processor (Intel Core i5 or equivalent recommended)
- RAM: 8 GB minimum, 16 GB or more recommended
- Disk Space: 50 GB minimum for a full installation
Installation Tips:
- Download the latest version of Quartus Prime or MAX+II Programmer
- Run the installer with administrative privileges
- Choose a custom installation path if desired (avoid spaces in the path)
- Install device support for your specific Altera devices (MAX II, Cyclone IV)
- Restart your computer after installation to ensure all components are properly configured
4. Hardware Setup
Proper hardware setup is crucial for successful Altera device programming. Let’s explore the supported programmers and how to connect them to your target devices.
Supported Altera Programmers
Altera offers several programming hardware options, with the most common being:
- USB-Blaster:
- Original USB-based programmer for Altera devices
- Widely supported across different software versions
- USB-Blaster II:
- Newer version with improved performance
- Supports faster programming speeds and additional features
Both programmers are compatible with a wide range of Altera devices, including MAX II, Cyclone IV, and the EPM240T100C5N.
Connecting Your Programmer to MAX II / Cyclone IV Devices
To connect your Altera Programmer to your target device:
- Identify the JTAG header on your development board or custom PCB
- Connect the 10-pin header of the USB-Blaster or USB-Blaster II to the JTAG pins
- Ensure proper orientation (Pin 1 is typically marked on both the cable and board)
- Connect the USB end of the programmer to your computer
- Power on your target board
Pinout Diagrams and Board Preparation
For successful programming, you need to understand the JTAG pinout:
- TCK: Test Clock
- TDO: Test Data Out
- TDI: Test Data In
- TMS: Test Mode Select
- nTRST: Test Reset (optional)
Typical 10-pin JTAG header pinout:
9 7 5 3 1
10 8 6 4 2
1: TCK 2: GND 3: TDO 4: VCC (3.3V) 5: TMS 6: N/C 7: N/C 8: N/C 9: TDI 10: GND
Ensure your board is properly prepared:
- Verify power supply connections
- Check for any required jumper settings
- Confirm that the JTAG pins are not shared with other functions
Read more about:
5. Programming CPLDs and FPGAs
Now that we’ve covered the basics, let’s dive into the step-by-step process of programming Altera devices using JTAG.
Step-by-Step Guide: Programming EPM240T100C5N (MAX II)
- Launch Quartus Prime or MAX+II Programmer
- Click “Hardware Setup” and select your USB-Blaster
- Choose “JTAG” as the programming mode
- Click “Add File” and select your .pof file for the EPM240T100C5N
- Ensure the “Program/Configure” option is checked
- Click “Start” to begin programming
- Wait for the operation to complete (indicated by a blue progress bar)
- Verify successful programming in the programmer window
Programming Cyclone IV Using Quartus Prime
- Open Quartus Prime and your Cyclone IV project
- Compile your design to generate a .sof file
- Open the Programmer tool (Tools > Programmer)
- Select your USB-Blaster in the Hardware Setup
- Click “Auto Detect” to identify the JTAG chain
- Right-click the detected Cyclone IV device and choose “Change File”
- Select your compiled .sof file
- Check the “Program/Configure” box
- Click “Start” to program the device
- Monitor the progress and confirm successful programming
Using .pof and .sof Files with Altera Programmer Tools
Understanding file types is crucial for effective Altera programming:
- .sof (SRAM Object File):
- Used for volatile programming of FPGAs
- Configuration is lost when power is removed
- Typically used during development and debugging
- .pof (Programmer Object File):
- Used for non-volatile programming of CPLDs and some FPGAs
- Configuration is retained after power cycling
- Used for production programming or when persistent configuration is needed
To convert between file types:
- Open Quartus Prime
- Go to File > Convert Programming Files
- Select the output file type (.pof or .sof)
- Add your input file and configure any necessary options
- Click “Generate” to create the new file
6. Troubleshooting Common Issues
Even with careful setup, you may encounter issues when programming Altera devices. Here are some common problems and their solutions.
Programmer Not Detected
If your Altera Programmer isn’t recognized:
- Check USB connections and try a different port
- Reinstall USB-Blaster drivers (found in Quartus installation directory)
- Verify the programmer is listed in Device Manager
- Try a different USB cable
JTAG Chain Errors
When encountering JTAG chain issues:
- Ensure all devices in the chain are powered on
- Check JTAG connections for loose or incorrect wiring
- Verify the JTAG chain in Quartus (Auto Detect feature)
- Try reducing the JTAG clock frequency in the programmer settings
Power Supply and Cable Issues
Power-related problems can cause programming failures:
- Verify your board is receiving the correct voltage
- Check for any required external power supplies
- Ensure the JTAG header is properly connected
- Look for any signs of physical damage to cables or connectors
Fixing Quartus-Related Software Problems
Software issues can also hinder programming:
- Update Quartus Prime to the latest version
- Reinstall device support packages
- Clear the Quartus Prime cache (Tools > Options > General > Clear Compilation Database)
- Verify project settings match your target device
7. Best Practices for Reliable Programming
To ensure consistent and reliable programming of Altera devices, follow these best practices:
Tips for Consistent JTAG Programming
- Use high-quality, short JTAG cables to minimize signal integrity issues
- Implement proper power sequencing for your target board
- Avoid hot-plugging JTAG connections; always power down before connecting/disconnecting
- Use the appropriate programming file type (.sof for volatile, .pof for non-volatile)
- Verify device ID and JTAG chain integrity before each programming session
Firmware and Driver Updates
Keeping your software and firmware up-to-date is crucial:
- Regularly check for Quartus Prime updates
- Update USB-Blaster firmware through Quartus (Tools > Programmer > Hardware Setup)
- Ensure your computer’s USB drivers are current
- Subscribe to Intel FPGA notifications for critical updates
Verifying Programmed Logic
After programming, always verify your design:
- Use the “Verify” option in the programmer tool
- Implement a simple test design (e.g., LED blinker) to confirm basic functionality
- Utilize Quartus SignalTap II Logic Analyzer for in-depth verification
- Perform thorough functional testing of your programmed design
8. Support & Downloads
For additional resources and support, refer to these official Intel/Altera links:
Official Intel/Altera Support Links
- Intel FPGA Support Center: https://www.intel.com/content/www/us/en/programmable/support/support-resources.html
- Altera Programming Hardware Support: https://www.intel.com/content/www/us/en/programmable/support/support-resources/programming-hardware.html
Download Links for Legacy Tools
- MAX+PLUS II Software: https://www.intel.com/content/www/us/en/programmable/downloads/software/max2/max2-index.html
- Quartus II Web Edition (13.0sp1): https://www.intel.com/content/www/us/en/programmable/downloads/software/quartus-ii-we/130sp1.html
Documentation and User Manual Links
- MAX II Device Handbook: https://www.intel.com/content/www/us/en/programmable/products/cpld/max-series/max-ii/support.html
- Cyclone IV Device Handbook: https://www.intel.com/content/www/us/en/programmable/products/fpga/cyclone-series/cyclone-iv/support.html
- Quartus Prime Pro Edition User Guide: Programming and Configuration: https://www.intel.com/content/www/us/en/programmable/documentation/ftt1513991830769.html
9. Frequently Asked Questions (FAQs)
How do I install an Altera Programmer driver?
To install the Altera Programmer driver:
- Connect the USB-Blaster to your computer
- Open Device Manager
- Locate the “Altera USB-Blaster” under “Other devices”
- Right-click and select “Update Driver Software”
- Choose “Browse my computer for driver software”
- Navigate to your Quartus installation directory (e.g., C:\altera\quartus\drivers)
- Select the appropriate driver folder and click “Next”
- Follow the prompts to complete the installation
Which programmer should I use for MAX II devices?
For MAX II devices like the EPM240T100C5N, both the USB-Blaster and USB-Blaster II are suitable. The original USB-Blaster is widely supported across different software versions, while the USB-Blaster II offers improved performance. Choose based on your specific needs and software compatibility.
Can I use Quartus Lite for programming CPLDs?
Yes, Quartus Prime Lite Edition can be used for programming most Altera CPLDs, including MAX II devices like the EPM240T100C5N. However, keep in mind that Quartus Prime Lite may have some limitations compared to the Standard or Pro editions:
- Limited device support (but covers most common CPLDs and low-end FPGAs)
- Fewer advanced optimization features
- Restricted use of some high-end IP cores
For most CPLD programming tasks, Quartus Prime Lite should be sufficient.
10. Conclusion
Mastering the use of an Altera Programmer for JTAG programming of CPLDs and FPGAs is an essential skill for digital design engineers. Throughout this guide, we’ve explored the intricacies of programming devices such as the MAX II, Cyclone IV, and specifically the EPM240T100C5N.
Summary of Programming Workflow
The general workflow for programming Altera devices can be summarized as follows:
- Install the necessary software (Quartus Prime or MAX+II Programmer)
- Set up your hardware, connecting the Altera Programmer to your target device
- Create or open your design project in Quartus Prime
- Compile your design to generate programming files (.sof or .pof)
- Use the Programmer tool to download the configuration to your device
- Verify successful programming and test your design’s functionality
Recommended Programmer Tools
For most Altera device programming tasks, we recommend:
- Hardware: USB-Blaster or USB-Blaster II
- Software: Quartus Prime (latest version compatible with your device)
These tools provide a robust and flexible platform for programming a wide range of Altera CPLDs and FPGAs.
Encouragement to Explore More Altera Resources
As you continue your journey with Altera programmable logic devices, we encourage you to:
- Explore the extensive documentation available on the Intel FPGA website
- Participate in online forums and communities dedicated to FPGA development
- Experiment with different devices and more complex designs
- Stay updated with the latest tools and technologies in the field of programmable logic
By mastering the Altera Programmer and associated tools, you’ve taken a significant step in the world of digital design. The skills you’ve acquired will serve as a strong foundation for tackling more advanced projects and pushing the boundaries of what’s possible with programmable logic.
Remember, the field of FPGAs and CPLDs is constantly evolving, so continue learning and exploring new techniques to stay at the forefront of this exciting technology. Happy programming!