Skip to main content

Posts

Showing posts from November, 2021

YAML in Semiconductor EDA: From Configuration Language to Reusable Design-Flow Methodology

Hello Dear Readers,   Today in this post, I will provide some deep insight about yaml langauge for CAD flow developments with detailed examples. YAML is not a programming language in the same sense as Python, Tcl, C++, or Verilog. It is primarily a human-readable data serialization/configuration language . In semiconductor EDA, that distinction is important because YAML generally describes what a flow should do , while Python/Tcl/Shell and the EDA tools execute the flow . The official YAML specification describes it as a data serialization language designed to be human-friendly and portable across programming languages. For the semiconductor angle, this becomes particularly interesting because YAML can act as a configuration layer between design methodology and EDA implementation . Frameworks such as Hammer explicitly use YAML/JSON configuration and an intermediate representation to standardize information exchanged between design, technology, and tool plugins. 1. Introduction M...

How FPGA is Programmable ASIC and Its Building Blocks

  Hello Dear Readers,   Today in this post I will discuss how FPGA is a programmable ASIC and what are the basic building blocks of the FPGA. Modern FPGAs are named programmable ASICs and used in various applications which include the ASIC SOC designs and prototyping. FPGA programming includes the following types and is discussed below section. The main programming types for any FPGA are, 1). SRAM Based FPGAs: Most of the FPGAs in the market are based on SRAM technology. They store the configuration bit-file in the SRAM cells designed using latches. As the SRAM is volatile, they need to be configured at the start. There are two modes for programming and they are Master and Slave. The SRAM memory cell is shown in Fig.1. In the Master mode, FPGA reads configuration data from the external source and that can be flash. In the Slave mode, FPGA is configured by using the external master device such as processor. The external configuration interface can be JTAG that is also call...