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##
