Giter Site home page Giter Site logo

mosconv / pint_iverilog Goto Github PK

View Code? Open in Web Editor NEW

This project forked from pytec8800/pint_iverilog

0.0 0.0 0.0 3.53 MB

Project PLS is developed based on icarus iverilog and will compile verilog into a much faster optimized model.

License: GNU Lesser General Public License v2.1

Shell 0.21% C++ 72.57% Python 0.01% C 23.02% Verilog 0.08% Makefile 0.56% CMake 0.07% Yacc 2.22% Lex 0.98% Roff 0.27%

pint_iverilog's Introduction

Getting Started with PLS

The project is developed based on icarus iverilog. Special thanks to Stephen Williams ([email protected]).

PLS is a Verilog simulator, compiles verilog into a much faster optimized model, which executes about 20-100x faster than interpreted Verilog simulators such as icarus iverilog vvp.

Performance

PLS performance versus the closed-source Verilog simulators is about [0.5, 10] in typical test. In decoder cases, it executes about 1-10x over closed-source simulators, average 3.85x. In uap cases, it executes average 0.72x versus closed-source simulators.

1. Install From Source

1.1 Compile Time Prerequisites

You need the following softwares to compile PLS from source on a UNIX-like system:

  • GNU Make
  • CMake optional
  • ISO C++ Compiler
  • bison and flex
  • gperf 3.0 or later
  • readline 4.2 or later
  • termcap
  • bash

1.2 Compilation

Unpack the tar-ball and compile the source with the commands:

  cd pint_iverilog
  sh autoconf.sh
  ./configure
  make -j8
  sudo make install

2. Simulation example

For simulation, we use the following design as an example:

  module main;
  initial
    begin
      $display("Hello, World");
      $finish ;
    end
  endmodule
  1. Arrange for the above program to be in a text file, hello.v.
  2. Compile the program with the pls command:
    pls hello.v
  3. The results of the verilog compile modle is put into the ./a.out file.
  4. execute the compile modle:
    ./a.out
    Hello, World

3. Execute in cpu mode

If your environment is not equipped with a PINT accelerator card and not install the pint_sdk, then it will default compile and execute in cpu mode:

```bash
pls hello.v
./a.out
```

4. Execute in pint mode

The PLS verilog compile model is also designed to support parrallel processing, which can further accelerate the simulation.

4.1 Local device

If your environment is equipped with a PINT accelerator card and installed the pint_sdk, then it will default run the simulation in pint mode, you can also use './a.out cpu_mode' to execute in cpu mode.

```bash
pls hello.v
./a.out
```

4.2 Remote server

If your environment is not equipped with a PINT accelerator card but installed the pint_sdk, then it will default compile the pint model, you can also use './a.out cpu_mode' to execute in cpu mode.

```bash
pls hello.v
./a.out compile_only
```

then you can use the PINT PLS remote server to run the simulation. For details, see the PINT PLS Remote Server Manual for RTL Simulation on: http://www.panyi-tech.com/

pint_iverilog's People

Contributors

pytec8800 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.