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

Subversion Repositories ecpu_alu

[/] [ecpu_alu/] [trunk/] [alu/] [README] - Blame information for rev 7

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 5 leonous
# ECPU 0.1.alpha
2
# ==============
3
#
4
# Background
5
# ========
6
# Resurrected university project originally written in VHDL.
7
# Converted to Verilog by hand and fixed bugs.
8
#
9
# Modifications made in verilog post-conversion:
10
# - New barrel shifter
11
# - Reviewed opcode list
12
# - Enhanced testbench to allow for random stimulus (verilog only tb)
13
# - Tested using Icarus
14
#
15
# Currently checking for synthesis:
16
# - Passes synthesis checks using "veriwell ... +synopsys"
17
#
18
# Features
19
# ========
20
# * 15 working opcodes/functions :
21
#     cADD_AB
22
#     cINC_A
23
#     cINC_B
24
#     cSUB_AB
25
#     cCMP_AB   - Same as Xor
26
#     cASL_AbyB - Uses last three bits of B (barrel shift)
27
#     cASR_AbyB - Uses last three bits of B (barrel shift)
28
#     cCLR      - Clear outputs
29
#     cDEC_A
30
#     cDEC_B
31
#     cMUL_AB   - not implemented [yet]
32
#     cCPL_A
33
#     cAND_AB
34
#     cOR_AB
35
#     cXOR_AB
36
#     cCPL_B
37
#
38
# * Flags C, V, Z - not implemented [yet]
39
#
40
#     C         - TBD
41
#     V         - TBD
42
#     Z         - TBD
43
#
44
# Simulating
45
# ========
46
#
47 7 leonous
#   1) Run the setup.sh script in the top level directory
48
#       source ./setup.sh
49 5 leonous
#
50
#   2) Modify sim/alu_test.txt as required (or leave as is for first time demo)
51
#
52
#   3) Execute the run script (from the sim directory)
53
#
54
#         unix_prompt% cd sim
55
#         unix_prompt% ./runit [options]
56
#
57
#
58
# Available options:
59
#
60
# * Any valid iverilog option
61
#
62
# * Use -D and the following defines to modify testbench behaviour
63
#
64
#
65
#   DECIMAL_DISPLAY                         Display information in decimal
66
#   HEX_DISPLAY                             Display information in hex
67
#   BINARY_DISPLAY                          Display information in binary
68
#
69
#   RANDOM=   Ignore alu_test.txt and generate
70
#                                           $random stimulus.
71
#
72
#   DEBUG_ALU_TB                            Print out extra information for debug
73
#
74
#   FORCE_A=                         Force ALU input A to a constant value
75
#   FORCE_B=                         Force ALU input B to a constant value
76
#   FORCE_OPCODE=                   Force ALU input S to a constant string
77
#   FORCE_CLR=                         Force ALU input CLR to a constant bit
78
#
79
#   STOP_ON_ERROR                           Stop on the first error encountered
80
#
81
#   CREATE_SIGNAL_LOG                       Create a log file containing IO states per
82
#                                           posedge clk
83
#
84
#
85
# example:
86
#   % ./runit -DRANDOM=10000 -DSTOP_ON_ERROR &> log
87
#
88
#

powered by: WebSVN 2.1.0

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