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

Subversion Repositories ht_tunnel

[/] [ht_tunnel/] [trunk/] [README.txt] - Blame information for rev 19

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 acastong
=========================================
2
        HyperTransport Tunnel
3
=========================================
4
 
5
This project describes a HyperTransport tunnel for hardware synthesis using
6
the SystemC C++ API.  It was developped to be integrated as a core into a
7
larger hardware project.  You can either synthesize the core using a SystemC
8
synthesis tool or simulate it using any C++ compiler.  The design was
9
developped using SystemC 2.0.1
10
 
11
The tunnel is technology independent, so it can be used with any technology
12
(Xilinx FPGAs,  Altera FPGAs, standard cell proces, etc.)  The design uses
13
synchronous dual-port (one read and one write port) memories by having input
14
and outputs ports to those memories.  So when instanciating the design, you
15
must connect those ports either to memories in a real circuit or to a memory
16
model in simulation.
17
 
18
The design has many options and to change them, you need to modify the file
19
rtl/systemc/core_synth/constants.h.  It contains all the options and
20
configuration option available.  This includes various modes : if the retry
21
mode is enabled, if DirectRoute is enabled, etc.  It is also used to setup
22
the Configuration Space Registers : the address space used by the application,
23
the ID number of the application, etc.
24
 
25
For code documentation, you can run doxygen (a documenation tool) with the
26
doxygen.config.  It will generate HTML documentation in doc/doxygen/html
27
 
28
For higher level documentation, look in the doc folder.  At the moment of
29
writing this readme, the doc folder is empty but hopefully by the time you
30
read this there will be some proper documentation.  But at least remember
31
that the source code is fairly well documented (in .h files) so don't be
32
afraid to go read at least the module descriptions in the .h files.
33
 
34
For synthesis
35
=============
36
 
37
The design was originally designed for the Synopsys SystemC Compiler tool,
38
but it is now discontinued.  Alternatives are Celoxica Agility Compiler and
39
Forte Cynthesizer.  Agility 1.0 is not compatible with the core but version
40
2.0 might be when it is released.  I have not had the chance to try
41
Cynthesizer so I do not know if it works.  If you have the chance of trying
42
it, let me know!  I have synthesized multiple configurations of the design
43
and tested them in post-synthesis simulation, but those versions are useless
44
in a real application since the tunnel needs to be re-synthesized when the
45
CSR configuration changes, and every project usually has a different CSR
46
configuration.
47
 
48
For simulation in a larger project
49
==================================
50
 
51
To simulate it within a larger SystemC project, just include all the source
52
files in rtl/systemc in your project and instanciate the top level
53
vc_ht_tunnel_l1 module to use just like any SystemC module.  But bear in mind
54
that this is an RTL description, so simulation is pretty slow.
55
 
56
For simulation in ModelSim
57
===========================
58
 
59
The .do file contains most of the commands necessary to compile the design
60
in ModelSim and run the main testbench, but to simulate it in your project
61
you will need a top level that instanciates the design and links it with
62
other designs.  In other words, the .do file is only a set of commands to
63
get you started and run a testbench.  ModelSim allows to run SystemC alongside
64
netlists, VHDL, Verilog or anything supported my ModelSim.
65
 
66
For simulation alone
67
====================
68
 
69
The bench directory contains many testbenches to test the design.  The tests
70
done are VERY limited.  Some tests are self-checking and others simply
71
stimulates the design and the output has to be manually checked.
72
 
73
If you are using MS Visual Studio, there are projects files already prepared
74
to compile and run the testbenches.  All you have to do is update the location
75
of the SystemC include directory and the SystemC link library location in the
76
project.
77
 
78
If you are using GCC, I am not too familiar with the configure scripts that
79
search to see if SystemC is properly installed, is the correct version, etc.
80
etc.,  so there are no configure/makefile files ready to use out of the box.
81
Also, the fact that SystemC includes a "main" function often conflicts with
82
autoconfigure tests.  I have tried the global testbench using KDevelop and
83
it works perfectly.
84
 

powered by: WebSVN 2.1.0

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