• Top
    • Documentation
    • Books
    • Recursion-and-induction
    • Boolean-reasoning
    • Debugging
    • Projects
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
      • Gl
      • Esim
      • Vl2014
      • Sv
      • Fgl
      • Vl
        • Syntax
        • Loader
        • Warnings
        • Getting-started
        • Utilities
        • Printer
        • Kit
          • Vl-lint
          • Vl-server
            • Vls-scannedalist-p
            • Vls-loadedalist-p
            • Vls-commands
            • Vl-descriptionlist-summaries
            • Vls-data-p
            • Vl-server-opts-p
            • Vls-transdb
            • Vl-description->warnings
            • Vl-describe
            • Ts-queue
            • Vls-get-plainsrc
            • Vls-showloc
            • File-layout
            • Vl-server-top
            • Vls-remove-from-scannedalist
            • Vls-describe
            • Vl-ppc-description
            • Vl-find-description-insensitive
            • Vls-port-table
            • Vls-get-warnings
            • Vls-get-summary
            • Vls-get-origsrc
            • Vls-data-from-zip
            • Vls-make-scannedalist
            • Vls-get-parents
            • Vls-get-children
            • Vls-data-origname-reportcard
            • Start
            • Vls-get-summaries
            • Vls-get-desctypes
            • Vls-get-unloaded-json
            • Vl-description-summary
            • Vls-scannedalist-to-json
            • Vls-loadedalist-to-json
            • *vl-server-help*
            • Vl-descalist->descriptions/types
            • Stop
          • Vl-gather
          • Vl-zip
          • Vl-main
          • Split-plusargs
          • Vl-shell
          • Vl-json
        • Mlib
        • Transforms
      • X86isa
      • Svl
      • Rtl
    • Software-verification
    • Testing-utilities
    • Math
  • Kit

Vl-server

The VL server powers the Module Browser, a web-based interface for viewing Verilog designs.

Introduction

The VL Server lets you to browser through a Verilog or SystemVerilog design from a web browser. Some nice features:

  • Easily jump from module to module via hyperlinks
  • Click on wires to see how they're used
  • Get pictures (that you can print) of a module's inputs and outputs

The VL server is normally built as part of the VL kit. That is, to start the server you can run vl server [options], where vl is the VL command-line program described in kit.

Security Warning

The server has NO AUTHENTICATION MECHANISM. Anyone who can see your machine on the network can browse your Verilog modules. Moreover, the module browser software MAY HAVE SECURITY VULNERABILITIES that could allow an attacker to gain access to your computer. You should ONLY run the module browser after first consulting your network administrator to ensure that appropriate firewalls are in place. You should NEVER run the module browser on an untrusted network (e.g., the internet). IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Getting Started

See demo.sh in acl2/books/centaur/vl/kit/server-demo for an interactive demo of the following commands.

The server reads Verilog designs from .vlzip files that are produced by the vl-zip command. So, the first step to use the VL Server is to use VL to zip up your designs using a command such as:

vl zip foo.sv 
   --search ./lib1 
   --search ./lib2 
   --name foo 
   --output=./translations/foo.vlzip

You can see vl-zip for more details. Once your .vlzip files have been generated, you can point the VL server to the directory that contains them, using a command such as:

vl server --port 3375 --root=./translations

Once the server is running, you should be able to connect your web browser to it by entering a URL such as:

http://localhost:3375/

The server will occasionally rescan its --root directory for new .vlzip files, and you can choose the file you want to browse from the main page.

Other Options

For detailed usage information, you can run vl server --help or see *vl-server-help*.

Subtopics

Vls-scannedalist-p
(vls-scannedalist-p x) recognizes association lists where every key satisfies stringp and each value satisfies vl-zipinfo-p.
Vls-loadedalist-p
(vls-loadedalist-p x) recognizes association lists where every key satisfies stringp and each value satisfies vls-data-p.
Vls-commands
A simple command format for interfacing between Lisp and Javascript.
Vl-descriptionlist-summaries
(vl-descriptionlist-summaries x) maps vl-description-summary across a list.
Vls-data-p
Data that is available to vls-commands.
Vl-server-opts-p
Options for running vl server.
Vls-transdb
Translations database for the VL Server.
Vl-description->warnings
Get the warnings from most descriptions, or nil if this description doesn't have any warnings (e.g., an import statement, function declaration, ...).
Vl-describe
(vl-describe name x ss) describes the uses of name in the module x.
Ts-queue
Primitive thread-safe, shared queue.
Vls-get-plainsrc
Vls-showloc
File-layout
Where we look for translation data.
Vl-server-top
Top-level vl server command.
Vls-remove-from-scannedalist
Vls-describe
Vl-ppc-description
Vl-find-description-insensitive
Vls-port-table
Vls-get-warnings
Vls-get-summary
Vls-get-origsrc
Vls-data-from-zip
Vls-make-scannedalist
Vls-get-parents
Vls-get-children
Vls-data-origname-reportcard
Start
Vls-get-summaries
Vls-get-desctypes
Vls-get-unloaded-json
Vl-description-summary
Vls-scannedalist-to-json
Vls-loadedalist-to-json
*vl-server-help*
Vl-descalist->descriptions/types
Stop