• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
      • Gl
      • Esim
      • Vl2014
      • Sv
      • Fgl
      • Vwsim
      • Vl
        • Syntax
        • Loader
        • Warnings
        • Getting-started
        • Utilities
        • Printer
        • Kit
          • Vl-lint
          • Vl-server
            • Vls-scannedalist-p
            • Vls-loadedalist-p
            • Vls-commands
            • Vls-data-p
            • Vl-server-opts-p
            • Vl-descriptionlist-summaries
            • Vls-transdb
            • Vl-describe
            • Ts-queue
            • Vls-get-plainsrc
            • Vl-description->warnings
            • Vls-showloc
            • File-layout
            • Vls-remove-from-scannedalist
            • Vls-describe
            • Vl-server-top
            • Vls-port-table
            • Vl-find-description-insensitive
            • Vls-get-warnings
            • Vls-get-summary
            • Vls-get-origsrc
            • Vl-ppc-description
            • Vls-get-parents
            • Vls-get-children
            • Vls-data-origname-reportcard
            • Vls-data-from-zip
            • Start
            • Vls-make-scannedalist
            • Vls-get-summaries
            • Vls-get-unloaded-json
            • Vls-get-desctypes
            • Vls-scannedalist-to-json
            • Vls-loadedalist-to-json
            • Vl-description-summary
            • *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
    • Math
    • Testing-utilities
  • 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.
Vls-data-p
Data that is available to vls-commands.
Vl-server-opts-p
Options for running vl server.
Vl-descriptionlist-summaries
(vl-descriptionlist-summaries x) maps vl-description-summary across a list.
Vls-transdb
Translations database for the VL Server.
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
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, ...).
Vls-showloc
File-layout
Where we look for translation data.
Vls-remove-from-scannedalist
Vls-describe
Vl-server-top
Top-level vl server command.
Vls-port-table
Vl-find-description-insensitive
Vls-get-warnings
Vls-get-summary
Vls-get-origsrc
Vl-ppc-description
Vls-get-parents
Vls-get-children
Vls-data-origname-reportcard
Vls-data-from-zip
Start
Vls-make-scannedalist
Vls-get-summaries
Vls-get-unloaded-json
Vls-get-desctypes
Vls-scannedalist-to-json
Vls-loadedalist-to-json
Vl-description-summary
*vl-server-help*
Vl-descalist->descriptions/types
Stop