OpenCores

HASM TestBench Vector Generator

Project maintainers

Details

Name: hasm
Created: Nov 23, 2005
Updated: Oct 19, 2012
SVN Updated: Mar 10, 2009
SVN: Browse
Latest version: download (might take a bit to start...)
Statistics: View
Bugs: 0 reported / 0 solved
Star2you like it: star it!

Other project properties

Category:Testing / Verification
Language:VHDL
Development status:Stable
Additional info:Design done
WishBone compliant: No
WishBone version: n/a
License: LGPL

HASM Description

HASM is a simple instruction simulator for use in the verification of FPGA/CPLD designs that must attach to a processor bus. HASM is meant to attach to a bus model that mimics the device attached to the FPGA or CPLD under test. HASM can be used as though it were a processor within the simulation environment without the tremendous increase in simulation times due to the overhead involved in simulating a real processor.

The HASM instruction simulator is comprised of two components: a Windows-based IDE and a VHDL module capable of reading the vector file generated by the HASM IDE. HASM 'programs' are written using assembler-like instructions. These instructions include Calls and Jumps to allow the testbench vector listing to be traversed linearly or recursively.

HASM is meant to attach to a bus-specific VHDL core. The HASM VHDL module incorporates a simple, generic bus to ease the creation of the bus-specific module. This generic bus supports single and burst-oriented accesses. In addition, the HASM core contains an interrupt line that causes the HASM core to jump to a user-defined location in the HASM source program.

Currently HASM has completed bus models for VME bus, Marvell Discovery Device Bus, Xilinx's IPIF bus, Analog Devices' ADSP-21160 Sharc bus and the 68K-based Motorola QUICC.

HASM Features

- Instruction-Based Testbench Vector Generator
- Includes Instructions to Alter Vector Flow:
- Call, Jump, Return
- Comparison Instructions Useful in Verification of DUT responses:
- Compare Less, Compare Greater, Compare Equal
- Single and Burst Oriented Data Transfer Instructions
- Stack Based Instructions
- Push, Pop
- Boolean Instructions
- AND, OR
- Math Instructions
- Add, Subtract
- Interrupt Support
- Single Interrupt Input to HASM Module
- .ORG Directive for Creation of a Interrupt Service Routine in Vector File

- Four General Purpose Registers
- One General Purpose Register Routed out of HASM Module to be used as GPIO
- Internal 256-word Scratch-Pad memory for Burst data Storage and Verification
- 8 bit, 16 bit, 24 bit and 32 bit Transactions Alterable by Instruction Modifiers (wr.b, wr.w, rd.b, rd.w)
- Currently Executing Instruction Visible within Simulator (allows vector file debug)

Status

- HASM Windows GUI Complete
- HASM Cycle Simulator Model Complete
- Discovery 3 HASM-to-Bus Model Complete
- QUICC HASM-to-Bus Model Complete
- XILINX IPIF HASM-to-Bus Model Complete
- VME Bus HASM-to-Bus Model Complete