• DFT (VIII) – How does DFT test SRAMs? What is the Memory Built-In Selft Test (MBIST)?

    SRAM Fault Model Similar to the logic fault model, SRAMs can have stuck-at faults and open faults in memory cells. In addition, SRAMs can have other faults, including: Note, SRAM read and write logic, such as sense amplifiers and I/O buffers can have defects, but their faults are equivalent to memory cell faults. How does…

  • What is auto-ungrouping? How does it impact the implementation flow?

    Besides boundary optimization, auto-ungroup is another important synthesis optimization technique. By flattening design hierarchies for the benefit of PPA, it enables cross boundary optimization, and removes logic duplication, which often occurs for shared signals across replicated modules. Auto-ungrouping will introduce hierarchy naming changes. For example, ungrouped hierarchies will use underscore “_” instead of slash “/”…

  • Two recommended readings for learning UPF

    Unified Power Format (UPF), is a set of Tcl-like commands used to define the low-power design intent for SoCs. Using UPF commands, you will be able to specify supply networks, power switches, isolation, retention, and other aspects relevant to power management of a chip design. One of the recommended readings for learning UPF, is “Synopsys…

  • How to get better PPA for Synthesis?

    We discussed how RTL coding can help with PPA. In this post, we share a few guidelines detailing how to get better PPA during synthesis. Category  Guideline Description Synthesis Friendly RTL Coding Style Do not handcrafting arithmetic operations such as multiplications by shifting and adding. This prevents synthesis tools from identifying them as arithmetic operations,…

  • From CPU ISA to CPU Microcode Hacking

    The Google security team identified EntrySign, an AMD Zen-based CPU security vulnerability issue. This is a perfect opportunity to understand various CPU instruction concepts, including ISA, CISC, microcode, and microcode patching. What is ISA? An Instruction Set Architecture (ISA) defines the fundamental instruction set a CPU understands, and it creates a boundary between CPU hardware…

  • How Andrej Karpathy uses LLMs

    Andrej Karpathy, a former research scientist and a founding member of OpenAI, had a great video showing how he uses LLMs in his own life. We highly recommend everyone to watch this video, and try taking advantage of LLMs in daily life. The following are what we find from the video particularly useful for hardware…

  • How to avoid cache interference in SoC DRAM testing?

    In SoC DRAM testing, the existence of a cache could interfere with the testing accuracy. This is because, when initiating a DRAM access from the CPU, a cache instead of DRAM could supply the data. Avoid Cache Interference in Software Based Testing To avoid cache interference completely, testing software should explicitly initiate a cache flush…

  • How to do SoC DRAM Testing?

    SoC DRAM testing can be done either in hardware or software. We focus on software methods here. PassMark’s MemTest86 is probably the most popular SoC DRAM testing software, especially for consumer products. We use MemTest86 test kit for our case study. Test 0 – Address Walking Ones Test Walking Ones means, only 1 bit of…

  • What are SoC DRAM faults?

    DRAM related faults can be roughly classified into: Before an SoC is shipped to customers, its DRAM has to go through extensive DRAM testing, e.g., MemTest86. This makes sure that the refresh operation is sufficient to prevent data loss, and that the DRAM bus does not corrupt addresses and data in transit. Many SoCs embed…

  • SEC Mapping Types: Cutpoint Mapping vs Stopat Mapping

    We discussed how SEC works using clock gating FV in a previous post, and introduced cutpoint mapping. We will extend the discussion about the SEC mapping types in this post. A cutpoint is a pair of internal signals that you expect to be equal. The SEC tool auto-generates assertions to make sure they match, for…