Recent Content
Altera TSE driver and example program for lwIP (1.3.2)
After many many requests and complaints about lack of support and/or documentation for support of lwIP for the Altera TSE, I have developed a drop-in TSE driver and example program and made this available to the NIOS II community. This was done for NIOS II 8.1 SP0.01. I don't expect difficulty with version 9.x. This is for the latest version of lwIP (the latest is as of this post) for a minimal program and HTTP server based on the http server in the lwIP contrib folder. The lwIP TSE driver uses the altera_avalon_tse driver and SGDMA as-is. There is a complete (as in 41-step) set of instructions on creating the project and example program. More information and the link to the driver is available here: http://lwip.wikia.com/wiki/available_device_drivers#lwip_1.3.2 Please direct any questions, changes for NIOS II 9.1, or comments to this thread. 12-16-2010 update: This example works with NIOS Version 10.0 with some tweaks to the procedure to create the project. Also, a lwIP 1.4 release candidate has been out for a while and it drops into this example (in place of 1.3) without changes. Bill41KViews0likes257CommentsTutorial: Using the USB-Blaster as an SOPC/Qsys Avalon-MM master
Hi all, I've put together a tutorial on how to use the Altera JTAG-to-Avalon-MM master and Altera Verification IP Avalon-MM BFM Master under both SOPC builder and Qsys. http://www.ovro.caltech.edu/~dwh/correlator/pdf/altera_jtag_to_avalon_mm_tutorial.pdf (http://www.ovro.caltech.edu/%7edwh/correlator/pdf/altera_jtag_to_avalon_mm_tutorial.pdf) http://www.ovro.caltech.edu/~dwh/correlator/pdf/altera_jtag_to_avalon_mm_tutorial.zip (http://www.ovro.caltech.edu/%7edwh/correlator/pdf/altera_jtag_to_avalon_mm_tutorial.zip) The tutorial walks the user through the creation of an SOPC or Qsys system design, and provides scripts that automate the re-generation of the system. The tutorial shows how to simulate using Modelsim-ASE, and shows how to communicate with the hardware using System Console, quartus_stp, and then how to run a TCP/IP server under System Console or quartus_stp, and then communicate with that server from client code written in Tcl/Tk (a simple GUI) and a command-line C interface. Let me know if you like it, or have feedback/suggestions on how to improve the document. Cheers, Dave27KViews0likes119CommentsIs anybody else completely dissatisfied with this new forum?
This used to be a robust forum, lots of new questions everyday and, most impotantly, lots of responses. This new forum is clunky and time consuming to navigate. Nobody seems interested anymore. I used to check-in everyday to see what's new. Not any more.40KViews15likes119Comments- 18KViews0likes107Comments
Simple Socket Server on DE2 w/Davicom DM9000A
updated. Altera's Simple Socket Server demo running on a DE2 board with the Davicom DM9000a driver. here it is....zipped downloaded project source for sss on the de2 board. download link currently unavailable. Includes: - Hardware design (TLD in schematic block diagram format) - Programmable .SOF (time-limited, as developed in Quartus Web Edition v9.2) - SOPC builder system file - DM9000A driver for Nichestack TCP/IP stack / Altera HAL environment (courtesy of Columbia Uni) - Simple socket server software Simply... - (1) Download the .SOF in Quartus Programmer - (2) Open the software workspace in the "/software" directory in Nios II Build Tools (Eclipse IDE) - (3) Open Run >> Run Configurations. Delete the current configuration. Create a new launch configuration selecting the project name under the Project Tab. Ensure your DE2 board is plugged into USB. Check the target connection tab and make sure it is present. - (4) Plug into your local network (DHCP is enabled, or app will default to static IP) - (5) View the Nios II console for debugging information (via JTAG UART) - (6) Telnet into the board from a pc: telnet <ip address> 30. Enjoy the simple socket server demo from Altera! Questions/comments? Fire away below!11KViews0likes98CommentsLinux with MMU on NEEK
Hi, all. I'm testing Linux MMU version, on my NEEK. http://www.nioswiki.com/linux It works fine and I can use "bash" shell. This is the evident proof that we are using the true 'fork' instead of 'vfork'. May be this will depends on the version, but TSE driver claims an error and doesn't work on this design. The error is ERROR: altera_tse.c:1666: request_mem_region() failed I think that this error is caused by misunderstanding of the usage for the function request_mem_region(). Inside of the request_mem_region(), the function __request_region() is called. If the resource has been already registered, this function returns a non-NULL value, that is the pointer for its resource. But the resource 'sgdma_rx_base' is already registered in the initialization process, so this function returns the 'conflict' and if (!request_mem_region(sgdma_rx_base, sgdma_rx_size, "altera_tse")) { is always true. So I made a dirty patch, if (!request_mem_region(sgdma_rx_base, sgdma_rx_size, "altera_tse")) { reg_resource = __request_region(&iomem_resource, sgdma_rx_base, sgdma_rx_size, "altera_tse", 0); if (reg_resource != NULL && reg_resource->flags & IORESOURCE_BUSY) { printk(KERN_ERR "ERROR: %s:%d: request_mem_region() failed\n", __FILE__, __LINE__); ret = -EBUSY; goto out_sgdma_rx; } } Moreover, the author is forgetting that the DMA is working in the physical address world, so we need to set the pointers of descripters like // desc->source = read_addr; desc->source = virt_to_phys(read_addr); // desc->destination = write_addr; desc->destination = virt_to_phys(write_addr); // desc->next = (unsigned int *)next; desc->next = (unsigned int *)((unsigned long)next & 0x1fffffffUL); and so on. Also the frame buffer fb0 will not work well, because the driver 'altfb.c' is not implemented for Linux with MMU version. So I put some codes for altfb_mmap(), like /* We implement our own mmap to set MAY_SHARE and add the correct size */ static int altfb_mmap(struct fb_info *info, struct vm_area_struct *vma) { unsigned long phys_addr, phys_size; unsigned long addr; unsigned long size = vma->vm_end - vma->vm_start; unsigned long offset = vma->vm_pgoff << PAGE_SHIFT; // vma->vm_flags |= VM_MAYSHARE | VM_SHARED; // vma->vm_start = info->screen_base; // vma->vm_end = vma->vm_start + info->fix.smem_len; /* check range */ if (vma->vm_pgoff > (~0UL >> PAGE_SHIFT)) return -EINVAL; if (offset + size > altfb_fix.smem_len) return -EINVAL; vma->vm_flags |= VM_IO | VM_RESERVED; addr = vma->vm_start; phys_addr = altfb_fix.smem_start + offset; if ((offset + size) < altfb_fix.smem_len) phys_size = size; else phys_size = altfb_fix.smem_len - offset; vma->vm_page_prot = __pgprot(_PAGE_PRESENT|_PAGE_READ|_PAGE_WRITE); if (remap_pfn_range(vma, addr, phys_addr >> PAGE_SHIFT, phys_size, vma->vm_page_prot)) return -EAGAIN; return 0; } and rewrite the DMA descripters like desc->next = (void *)virt_to_phys((desc + 1)); So now, I can evoke telnetd and control NEEK through ethernet, and use Nano-X on Linux MMU version, but can't enter ftp session, because 'getservbyname()' function will not work well. I don't know the directory that the souce of 'getservbyname()' is included. Would anyone please tell me where is it? Thank you, in advance.5.3KViews0likes95CommentsDE2_UDP example for download here free (feedbacks are wellcomed)
Hi all. My goal is to get about 3Mbytes/sec data transfer rate from my DE2 board to PC. Here in this example I get about 1.2 Mbytes/sec. I'll accept comments about, how to speed up this, as well as suggests to improve the code, and some feedback from people that have interest in this theme. Could be in this thread or private. You can download the full project from: http://www.btxsistemas.com.ar/net2.zip I've used Quartus II 7.2 full suite. And the Wireshark software (http://www.wireshark.org/) like a net sniffer, but also, I've included in the main project folder, a UDP reciever to test the comunication between the DE2 board and the PC, if you wont to download the wireshark. Don't forget to specify your IP address and your MAC address in the NIOS hello_word "C" code to get it work properly. The main project is a modification of the DE2_NET demostration code that comes with the DE2 board. Have fun, and I'll be waiting for some comments.9.9KViews0likes94Commentscontinuous averaging using VHDL
I have a question related to VHDL programming. I want to calculate the continuous average. My example code is: process (clk, reset) begin if (reset = '1') then state<=idle; out-val=0; elsif(rising_edge(clk)) then case state is when idle => if req='1' then state= out-1; end if; when out-1 => if done='1' then out-val<=data-in (11 downto 0) state <= done-st; endif; when done-st => ack <='1'; state <= idle; when others => state <= idle; end case; end if; end process; On every positive edge of clock, the value of "out-val" changes. I want to continuously take the average of "out-val". I want to take average of 32 values continuously. Is there a way where I can take average of 32 values continuously till the clock is running. Kindly let me know how can I do that. You can modify the above code as well. Many Thanks,17KViews0likes90Comments
Featured Places
Community Resources
Check out the support articles on personalizing your community account, contributing to the community, and providing community feedback directly to the admin team!Tags
- troubleshooting10,203 Topics
- fpga dev tools quartus® prime software pro4,078 Topics
- FPGA Dev Tools Quartus II Software3,159 Topics
- Stratix® 10 FPGAs and SoCs1,497 Topics
- agilex™ 7 fpgas and socs1,333 Topics
- Arria® 10 FPGAs and SoCs1,320 Topics
- Stratix® V FPGAs1,300 Topics
- Arria® V FPGAs and SoCs1,212 Topics
- Cyclone® V FPGAs and SoCs1,040 Topics
- Configuration894 Topics
Recent Blogs
5 MIN READ
The computing world is hitting a wall. As AI models grow to trillions of parameters, as in-line databases scale to massive sizes, and as high-performance computing (HPC) workloads push bandwidth and memory to their limits, the need for more efficient data movement has never been greater. Traditional approaches to scaling bandwidth and capacity can’t keep pace without unsustainable cost expenditures on power usage and infrastructure build-out. Compression offers a practical and elegant solution to this challenge. By reducing the size of data that moves across interconnects, we can stretch bandwidth, improve memory efficiency, and lower system power—all without requiring a fundamental re-architecture. The Open Compute Project (OCP) has recently recognized this reality, highlighting compression as a key enabler for modern workloads. The combination of ZeroPoint Technologies (an Altera Partner), advanced compression IP, and Altera’s CXL Type 3 IP and FPGAs results in a 2–3x increase in bandwidth, giving the industry a proven path to meet the growing demand head-on. The Problem: Data Bottlenecks in Today’s Workloads AI and LLMs Large language models are exploding in size—parameters have grown from millions to billions, and now to trillions, in just a few short years. Training and inference of these models are fundamentally constrained by memory bandwidth and capacity. Without compression, these models would require even larger amounts of data movement, which increases latency, power consumption, and cost. In-line Databases Databases are increasingly run in-line with applications, from analytics pipelines to transaction processing. These in-line databases demand high throughput and low-latency access to massive datasets. Without compression, systems are forced to overprovision bandwidth and memory resources, dramatically increasing the total cost of ownership (TCO). High-Performance Computing (HPC) From climate modeling to genomics, HPC workloads require immense amounts of parallel data movement. Without compression, HPC centers must continue scaling raw interconnect bandwidth, which is unsustainable in terms of energy and cost at exascale levels. CXL Expansion (CXL Device Type 3) CXL (Compute Express Link) has emerged as the industry-standard protocol for memory pooling and expansion. Yet, as more systems adopt CXL for disaggregated memory, the sheer volume of data moving across CXL links risks overwhelming interconnect bandwidth. Without compression, the benefits of CXL expansion hit a hard ceiling. Demo Video: ZeroPoint demonstrates 2–3x increased bandwidth using its CXL compressed memory tier solution at the Future of Memory and Storage (FMS) 2025 CXL Acceleration (CXL Device Type 2) Beyond memory expansion, CXL enables accelerators to share memory seamlessly with CPUs. But in accelerator-heavy environments, data transfer volumes explode. Lack of compression makes accelerator scaling inefficient, power-hungry, and cost-prohibitive. Contact Altera to see the demo video: 2x–6x higher QPS running a VectorDB workload using a CXL 2.0 interface. Without compression, every one of these workloads faces a bottleneck that would be extremely difficult to solve with hardware scaling alone. OCP Introduces Compression into its Specification The Open Compute Project (OCP) organization recently underscored the importance of compression by including it in its specifications. This is a landmark shift: compression is no longer viewed as optional but included as a supported feature for next-generation compute infrastructure. James Kelly, VP Market Intelligence and Innovation at the OCP Foundation, said: “Within the OCP Community, our Composable Memory Systems Project, leveraging CXL and compression technologies, is driving the development of interoperable, scalable memory architectures that empower AI workloads with unprecedented efficiency and flexibility. By enabling disaggregated memory resources to be pooled and allocated across heterogeneous systems, we’re directly supporting OCP’s Open System for AI strategic initiative, fostering open specifications and standards that accelerate innovation and accessibility in AI infrastructure.” Klas Moreau, CEO of ZeroPoint Technologies, added: “What excites us about working with Altera’s CXL Type 3 IP is not just its performance, but its flexibility. Unlike other FPGA providers, Altera’s CXL solution gives us the low-latency, high-bandwidth fabric we need to showcase the full potential of our compression IP. Together, we’re able to deliver measurable gains—up to a 2–3x effective bandwidth increase—without changing the underlying hardware footprint. That’s a game-changer for customers scaling AI, HPC, and database workloads.” The Solution: ZeroPoint Compression IP + Altera CXL Type 3 IP and FPGA-based Boards ZeroPoint Compression Technology ZeroPoint brings a powerful, low-latency, hardware-efficient compression engine designed specifically for memory and interconnect applications. Unlike general-purpose compression algorithms, ZeroPoint’s IP is optimized for inline operation at wire speed, ensuring data is compressed and decompressed seamlessly without introducing overhead. Key benefits include: High compression ratios across AI, HPC, and database workloads Ultra-low latency to avoid bottlenecks on memory paths Energy savings by reducing data movement requirements Proven scalability across CXL and memory expansion use cases Altera CXL Type 3 IP Altera’s CXL Type 3 IP provides the foundation for memory expansion and pooling. It enables compute nodes to access disaggregated memory resources efficiently and securely. By integrating ZeroPoint’s compression IP, Altera’s solution extends even further—allowing CXL links to move more effective bandwidth, reduce congestion, and scale system capacity without increasing physical resources. There is a wide variety of CXL-capable FPGA-based boards available from Altera or partners. Together: Meeting the Market Need When combined, ZeroPoint’s compression IP and Altera’s CXL Type 3 IP address the OCP-driven specification requirements and solve the core problem facing data-intensive applications, ranging from AI to databases: moving massive amounts of data efficiently. Benefits to customers include: More bandwidth without more lanes: Compression effectively multiplies CXL throughput. Boost performance, cut costs: Unleash untapped performance in your current infrastructure with minimal new investment. Future-proof compliance: Alignment with OCP specifications ensures long-term viability. This combination delivers not just a technology improvement, but a market-ready solution that meets both current and emerging requirements. Conclusion The computing industry is shifting to adjust to new demands. AI, HPC, databases, and disaggregated systems are demanding exponential growth in bandwidth and memory efficiency—growth that hardware scaling alone cannot deliver. One answer is compression. OCP’s inclusion of compression in its specifications validates this direction and creates a mandate for solutions that integrate compression seamlessly with interconnect technologies like CXL. Through the combination of ZeroPoint’s cutting-edge compression IP and Altera’s CXL Type 3 IP, customers can now confidently deploy systems that are not only faster and more efficient but also aligned with the industry’s forward-looking standards. The future of computing depends on smarter ways to move and manage data. Compression + CXL is that smarter way—and with ZeroPoint and Altera, the future is already here. Learn More Presentations or videos are available for on-demand viewing or download: FMS 2025 session (video | slides) OCP 2025 session (video | slides) Next Steps Learn more about Altera’s CXL IP core. For technical details, partnership discussions, or general inquiries, please contact: nilesh.shah@zptcorp.com — CXL compression solutions phillip.swart@altera.com — FPGA-based CXL IP and boards
18 days ago0likes
The expanded Agilex™ 5 D-Series FPGA and SoC family delivers a big leap in capabilities for mid-range FPGA applications, offering up to 2.5× more logic, memory, DSP/AI compute, and up to 2× external memory bandwidth. These enhancements make it ideal for designs that demand high compute performance in power and space-constrained environments.
2 months ago0likes
4 MIN READ
Availability of Quartus Prime Pro Edition 25.3 & the simultaneous release of FPGA AI Suite 25.3 marks a major leap forward in FPGA design productivity. This release delivers smarter tools, deeper insights, and faster compiles, achieving a 6% compile time improvement over 25.1, a 27% reduction since Agilex 7 transitioned to production, as well as improved AI tool ease of use.
2 months ago0likes
Altera is addressing these market demands with its Agilex™ 9 Direct-RF series of FPGAs and SoCs, which now include recent production shipments of the medium-band SoC FPGA variants.
3 months ago0likes
Explore TÜV-certified dual-axis motor control using Agilex™ 5 SoC FPGAs with model-based design and functional safety for industrial, robotics, and auto systems.
3 months ago0likes