Recent Content
TU Darmstadt: Base CXL License
Hi, TU Darmstadt noticed that while they do now have the CXL Type 2 license, the actual base CXL license "Base CXL Hard IP with spec-defined subprotocol interfaces (6AF7 0186)" is still missing, they thus cannot build the base sample design provided with the IP: Warning(115005): Unlicensed IP: "Base CXL Hard IP with spec-defined subprotocol interfaces (6AF7 0186)" Warning(115004): Unlicensed encrypted design file: "/test/intel_rtile_cxl_top_0_ed/hardware_test_design/qdb/_compiler/cxlbasehip_top/auto_fab_0/25.1.0/final/1/netlist.model" ... Do you have an idea how to resolve this issue? Thanks! KorbinianDE2-115 Nios VGA demo
Hi , I am trying to run an VGA demo on DE2-115 board , i followed this document attached which is final univ project(see attached). But after successfully generating and compiling Quartus ver 18.1 project and then its related software in Nios-ll Eclipse IDE i get this error "Downloading ELF Process Failed. See Quartus Project attached. Thanks, Regards55Views0likes3CommentsAgilex-5 supported Transceivers
I am currently evaluating the capabilities of the Altera Dev Board DK-A5E065AB32AEA. As most SFP+ and QSFP+ Transceivers are often vendor-locked, is there a list of qualified Transceivers available? Intel E10GSFPSR and another Xcvr marketed as support for Nvidia did not work in my case, as I attempted to do the initial Testing using BTS App as per document D554638 Which transceivers were used by Intel(Altera) for qualifiying/testing the development board DK-A5E065AB32AEA ?Solved865Views0likes10CommentsA5E : high transceiver power consumption?
According to the Power and Thermal analyser for A5E (B) the transceivers running at 10 Gbps (say for 10G ethernet) consume 500mW each. This is more than double the Xilinx, even 7nm... Is the tool wrong ? Have I got the tool set wrong ? is it really this high ? How can I reduce the power consumption of these transceivers down to say 200-250mW ? 4 lanes of PCIe Gen3 and that's 2W of dissipation just to route signals 4" across a PCB.... ???. regards6Views0likes1CommentMissing AC charcteristsics in A5E data sheet !
With reference to this link : https://docs.altera.com/r/docs/813918/current/agilex-5-fpgas-and-socs-device-data-sheet/switching-characteristics where are these numbers ????? I need the switching performance of the 1.8V Agilex5 I/O. The section says "his section provides the performance characteristics of core and periphery blocks." and it is blank. -glen2Views0likes1CommentBug Report: project_open Tcl Command Resets Current Revision to Base Revision in Quartus
Environment Details Quartus Version: Quartus Prime Lite Edition, Version 24.1std.0, Build 1077 (03/04/2025 SC) Host OS: Linux Ubuntu 22.04.5 LTS Component: Quartus Tcl Shell (quartus_sh) / Project Management API Summary of the Issue There is a critical discrepancy in how Quartus Prime manages project revisions between the GUI and the Command Line Interface (CLI/Tcl). When a user changes the current revision of a project via the GUI, the setting is preserved correctly upon GUI restarts. However, if the project is opened via the Tcl shell (quartus_sh) using the project_open command without any flags, Quartus silently resets the current revision back to the base revision. Even worse, this reset is permanently written back to the project. When the user subsequently reopens the project in the GUI, they will find their revision has reverted to the base revision. This behavior poses a high risk of data loss or unintentional regression, as users may unknowingly compile, modify, or overwrite older base configurations. Steps to Reproduce 1. Open Quartus GUI and create a project with a base revision (e.g., my_project). 2. Go to Project -> Revisions and create a new revision (e.g., rev_v2). Set rev_v2 as the current revision. 3. Close the project and close the GUI. (Verify that opening the GUI again keeps rev_v2 active—this works correctly). 4. Open your terminal/command prompt and start the interactive Quartus Tcl shell:quartus_sh -s 5. Run the following Tcl command to open the project:project_open /path/to/my_project.qpf 6. Observed CLI Behavior: get_current_revision returns my_project (the base revision) instead of rev_v2. 7. Reopen the Quartus GUI and load the project. Observed GUI Behavior: The active revision is now reverted to the base revision (my_project). Known Workaround & The Core Discrepancy I am aware that you can bypass this issue by explicitly passing the current revision flag when opening the project: project_open -current_revision /path/to/my_project.qpf Using -current_revision successfully forces the Tcl shell to look up and load the active revision. However, this does not excuse the default behavior. Inconsistent defaults: Running a bare project_open <project> command should default to loading the currently set active revision (matching the GUI's load behavior), rather than defaulting to the base revision and silently overriding the .qpf metadata. Unintentional Mutability: Simply opening a project file in read/query mode in the shell should never silently alter and write back a state change (resetting the revision) to the project configuration files without explicit instruction. Bizarrely, if you run the tcl command "project_open /path/to/project.qpf" in the GUI it correctly opens into the current set revision. This means there are two different behaviors for the same command between the GUI and shell. Expected Behavior The project_open Tcl command should default to loading the active revision specified in the metadata (matching the GUI behavior) when no revision-specific flags are passed. It should not reset the active revision to the base revision. In general, there shouldn't be a difference in behavior between the shell and GUI with the same TCL command (project_open). Impact This is a silent failure that mutates project state. Engineers utilizing hybrid workflows (designing in the GUI but running automated compilation/verification scripts in the shell) will find their project revisions constantly and unexpectedly reverting to older base versions, potentially corrupting active design branches. Please let me know if this is a known issue.59Views0likes3CommentsHow to organize a shared cache for qsys systems?
I have written a system to generate command lines and scripts/templates for various EDA tools. This will let me share the same same design across different implementations. The designs typically reside in a git (or some other VC) repository. For Altera IP's only the *.ip is kept in the git repository. The cache tag is generated from a hash of the content of the *.ip and the Quartus version used as this uniquely defines a single *.ip file. The build script will copy the '*.ip' file and run qsys-generate in the $cache/$tag location which will be added to the IP_FILE in the tcl build script. The next time the same Quartus version and same *.ip file is used it's referenced by the IP_FILE variable. This works pretty well. Putting the *.qsys itself into a similar structure works too. But distributing the *.ip and *.qsys children of the parent.qsys in the same cache seem to be problematic as the parent.qsys logicalView XML tag seem to contain a partial relative sub-path. Is there a way to make sure that only references to the child.ip or child.qsys will be present in the parent.qsys so that it can be located by the full absolute path specified in the IP_FILE? Also how are *_hw.tcl files located and what type of references and relations between these and their respective *.ip and/or *.qsys files are stored in these files? Or is the only solution to copy the full tree structure of the qsys into the cache and hash its full content? BTW I'm using Linux only.126Views0likes3CommentsDK-DEV-AGI027RBES CXL Type-3 example remains in reset and is not detected by host
Hi, I have several Agilex 7 FPGA I-Series Development Kits with serial numbers 8100035 and 8020138. My goal is to run the boards as CXL Type-3 devices and verify that they can be enumerated by the host. I am currently debugging board 8020138 with the following setup: Board: DK-DEV-AGI027RBES FPGA: AGIB027R29A1E2VR3 Power configuration: Power Solution 2 Quartus Prime Pro: 24.3 Connection: PCIe edge connector Design: CXL Type 3 with DDR4 Link width: CXL x16 Number of slices: 2 PLD clock: 400 MHz Reference clock mode: Common Refclk source is global clock: Enabled The board can successfully enumerate as a normal PCIe endpoint when using the pcie_ed example design included in: agilex_agib027r29a1e1vb_fpga_revc_v24.3b194_v1.1 However, when I generate and compile the RBES CXL Type-3 DDR4 example design, the host cannot detect the device and it does not appear in lspci. I added JTAG debug registers and Signal Tap probes. The observed status is: config_done = 1 pll_lock = 1 sip_rst_n = 0 cxl_warm_rst_n = 0 cxl_cold_rst_n = 0 ip2hdm_reset_n = 0 ip2cafu_avmm_rstn = 0 ip2csr_avmm_rstn = 0 pf0_bus_master_en = 0 pf0_memory_access_en = 0 pf0_msix_enable = 0 The fabric heartbeat counter(refclk4) is running, so FPGA configuration and the debug fabric clock are working. However, the CXL cold, warm, and SIP resets never deassert, and host enumeration never starts. Could you please confirm: Are these CXL IP settings correct for board 8020138, Power Solution 2, and the PCIe edge connector? For CXL x16 with two slices, must both refclk0 and refclk1 be active? What conditions control cxl_cold_rst_n, cxl_warm_rst_n, and sip_warm_rstn_o? How can I observe the physical PERST# status, R-Tile reset status, PHY initialization status, LTSSM state, and link-up status? Should Enable PIPE Mode Simulation be disabled for hardware operation? Is 400 MHz the correct PLD clock frequency? Is there a known-good CXL Type-3 DDR4 example project or SOF for DK-DEV-AGI027RBES with FPGA AGIB027R29A1E2VR3? Are there any required Quartus 24.3 patches for this board and CXL IP? The normal PCIe example works, but the CXL example remains in reset. This suggests the issue may be related to the CXL IP configuration, reference-clock/reset requirements, or the generated example-design constraints. I can provide the IP configuration, QSF/SDC files, Signal Tap captures, compilation logs, and host logs if needed. Thank you. Best regards, Jeffrey62Views0likes6Comments
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,407 Topics
- fpga dev tools quartus® prime software pro4,357 Topics
- FPGA Dev Tools Quartus II Software3,131 Topics
- stratix® 10 fpgas and socs1,553 Topics
- agilex® 7 fpgas and socs1,547 Topics
- arria® 10 fpgas and socs1,382 Topics
- stratix® v fpgas1,315 Topics
- arria® v fpgas and socs1,229 Topics
- Configuration1,096 Topics
- cyclone® v fpgas and socs1,058 Topics
Recent Blogs
PACKET CLASSIFICATION | FPGA | NETWORKING + SECURITY Every packet decision starts with classification. Routers, firewalls, SmartNICs, security gateways, and service-edge platforms must determine which policy applies before traffic can be forwarded, blocked, inspected, redirected, or prioritized. TCAM earned its place in these systems because it provides predictable lookup behavior and native ternary matching for ACL and LPM workloads. But as policy databases grow, search keys widen, and rules change more frequently, the traditional approach of scaling specialized ternary memory creates tougher tradeoffs in capacity, power, resource utilization, and system integration. Altera Stellar solutions takes a different approach. Instead of scaling packet classification by building ever-larger ternary-memory structures, Stellar turns classification into an optimized search problem that runs on configurable FPGA resources. The result is an FPGA-native path for large, dynamic packet-classification tables without giving up the policy semantics that made TCAM useful in the first place. TCAM scales through memory expansion. Stellar scales through search intelligence. Keep the TCAM semantics. Change the scaling model. Stellar preserves the intent of ACL, LPM, and multi-field classification, but changes how those rules are represented and searched. The Stellar Software Stack organizes policies into optimized graph structures, partitions the rule database, and continuously manages those search structures as the database evolves. The hardware then executes the search using configurable FPGA search engines while rule information is stored in conventional memory resources. Depending on the configuration, Stellar can use on-chip M20K memory, eSRAM, DDR, or HBM. That gives architects more freedom to balance throughput, capacity, latency, power, and FPGA resource use around the needs of the actual system. Use dense memory where it makes sense, and intelligence where it matters A traditional TCAM combines storage and comparison circuitry inside specialized ternary-memory arrays. That architecture delivers deterministic matching, but scaling the table means scaling the specialized comparison structure as well. Stellar separates rule storage from search execution. Ternary information can be represented as value-and-mask data in conventional memory, while graph organization and software-managed optimization direct each search toward the relevant parts of the database. As tables grow from thousands of entries toward hundreds of thousands or millions, this creates a different path for scaling capacity and power. The white paper goes deeper into why this matters, including the tradeoffs between TCAM and Stellar, the role of memory hierarchy, and a set of Stellar configurations spanning different key widths, capacities, memory resources, and projected five-tuple performance. Bring classification into the programmable datapath The value is bigger than the lookup engine itself. Stellar is designed to operate inside the FPGA alongside packet parsing, telemetry, encryption, traffic management, host-interface logic, and customer packet-processing RTL. For system architects, that means classification can become part of the same programmable platform already handling the datapath. A firewall can pair large, dynamic ACL processing with the rest of its traffic pipeline. A router can combine LPM and policy enforcement with programmable networking functions. A SmartNIC can integrate flow classification with offload and customer-specific acceleration. That system-level flexibility is especially relevant for 100GE to 400GE designs where classification must scale without consuming the platform that surrounds it. Read the full whitepaper! The full Altera white paper, Altera TCAM Alternative Solutions Scale Packet Classification to Millions of Rules for Networking Equipment, explains the architecture behind Stellar and the design choices that make it different. It covers TCAM fundamentals and scaling limits, Stellar graph-based search and software partitioning, memory-hierarchy options, configuration examples, quantitative architectural comparisons, dynamic updates, and deployment use cases across networking and security. Read the white paper See how Stellar uses search intelligence, configurable FPGA resources, and a flexible memory hierarchy to create a scalable alternative for large ACL and LPM workloads.
24 days ago0likes
4 MIN READ
September 28, 2026 The next generation of embedded systems will not be defined by compute alone. It will depend on how quickly, reliably, and intelligently systems can move data from the physical world into AI engines and turn insights back into action. That message came through clearly at Embedded World North America 2026, held September 22–24 at the Anaheim Convention Center. For Altera, the show provided an opportunity to highlight a growing collaboration with NVIDIA and demonstrate the role of FPGAs in high-performance edge AI architectures. Connecting sensors to AI with flexibility and determinism At the center of the story was NVIDIA Holoscan Sensor Bridge technology. The solution creates a high-bandwidth, low-latency path between real-world sensors and GPU-based AI processing, an increasingly important capability for robotics, industrial automation, intelligent video, medical systems, and other physical AI applications. FPGAs are well suited to this role because they can provide deterministic processing, flexible I/O, and protocol adaptation close to the sensor. Rather than forcing every application into the same hardware configuration, FPGA-based designs can be tailored to performance, connectivity, and latency requirements of a specific system. In the show’s keynote, NVIDIA Vice President Deepu Talla described the value of this flexibility: “You can select any of the Altera FPGAs depending on the application and pair them with any of the NVIDIA frameworks.” Altera’s post noted that Altera offers Holoscan Sensor Bridge solutions spanning 10G to 100G, where 25G and 100G offer significantly more bandwidth compared to other Holoscan ecosystem partners, helping developers scale connectivity for demanding edge workloads. The result is a practical sensor-to-compute architecture: Altera FPGAs handle the flexible, deterministic front end, while NVIDIA platforms provide the accelerated environment for AI and robotics workloads. An ecosystem approach to accelerating development The demonstrations also underscored that successful edge AI deployments require more than individual components. Developers need reference designs, production-ready boards, and partners that help bridge the gap between evaluation and deployment. Altera’s growing Holoscan ecosystem includes more than 10 reference designs and partner boards. These building blocks can help teams reduce integration effort and move faster from proof of concept to a real-time AI product. One example was on display at Altera partner Critical Link’s booth. Critical Link was recognized as a Best in Show Award winner in the AI & Machine Learning category at the show. Visitors to the booth could see a live demonstration of a 5-camera Holoscan Sensor Bridge solution, using Critical Link’s MitySOM-A5E as the featured Agilex® 5 FPGA hardware platform. The demonstration showed how an Agilex 5 FPGA-based system can help bring sensor data into an NVIDIA-powered AI pipeline while preserving the low-latency, high-bandwidth behavior required by edge applications. From 10G to 100G: Building the data plane for edge AI Altera’s Holoscan Sensor Bridge solutions are designed to make the sensor-to-GPU path faster and more adaptable. A recent Altera technical blog describes 10G, 25G, and 100G reference designs, including a 25G design on Agilex 5 SoC FPGAs for multi-camera sensor data flow and accelerated processing at the edge. In this architecture, the FPGA serves as the data plane: connecting to diverse sensors, aggregating streams, adapting protocols, and preprocessing data before it reaches the NVIDIA GPU. That division of labor helps reduce data-movement bottlenecks while preserving deterministic timing and giving developers room to evolve the system as sensor interfaces and AI workloads change. Altera Technical Holoscan blog for Robotics: Altera Pushes the Boundaries of Edge AI with New Holoscan Sensor Bridge Solutions | Altera Community - 355665 Watch the 25G Holoscan demo video: YouTube/Altera Why the sensor-to-compute path matters As AI moves into physical environments, system designers are balancing several competing requirements: Real-time response: Applications such as robotics and industrial inspection cannot always afford the delay of sending raw sensor data to a remote system. High-bandwidth data movement: Modern sensors generate increasingly rich data streams that must be transported without creating a bottleneck. Deterministic behavior: Safety-critical and industrial systems need predictable timing and consistent performance. Design flexibility: Product teams must support different sensors, interfaces, and deployment conditions without redesigning the entire platform. Faster development: Reference designs and ecosystem partnerships can shorten the path from concept to production. The Altera and NVIDIA approach addresses these needs by combining FPGA-based connectivity and processing with GPU-accelerated AI. It gives developers a modular foundation for building systems that can adapt as sensors, models, and application requirements evolve. Building what comes next at the edge The conversation at Embedded World North America 2026 pointed toward a broader shift in embedded design. Edge systems are becoming intelligent, connected, and increasingly autonomous, but their performance still depends on the data path that feeds them. By pairing Altera FPGAs with NVIDIA platforms and collaborating with partners such as Critical Link, developers gain more options for designing that path. The combination of flexible hardware, high-speed connectivity, and accelerated AI can help transform raw sensor input into timely decisions at the point where data is created. For teams developing the next generation of robotics, industrial automation, intelligent vision, and physical AI systems, this is the opportunity: Build a sensor-to-compute architecture that is fast enough for today’s workloads, flexible enough for tomorrow’s requirements, and ready to scale from demonstration to deployment. Learn more about Altera’s Physical AI-related Solutions: Holoscan: https://www.altera.com/fpga-solutions/sensory-interfaces Robotics: https://www.altera.com/fpga-solutions/robotics-solutions-stack Video: https://www.altera.com/fpga-solutions/video-solutions-stack
24 days ago0likes
1 MIN READ
Altera has begun shipping the new Agilex® 7 M-Series R31G multi-host acceleration package, giving customers a new way to build high-bandwidth systems that connect more hosts while moving more data through the network and memory subsystem. R31G is designed for architectures where data must move quickly between the network, memory, and multiple CPUs, GPUs, or other hosts. By bringing 800G or 2x400G Ethernet together with expanded PCIe 5.0/CXL host connectivity, the package opens new possibilities for AI NICs, storage acceleration, cloud acceleration, and other high-throughput platforms. What R31G enables More network bandwidth: 800G or 2x400G Ethernet capability for high-throughput data paths. More host connectivity: Two PCIe 5.0 x16 host interfaces, or up to four independent PCIe 5.0 x8 connections, with CXL support for flexible multi-host architectures. More memory bandwidth and I/O: DDR5-6400 and LPDDR5-6400 support, up to 204.8 GBps of memory bandwidth, and 768 GPIO in a compact 56 x 45 mm package. The result is a programmable platform that can connect, accelerate, and adapt as infrastructure requirements evolve, while keeping high-speed networking, host connectivity, and memory bandwidth tightly integrated. More network bandwidth. More hosts. More memory bandwidth. One programmable platform. Learn more in the Agilex® 7 M-Series product site.
1 month ago0likes
As AI, cloud, and high-performance computing systems continue to scale, data center operators need more bandwidth within increasingly constrained power and thermal envelopes. Linear Pluggable Optics (LPO) offers an important path forward by simplifying optical modules, reducing power consumption, and lowering latency. LPO places signal-conditioning responsibilities in the host device, allowing the optical module to operate without the DSP used in traditional retimed optics. This architecture can reduce optical module power by 30% to 40%, helping data center designers increase connectivity density while simplifying cooling and thermal management. Altera Brings LPO to the FPGA Market Altera is the first FPGA provider to publicly demonstrate Linear Pluggable Optics interoperability using production FPGA devices. Continued validation with LPO modules from Amphenol and FS further demonstrates the breadth of the emerging ecosystem supported by Altera. Agilex® 7 FPGAs and SoCs bring the power and latency advantages of LPO to programmable platforms used in SmartNICs, data processing units, AI accelerators, and custom infrastructure. The initial public demonstration established that Agilex 7 devices could successfully interoperate with 400G LPO modules. The latest validation advances that milestone by confirming that the implementation meets the performance requirements expected for deployment in demanding data center environments. Validated for Real Deployment Conditions Comprehensive testing confirms that Agilex 7 F-Tile transceivers meet the electrical and link-performance requirements defined by the 100G-DR-LPO specification. The validation demonstrated: Compliance with the required transmit, receive, and link-performance criteria Successful interoperability with LPO modules from Amphenol and FS Successful LPO connectivity across distances from 1 meter to 500 meters Consistent performance across temperature and voltage conditions Measurable performance margin beyond required thresholds Testing covered demanding signal conditions, voltage variation, and temperatures ranging from minus 40 degrees Celsius to 105 degrees Celsius for electrical characterization. Functional link testing included a 1-meter LPO connection, a 100-meter active optical cable, and 500-meter LPO modules from Amphenol and FS. The results demonstrate robust, repeatable operation across multiple module suppliers and link distances, with measurable margin relative to the required performance limits. For customers, this validation provides confidence that Agilex® 7 support for LPO is ready for real-world deployment. Following the industry’s first public FPGA interoperability demonstration, the solution has now been evaluated against LPO performance requirements using modules from multiple suppliers and over link distances up to 500 meters. Together, these results demonstrate a practical foundation for deploying LPO connectivity in next-generation data center systems. More Efficient Connectivity for AI and Cloud Infrastructure The value of LPO grows as data centers deploy more high-speed optical connections. Eliminating the DSP from each optical module can reduce power across thousands of links, simplify optical module design, ease thermal pressure at the front panel, and support lower-latency data movement. Agilex 7 FPGAs add programmability to this more efficient optical architecture. Customers can combine LPO connectivity with packet processing, acceleration, security, telemetry, and evolving protocol support on a single adaptable platform. This flexibility is especially valuable for AI clusters and cloud infrastructure, where workloads, network architectures, and connectivity standards continue to evolve. Validation with multiple module vendors also gives system designers greater flexibility as the LPO supplier ecosystem continues to develop. Ready for the Next Generation of Data Centers The combination of public interoperability and comprehensive validation marks a major step for LPO in the FPGA market. Altera has demonstrated that LPO works with production Agilex 7 devices and validated that the solution meets key LPO requirements with measurable operating margin. This gives customers a proven foundation for evaluating and deploying lower-power, lower-latency optical connectivity in real data center environments. With Agilex® 7 FPGAs, LPO is ready for real-world data center deployment.
2 months ago0likes
Security requirements are entering a new phase. Systems being designed today may remain deployed for many years, while regulatory expectations, cryptographic standards, and threat models continue to evolve. For designs in industrial, communications, infrastructure, aerospace, defense, and embedded applications, long-term security is becoming a core platform requirement. FPGA-based designs allow designs to meet today’s security needs and evolve with tomorrow’s requirements. Altera is now offering Agilex® 3 and Agilex® 5 devices with PQC-enabled secure boot and configuration support, helping customers prepare for the next generation of security requirements. With the Quartus® Prime Pro Edition 26.1.1 release, customers can begin using a PQC flow that works with Agilex 3 and Agilex 5 based hardware. This milestone extends the security architecture already built into the Agilex platform. Agilex devices use the Secure Device Manager as a hardware root of trust for secure configuration and device management. By combining PQC-capable devices with Quartus software enablement, Altera is helping customers strengthen the FPGA chain of trust as post-quantum requirements move from planning to implementation. The value is immediate and practical. Customers can start designing with supported devices today, while using Quartus 26.1.1 to take advantage of the current software flow. This gives teams a path to address emerging compliance and security expectations without needing a future platform redesign. The same hardware foundation also allows for additional security enhancements over time. Customers designing with PQC-capable Agilex 3 and Agilex 5 devices can benefit from planned software and firmware improvements enabled by the underlying hardware, with no further FPGA hardware upgrade required for those enhancements. Agilex 3 devices bring this capability to power- and cost-optimized FPGA and SoC designs used in embedded, edge, industrial, control, and platform-management applications. Agilex 5 devices extend the same security direction into mid-range FPGA and SoC designs that require higher performance, greater integration, and broader system capability. Post-quantum readiness will continue to advance, and Altera is building that evolution into the Agilex platform roadmap. With PQC-capable Agilex 3 and Agilex 5 devices and Quartus 26.1.1 software enablement, customers have a practical starting point today and a scalable foundation for future security enhancements.
2 months ago0likes