User Profile
KianHinT_altera
Joined 4 years ago
User Widgets
Contributions
Re: Does anyone actually use the FPGA AI Suite?
Hi Mads_From_Denmark, Thanks for sharing the idea. I'm not in a position to comment on the funding part, but please submit an inquiry through the Altera contact page ( https://www.altera.com/contact ) with your idea and question so the appropriate team can review it and reply to you. on this matter. Thanks Regards Kian53Views0likes0CommentsRe: NAND flash issue with dual-core ARM® Cortex®-A9
The short answer: No, connecting WP# to both a 10 kΩ pull-up and a 10 kΩ pull-down simultaneously is incorrect and is very likely the root cause of both the operational failures and the permanent damage you are seeing. Why the current circuit is harmful With R63 (10 kΩ to 3.3 V) and R62 (10 kΩ to GND) both permanently connected to WP#, you have a classic voltage divider. When the FLASH2_WP driver is not actively asserting a level, the DC voltage on WP# sits at approximately 1.65 V — squarely in the indeterminate region between the S34ML04G200TFI003's VIL and VIH thresholds. The NAND flash cannot reliably decide whether write protection is asserted or de-asserted. The resulting unpredictable write/erase behavior explains why some devices malfunction during programming; an erase or program cycle that begins with WP# in an indeterminate state can corrupt the internal state machine of the flash and, in the worst case, cause permanent cell damage. Even when FLASH2_WP actively drives the pin, the pull-down fights the driver when it tries to assert a logic HIGH (VCC through R63 and GND through R62 both load the driver), increasing current and reducing noise margin in both directions. Correct WP# connection approach If write protection is never required at runtime: Tie WP# directly to VCCIO (3.3 V) through a single pull-up resistor (typically 10 kΩ). Remove R62 entirely. The pin will always be deasserted, allowing normal program and erase operations. If software-controlled write protection is required: Keep a single pull-up (10 kΩ to 3.3 V) on WP# so the default state is write-enabled, and drive it LOW using an HPS GPIO when protection must be asserted. Never add a simultaneous pull-down — the pull-up alone is sufficient to define the idle state. Remove R62 (10 kΩ to GND) from the board. There is no valid use case for a permanent pull-down on an active-low write-protect pin. Design guideline context The NAND Flash Interface Design Guidelines for Cyclone V SoC require the external flash device to be an 8-bit ONFI 1.0 compliant device. The NAND flash controller in the HPS also has strict requirements on page size and ECC sector size, and importantly, the NAND interface cannot be exported to the FPGA fabric. NAND Flash Interface Design Guidelines For the R/B# (Ready/Busy) pin, a related board design note is also worth reviewing: the Cyclone V SoC Pin Connection Guidelines recommend connecting NAND_RB through a 1 kΩ–10 kΩ pull-up resistor to VCCPD_HPS, but for Cypress NAND flash specifically, it is recommended to connect NAND_RB through a 10 kΩ–50 kΩ pull-up resistor to VCCPD_HPS. Why can't Cypress NAND flash be recognized by Cyclone® V SoC FPGAs? Make sure R/B# is also checked — that pin commonly sees similar resistor misconfigurations. The design guideline also states: ensure that the selected NAND flash device is an 8-bit ONFI 1.0 (or later) compliant device. AN 796: Cyclone V and Arria V SoC Device Design Guidelines Verify that the S34ML04G200TFI003 meets this requirement before continuing board bring-up. You can also check the "Supported Flash Devices for Cyclone V and Arria V SoC" list for confirmed compatible NAND devices. AN 796: Cyclone V and Arria V SoC Device Design Guidelines Summary action items: Remove R62 (the 10 kΩ pull-down to GND on WP#). Retain R63 (10 kΩ pull-up to 3.3 V) — or drive WP# actively from an HPS GPIO if runtime protection is needed. Verify R/B# pull-up value matches the Cypress/Spansion flash vendor recommendation (10 kΩ–50 kΩ range for Cypress-family devices). Any devices that saw WP# in the indeterminate 1.65 V region during erase/program cycles should be treated as potentially damaged and replaced.0Views1like0CommentsRe: Does anyone actually use the FPGA AI Suite?
Hi Mads_From_Denmark, Yes, we do have customers and partners using FPGA AI Suite in their own solutions, and Altera continues to encourage users to try it. However, I can’t disclose who those users are, or advise on profitability for that particular use case. Few months back, Altera just release FPGA AI Suite 26.1.1 for our users https://www.altera.com/newsroom/news/press-release/altera-fpga-ai-suite-26-1-1-deterministic-physical-ai-spatial-architecture Thanks Regards Kian30Views0likes2CommentsRe: Reg Agilex5 A5ED028BM16AE5S SoC - USB3.0
Hi Amol, From the result it is in megabytes format on USB3, so USB theoretical max speed is 625MB/s (5000Gbps). From the test result (in previous post) we conducted with our removeable USB thumb drive is around ~300MB/s (~2.4 Gbps) speed. Real-world speed is typically in the 300–450 MB/s range due to USB overheads (Line encoding, Protocol & Packet etc) and also depending on the device connected to the USB. In our test using removeable USB, thus write speed is always slower than the read speed for USB media. Thanks Regards Kian3Views0likes0CommentsRe: Agilex 5 HPS EMIF - Differential Pair Polarity Inversion Support
Hi sbj Apologies for the delay in getting back. I searched through our database and the closest guide for your question is this EMIF IP user guide for Agilex 5 as the memory controller, the PHY, DQS clock trees and byte lane pin mapping are all shared hardware(both fabric and HPS) thus no special separate handling/documentation for just HPS EMIF alone (although there is additional constraints on certain scenarios like restriction and io bank usage) https://docs.altera.com/r/docs/817467/26.1.1/external-memory-interfaces-emif-ip-user-guide-agilex-5-fpgas-and-socs/agilex-5-fpga-emif-ip-introduction In the document it states that both T/C (or P/N) polarity cannot be swapped in the documentation and as HPS shared the same hardware mem controller and IO96 byte lane structure as mentioned above , this requirement is also applicable to HPS EMIF. This also means polarity needs to be preserved at PCB levels You can also refer to section 3.7 of the same documentation on the HPS EMIF portion for additional requirements https://docs.altera.com/r/docs/817467/26.1.1/external-memory-interfaces-emif-ip-user-guide-agilex-5-fpgas-and-socs/agilex-5-emif-ip-for-hard-processor-subsystem-hps Thanks Regards Kian4Views0likes0CommentsRe: Reg Agilex5 A5ED028BM16AE5S SoC - USB3.0
Hi Amol, I noticed that the github page https://altera-fpga.github.io/rel-26.1/embedded-designs/agilex-5/e-series/premium-065b/usb3p1/ug-usb3p1-dev-drd-modes/#41-host-mode-performance-data been updated with the following data Thanks Regards Kian11Views0likes1CommentRe: AI Suite - Is layout transformation useful in more scenarios?
Hi Mads Apologies in delay in getting back, took me sometime to go through the layout transformation section as well. “Current input and filter go into the same feature for the PE this cycle” Mostly correct for inference. In a PE cycle, the engine combines activations (input features) with filter weights. Layout transform only prepares the input; filters come from the compiled graph, not from the layout-transform step. Is it possible to process more channels, so it goes up the timeline of input and also folds that into the current input? Folding does let the PE see more channels in one go. Those extra channels are nearby pixels in space (height/width, and sometimes depth as well), based on the first convolution’s stride. They are packed into the channel axis of the current tensor and not as later samples along an input stream or time axis. So it is not “look ahead in time and merge that into now.” It is “reshape the spatial neighborhood into channels so this PE cycle is fuller.” https://docs.altera.com/r/docs/863373/2025.3/fpga-ai-suite-handbook/folding-input "Is this only useful when doing image stuff or can it also be utilized when doing simple linear stuff?" Short answer is both image stuff and linear stuff can use layout transform but folder is mainly more useful for images / first-convolution jobs. Some further details: Layout transform (reordering and packing the input into the format the PE array expects, including type conversion to FP16 when needed) is useful whenever the input is not already in that format. That applies to image tensors and to simpler linear/FC feature vectors. Folding is different. It packs spatial neighbors (height/width, based on the first convolution’s stride) into the channel dimension so a shallow first layer (for example RGB) uses the PE array more efficiently. A simple linear layer is typically just a feature vector with little or no spatial H×W structure, so folding usually provides little benefit. In short for simple linear networks: use layout transform if you need the correct input packing/format. Do not expect folding to be the main performance lever the way it is for shallow first-layer convolutions on images https://docs.altera.com/r/docs/863373/2025.3/fpga-ai-suite-handbook/folding-input https://docs.altera.com/r/docs/863373/2025.3/fpga-ai-suite-handbook/transforming-input-data-layout "In the compiler it is possible to optimize for area and resources, it is not possible to optimize for throughput which is the most important. For transformation the only parameter is --folding which must be set manually. When should I set the folding parameter? when can I utilize this to improve my design?" I assumed the --folding you mentioned is the --folding-option (0-3) where 0 - no folding (useful for debug, often lower first-layer efficiency) 1 - folding by host runtime or the IP layout-transform module 2 - host folding, plus extra folding in the IP convolution engine 3 - all folding in the IP convolution engine (default) Use or keep folding option (default 3, or 1 if you want the layout-transform path involved) when: the first layer is a convolution input channels are shallow (for example 1, or RGB = 3) architecture CVEC is large first-convolution stride > 1×1 This is the case where folding usually improves the first-layer PE utilization and can help with throughput. Turn folding off or use lightweight layout transform when: you are debugging the network is mostly linear / FC (little or no spatial H×W to fold) first-convolution stride is 1×1 (folding often adds little) the full layout transform costs too much ALM/DSP area reference link where i get the info, perhaps more details in the link (actually same document just different section) https://docs.altera.com/r/docs/863373/2025.3/fpga-ai-suite-handbook/compilation-options-dla-compiler-command-options https://docs.altera.com/r/docs/863373/2025.3/fpga-ai-suite-handbook/folding-input https://docs.altera.com/r/docs/863373/2025.3/fpga-ai-suite-handbook/generating-an-optimized-architecture https://docs.altera.com/r/docs/863373/2025.3/fpga-ai-suite-handbook/architecture-optimizer-options-dla-compiler-command-options https://docs.altera.com/r/docs/863373/2025.3/fpga-ai-suite-handbook/lightweight-layout-transform Thanks Regards Kian1View1like0Comments