OpenCores
URL https://opencores.org/ocsvn/ecpu_alu/ecpu_alu/trunk

Subversion Repositories ecpu_alu

[/] [ecpu_alu/] [trunk/] [alu/] [README] - Rev 7

Compare with Previous | Blame | View Log

# ECPU 0.1.alpha 
# ==============
#
# Background
# ========
# Resurrected university project originally written in VHDL.  
# Converted to Verilog by hand and fixed bugs.
# 
# Modifications made in verilog post-conversion:
# - New barrel shifter
# - Reviewed opcode list
# - Enhanced testbench to allow for random stimulus (verilog only tb)
# - Tested using Icarus 
# 
# Currently checking for synthesis:
# - Passes synthesis checks using "veriwell ... +synopsys"
# 
# Features
# ========
# * 15 working opcodes/functions :
#     cADD_AB   
#     cINC_A    
#     cINC_B    
#     cSUB_AB   
#     cCMP_AB   - Same as Xor
#     cASL_AbyB - Uses last three bits of B (barrel shift)
#     cASR_AbyB - Uses last three bits of B (barrel shift)
#     cCLR      - Clear outputs
#     cDEC_A    
#     cDEC_B    
#     cMUL_AB   - not implemented [yet]
#     cCPL_A    
#     cAND_AB   
#     cOR_AB    
#     cXOR_AB   
#     cCPL_B    
# 
# * Flags C, V, Z - not implemented [yet]
# 
#     C         - TBD
#     V         - TBD
#     Z         - TBD
#
# Simulating
# ========
#
#   1) Run the setup.sh script in the top level directory
#       source ./setup.sh
#
#   2) Modify sim/alu_test.txt as required (or leave as is for first time demo)
#
#   3) Execute the run script (from the sim directory)
#       
#         unix_prompt% cd sim
#         unix_prompt% ./runit [options]
#
#   
# Available options:
# 
# * Any valid iverilog option
# 
# * Use -D and the following defines to modify testbench behaviour
#   
#
#   DECIMAL_DISPLAY                         Display information in decimal
#   HEX_DISPLAY                             Display information in hex
#   BINARY_DISPLAY                          Display information in binary
#
#   RANDOM=<no of random operands to try>   Ignore alu_test.txt and generate
#                                           $random stimulus.
#
#   DEBUG_ALU_TB                            Print out extra information for debug
#
#   FORCE_A=<value>                         Force ALU input A to a constant value
#   FORCE_B=<value>                         Force ALU input B to a constant value
#   FORCE_OPCODE=<string>                   Force ALU input S to a constant string
#   FORCE_CLR=<bit>                         Force ALU input CLR to a constant bit
#
#   STOP_ON_ERROR                           Stop on the first error encountered
#
#   CREATE_SIGNAL_LOG                       Create a log file containing IO states per
#                                           posedge clk
#
#
# example:
#   % ./runit -DRANDOM=10000 -DSTOP_ON_ERROR &> log
#
#

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.