Verilog-to-Routing

Last updated
Verilog to Routing
Developer(s) The VTR Development Team
Stable release
8.0.0 / 24 March 2020;17 months ago (2020-03-24)
Repository OOjs UI icon edit-ltr-progressive.svg
Written in C/C++
Operating system Unix-like
Type Electronic Design Automation
License MIT License
Website verilogtorouting.org

Verilog-to-Routing (VTR) is an open source CAD flow for FPGA devices. [1] [2] [3] VTR's main purpose is to map a given circuit described in Verilog, a Hardware Description Language, on a given FPGA architecture for research and development purposes; the FPGA architecture targeted could be a novel architecture that a researcher wishes to explore, or it could be an existing commercial FPGA whose architecture has been captured in the VTR input format. The VTR project has many contributors, with lead collaborating universities being the University of Toronto, the University of New Brunswick, and the University of California, Berkeley . Additional contributors include Google, The University of Utah, Princeton University, Altera, Intel, Texas Instruments, and MIT Lincoln Lab.

Contents

VTR Flow

The VTR design flow usually consists of three main component applications: ODIN II which compiles Verilog code to a circuit in Berkeley Logic Interchange Format (BLIF), a human-readable graph representation of the circuit; [4] ABC which optimizes the BLIF circuit produced by ODIN II; and VPR which packs, places and routes the optimized circuit on the given FPGA architecture. There are some additional optional tools that can process the VTR output further. For example, the FASM FPGA Assembly tool can produce programming bitstreams for some commercial FPGAs (Xilinx Artix and Lattice ice40) at the end of the VTR flow, while the OpenFPGA tool integrates with VTR to produce a standard cell layout of a novel (proposed) FPGA. It is also possible to use different tools for the first (HDL synthesis) stage of the VTR flow; for example the Titan Flow [5] uses Quartus to perform the HDL to logic synthesis stage, and then VPR to perform placement and routing, while Symbiflow uses the Yosys synthesis tool followed by VPR placement and routing.

ODIN II

ODIN II is the HDL compiler of the VTR flow. It transforms a given Verilog code to a BLIF circuit, performs code and circuit optimizations, visualizes circuits, [6] and performs partial mapping of logic to available hard blocks of the given architecture. Also, it can simulate the execution of circuits both for validation as well as power, performance and heat analysis. ODIN II is maintained by the University of New Brunswick. [7]

ABC

ABC optimizes BLIF circuits by performing logic optimization and technology mapping. ABC is maintained by the University of California, Berkeley. [8]

VPR

Versatile Place and Route (VPR) is the final component of VTR. Its input is a BLIF circuit, which it packs, places and routes on an input FPGA architecture.

During packing, neighboring and related logic elements of the circuit are clustered together into Logic Blocks matching the hardware of the FPGA. During placement, these logic blocks as well as hard blocks are assigned to the available hardware resources of the FPGA. Finally, during routing the signal connections between blocks are made. VPR is primarily developed by the University of Toronto, with contributions from many other universities and companies. [9]

FASM

The FPGA Assembly (genfasm) tool will produce a programming bitstream from a VTR implementation (placement and routing of a circuit) on commercial architectures for which complete VTR architecture files describing the FPGA device have been produced. Currently this includes the Xilinx Artix and Lattice ice40 FPGA families. This tool is primarily developed by Google.

See also

Related Research Articles

Processor design is a subfield of computer engineering and electronics engineering (fabrication) that deals with creating a processor, a key component of computer hardware.

Field-programmable gate array Array of logic gates that are reprogrammable

A field-programmable gate array (FPGA) is an integrated circuit designed to be configured by a customer or a designer after manufacturing – hence the term "field-programmable". The FPGA configuration is generally specified using a hardware description language (HDL), similar to that used for an application-specific integrated circuit (ASIC). Circuit diagrams were previously used to specify the configuration, but this is increasingly rare due to the advent of electronic design automation tools.

In computer engineering, a hardware description language (HDL) is a specialized computer language used to describe the structure and behavior of electronic circuits, and most commonly, digital logic circuits.

Application-specific integrated circuit Integrated circuit customized (typically optimized) for a specific task

An application-specific integrated circuit is an integrated circuit (IC) chip customized for a particular use, rather than intended for general-purpose use. For example, a chip designed to run in a digital voice recorder or a high-efficiency bitcoin miner is an ASIC. Application-specific standard product (ASSP) chips are intermediate between ASICs and industry standard integrated circuits like the 7400 series or the 4000 series. ASIC chips are typically fabricated using metal-oxide-semiconductor (MOS) technology, as MOS integrated circuit chips.

Reconfigurable computing is a computer architecture combining some of the flexibility of software with the high performance of hardware by processing with very flexible high speed computing fabrics like field-programmable gate arrays (FPGAs). The principal difference when compared to using ordinary microprocessors is the ability to make substantial changes to the datapath itself in addition to the control flow. On the other hand, the main difference from custom hardware, i.e. application-specific integrated circuits (ASICs) is the possibility to adapt the hardware during runtime by "loading" a new circuit on the reconfigurable fabric.

In computer engineering, logic synthesis is a process by which an abstract specification of desired circuit behavior, typically at register transfer level (RTL), is turned into a design implementation in terms of logic gates, typically by a computer program called a synthesis tool. Common examples of this process include synthesis of designs specified in hardware description languages, including VHDL and Verilog. Some synthesis tools generate bitstreams for programmable logic devices such as PALs or FPGAs, while others target the creation of ASICs. Logic synthesis is one aspect of electronic design automation.

The MicroBlaze is a soft microprocessor core designed for Xilinx field-programmable gate arrays (FPGA). As a soft-core processor, MicroBlaze is implemented entirely in the general-purpose memory and logic fabric of Xilinx FPGAs.

PicoBlaze is the designation of a series of three free soft processor cores from Xilinx for use in their FPGA and CPLD products. They are based on an 8-bit RISC architecture and can reach speeds up to 100 MIPS on the Virtex 4 FPGA's family. The processors have an 8-bit address and data port for access to a wide range of peripherals. The license of the cores allows their free use, albeit only on Xilinx devices, and they come with development tools. Third party tools are available from Mediatronix and others. Also PacoBlaze, a behavioral and device independent implementation of the cores exists and is released under the BSD License. The PauloBlaze is an open source VHDL implementation under the Apache License.

Integrated circuit design Engineering process for electronic hardware

Integrated circuit design, or IC design, is a subset of electronics engineering, encompassing the particular logic and circuit design techniques required to design integrated circuits, or ICs. ICs consist of miniaturized electronic components built into an electrical network on a monolithic semiconductor substrate by photolithography.

C-Slow Retiming is a technique used in conjunction with retiming to improve throughput of a digital circuit. Each register in a circuit is replaced by a set of C registers. This creates a circuit with C independent threads, as if the new circuit contained C copies of the original circuit. A single computation of the original circuit takes C times as many clock cycles to compute in the new circuit. C-slowing by itself increases latency, but throughput remains the same.

Intel Quartus Prime is programmable logic device design software produced by Intel; prior to Intel's acquisition of Altera the tool was called Altera Quartus Prime, earlier Altera Quartus II. Quartus Prime enables analysis and synthesis of HDL designs, which enables the developer to compile their designs, perform timing analysis, examine RTL diagrams, simulate a design's reaction to different stimuli, and configure the target device with the programmer. Quartus Prime includes an implementation of VHDL and Verilog for hardware description, visual editing of logic circuits, and vector waveform simulation.

Jingsheng Jason Cong is a Chinese-born American computer scientist, educator, and serial entrepreneur. He received his B.S. degree in computer science from Peking University in 1985, his M.S. and Ph. D. degrees in computer science from the University of Illinois at Urbana-Champaign in 1987 and 1990, respectively. He has been on the faculty in the Computer Science Department at the University of California, Los Angeles (UCLA) since 1990. Currently, he is a Distinguished Chancellor’s Professor and the director of Center for Domain-Specific Computing (CDSC).

Flow to HDL tools and methods convert flow-based system design into a hardware description language (HDL) such as VHDL or Verilog. Typically this is a method of creating designs for field-programmable gate array, application-specific integrated circuit prototyping and digital signal processing (DSP) design. Flow-based system design is well-suited to field-programmable gate array design as it is easier to specify the innate parallelism of the architecture.

Cadence Design Systems American multinational computational software company

Cadence Design Systems, Inc., headquartered in San Jose, California, is an American multinational computational software company, founded in 1988 by the merger of SDA Systems and ECAD, Inc. The company produces software, hardware and silicon structures for designing integrated circuits, systems on chips (SoCs) and printed circuit boards.

Aldec, Inc. is a privately owned electronic design automation company based in Henderson, Nevada that provides software and hardware used in creation and verification of digital designs targeting FPGA and ASIC technologies.

Physical design (electronics)

In integrated circuit design, physical design is a step in the standard design cycle which follows after the circuit design. At this step, circuit representations of the components of the design are converted into geometric representations of shapes which, when manufactured in the corresponding layers of materials, will ensure the required functioning of the components. This geometric representation is called integrated circuit layout. This step is usually split into several sub-steps, which include both design and verification and validation of the layout.

High-level synthesis (HLS), sometimes referred to as C synthesis, electronic system-level (ESL) synthesis, algorithmic synthesis, or behavioral synthesis, is an automated design process that interprets an algorithmic description of a desired behavior and creates digital hardware that implements that behavior.

Catapult C Synthesis, a commercial electronic design automation product of Mentor Graphics, is a high-level synthesis tool, sometimes called algorithmic synthesis or ESL synthesis. Catapult C takes ANSI C/C++ and SystemC inputs and generates register transfer level (RTL) code targeted to FPGAs and ASICs.

Xilinx ISE Hardware design tool

Xilinx ISE is a discontinued software tool from Xilinx for synthesis and analysis of HDL designs, which primarily targets development of embedded firmware for Xilinx FPGA and CPLD integrated circuit (IC) product families. Use of the last released edition from October 2013 continues for in-system programming of legacy hardware designs containing older FPGAs and CPLDs otherwise orphaned by the replacement design tool, Vivado Design Suite.

Lesley Shannon

Lesley Shannon is a Canadian professor who is Chair for the Computer Engineering Option in the School of Engineering Science at Simon Fraser University. She is also the current NSERC Chair for Women in Science and Engineering for BC and Yukon. Shannon’s chair operates the Westcoast Women in Engineering, Science and Technology (WWEST) program to promote equity, diversity and inclusion in STEM.

References

  1. Murray, Kevin E.; Petelin, Oleg; Zhong, Sheng; Wang, Jia Min; ElDafrawy, Mohamed; Legault, Jean-Philippe; Sha, Eugene; Graham, Aaron G.; Wu, Jean; Walker, Matthew J. P.; Zeng, Hanqing; Patros, Panagiotis; Luu, Jason; Kent, Kenneth B.; Betz, Vaughn (2020). "VTR 8: High Performance CAD and Customizable FPGA Architecture Modelling". ACM Transactions on Reconfigurable Technology and Systems.
  2. Luu, Jason; Ahmed, Nooruddin; Kent, Kenneth B.; Anderson, Jason; Rose, Jonathan; Betz, Vaughn; Goeders, Jeffrey; Wainberg, Michael; Somerville, Andrew; Yu, Thien; Nasartschuk, Konstantin; Nasr, Miad; Wang, Sen; Liu, Tim (2014). "VTR 7.0: Next Generation Architecture and CAD System for FPGAs". ACM Transactions on Reconfigurable Technology and Systems. 7 (2): 1–30. doi:10.1145/2617593.
  3. Rose, Jonathan; Luu, Jason; Yu, Chi Wai; Densmore, Opal; Goeders, Jeffrey; Somerville, Andrew; Kent, Kenneth B.; Jamieson, Peter; Anderson, Jason (2012). "The VTR project: Architecture and CAD for FPGAs from verilog to routing". Proceedings of the ACM/SIGDA international symposium on Field Programmable Gate Arrays - FPGA '12. p. 77. doi:10.1145/2145694.2145708. ISBN   9781450311557.
  4. "Berkeley logic interchange format (BLIF)". Oct Tools Distribution. 2: 197–247. 1992.
  5. Murray, Kevin; Whitty, Scott; Liu, Suya; Luu, Jason; Betz, Vaughn (2015). "Timing-Driven Titan: Enabling Large Benchmarks and Exploring the Gap Between Academic and Commercial CAD". ACM Transactions on Reconfigurable Technology and Systems. 8 (2): 10. doi:10.1145/2629579.
  6. Nasartschuk, Konstantin; Herpers, Rainer; Kent, Kenneth B. (2012). "Visualization support for FPGA architecture exploration". 2012 23rd IEEE International Symposium on Rapid System Prototyping (RSP). pp. 128–134. doi:10.1109/RSP.2012.6380701. ISBN   978-1-4673-2789-3.
  7. Jamieson, Peter; Kent, Kenneth B.; Gharibian, Farnaz; Shannon, Lesley (2010). "Odin II - an Open-Source Verilog HDL Synthesis Tool for CAD Research". 2010 18th IEEE Annual International Symposium on Field-Programmable Custom Computing Machines. pp. 149–156. doi:10.1109/FCCM.2010.31. ISBN   978-1-4244-7142-3.
  8. "A system for sequential synthesis and verification". Berkeley A. B. C. 2009.
  9. "VPR: A new packing, placement and routing tool for FPGA research". Field-Programmable Logic and Applications. Springer Berlin Heidelberg. 1997.