[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gEDA: [pmonta@terayon.com: Verilog version of OpenRISC 1001]
----- Forwarded message from owner-geda-dev@seul.org -----
Date: Mon, 24 Apr 2000 12:28:48 -0700
From: Peter Monta <pmonta@terayon.com>
MIME-Version: 1.0
To: openrisc@opencores.org
CC: geda-dev@geda.seul.org
Subject: Verilog version of OpenRISC 1001
Content-Type: multipart/mixed;
boundary="------------0091EAAED87E7D262C2B68EF"
This is a multi-part message in MIME format.
--------------0091EAAED87E7D262C2B68EF
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
I've translated the OpenRISC 1001 VHDL code to Verilog so
I can play with it more easily. It does seem to run most
of the testbench code provided in the cpu_TB module, though
the memory store gets skipped (does this happen with the
VHDL as well?). Runs fine under the free Icarus Verilog
simulator (http://icarus.com/eda/verilog), by the way
(using the current development snapshot).
Comments welcome. I hope to track the VHDL changes as they
become available.
A preliminary synthesis with Synplify shows that it occupies
about 34% of an Altera 10K50E-2 (~1000 logic cells). Most
of it seems to run at around 50 MHz on this part---unfortunately
Synplify chose a ripple structure for a magnitude comparator
("a>b"), so I'll have to replace that with something faster
to get a hard speed number.
I'll just attach the code (it's only 10kByte compressed);
sorry to spam people with this, but I don't really have a
sensible place to put it.
Cheers,
Peter Monta pmonta@terayon.com
Terayon Communication Systems
--------------0091EAAED87E7D262C2B68EF
Content-Type: application/x-gzip;
name="or1k-verilog.tar.gz"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="or1k-verilog.tar.gz"
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
pf8DLNBvlQAYAQA=
--------------0091EAAED87E7D262C2B68EF--
----- End forwarded message -----