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

Subversion Repositories uart8systemc

[/] [uart8systemc/] [trunk/] [README.md] - Blame information for rev 7

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 5 redbear
# UART 8 bit + parity whit Self Checking using SystemC model
2 2 redbear
This project provide the necessary to run a env test a simple uart verilog using SystemC and running it on icarus verilog
3 5 redbear
 
4
###Donate and help us "Bitcoin is the future"
5
 
6 7 redbear
 - 1CSZ9nHBWxLaf1nU9E9E15GAjKcYXD1wnV
7 5 redbear
 
8
###ABOUT this UART
9
 
10
This consist in a simple UART 8 bit using opensource rtl simulator icarus verilog with mixed code vpi "verilog procedural interface" and systemC. This uart is alredy tested on ALTERA FPGA and it work well. But RX could be more elaborated to take signal since he take just catch signal on middle of counter and not see another point of signal. But this is the base to elaborate another applications on future or modify it to a specific propurse. SystemC model do the same way but i need finish just check parity from DUT "Device under test" to SystemC model.
11
 
12
 This IP was developed in order to:
13
 
14
  - Concepts acquired in training in the digital stream
15
  - Integration with free software
16
  - Different forms of functional verification
17
  - Projects aimed at ASIC
18
  - IP facing low density - average
19
  - Promoting microelectronics interested people on Latin America
20
  - Teamwork
21
 
22
###Requisites
23
 
24
 - Linux Distro
25
 - Icarus verilog [http://iverilog.icarus.com/]
26
 - SystemC 2.3 [http://accellera.org/downloads/standards/systemc]
27
 - gtkwave [http://gtkwave.sourceforge.net/]
28 7 redbear
 - gtk3
29
 - libboost
30
 - gtkmm
31
 - glade
32 5 redbear
 
33
*Obs: you need alredy know how to compile and understand concepts and how work icarus / SystemC / linux tools
34
 
35
###Configuration of Environment
36
 
37
To systemC , icarus verilog and gtkwave follow instalation guide provided by developers and make propely exports to linux distro see includes and objects used during build of environment. The folder work is where you need compile and execute the test using systemC and DUT in verilog. Note on env_uart.cpp some includes fail because location so you need set it where you have compiled or instaled icarus verilog.
38
 
39
On work folder you should see after yoo installed systemC if is propely installed
40
 
41
```sh
42
$ ldd sc_uart.so
43
```
44
 
45
The result of command should be this
46
 
47
```sh
48 7 redbear
        linux-vdso.so.1 (0x00007ffe3c1ec000)
49
        libsystemc-2.3.0.so => /systemc-2.3.0/lib-linux64/libsystemc-2.3.0.so (0x00007f752f1ef000)
50
        libgtkmm-3.0.so.1 => /usr/lib64/libgtkmm-3.0.so.1 (0x00007f752ea75000)
51
        libatkmm-1.6.so.1 => /usr/lib64/libatkmm-1.6.so.1 (0x00007f752e828000)
52
        libgdkmm-3.0.so.1 => /usr/lib64/libgdkmm-3.0.so.1 (0x00007f752e5e1000)
53
        libgiomm-2.4.so.1 => /usr/lib64/libgiomm-2.4.so.1 (0x00007f752e234000)
54
        libpangomm-1.4.so.1 => /usr/lib64/libpangomm-1.4.so.1 (0x00007f752e006000)
55
        libglibmm-2.4.so.1 => /usr/lib64/libglibmm-2.4.so.1 (0x00007f752dd8c000)
56
        libgtk-3.so.0 => /usr/lib64/libgtk-3.so.0 (0x00007f752d4ac000)
57
        libgdk-3.so.0 => /usr/lib64/libgdk-3.so.0 (0x00007f752d1ff000)
58
        libpangocairo-1.0.so.0 => /usr/lib64/libpangocairo-1.0.so.0 (0x00007f752cff2000)
59
        libpango-1.0.so.0 => /usr/lib64/libpango-1.0.so.0 (0x00007f752cda6000)
60
        libatk-1.0.so.0 => /usr/lib64/libatk-1.0.so.0 (0x00007f752cb80000)
61
        libcairo-gobject.so.2 => /usr/lib64/libcairo-gobject.so.2 (0x00007f752c977000)
62
        libgio-2.0.so.0 => /usr/lib64/libgio-2.0.so.0 (0x00007f752c5f7000)
63
        libcairomm-1.0.so.1 => /usr/lib64/libcairomm-1.0.so.1 (0x00007f752c3d1000)
64
        libcairo.so.2 => /usr/lib64/libcairo.so.2 (0x00007f752c0af000)
65
        libsigc-2.0.so.0 => /usr/lib64/libsigc-2.0.so.0 (0x00007f752bea8000)
66
        libgdk_pixbuf-2.0.so.0 => /usr/lib64/libgdk_pixbuf-2.0.so.0 (0x00007f752bc85000)
67
        libgobject-2.0.so.0 => /usr/lib64/libgobject-2.0.so.0 (0x00007f752ba34000)
68
        libglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0 (0x00007f752b724000)
69
        libboost_thread.so.1.54.0 => /usr/lib64/libboost_thread.so.1.54.0 (0x00007f752b50c000)
70
        libboost_system.so.1.54.0 => /usr/lib64/libboost_system.so.1.54.0 (0x00007f752b308000)
71
        libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f752af83000)
72
        libm.so.6 => /lib64/libm.so.6 (0x00007f752ac82000)
73
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f752aa6b000)
74
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f752a84d000)
75
        libc.so.6 => /lib64/libc.so.6 (0x00007f752a4a5000)
76
        libgmodule-2.0.so.0 => /usr/lib64/libgmodule-2.0.so.0 (0x00007f752a2a0000)
77
        libX11.so.6 => /usr/lib64/libX11.so.6 (0x00007f7529f62000)
78
        libXi.so.6 => /usr/lib64/libXi.so.6 (0x00007f7529d52000)
79
        libXfixes.so.3 => /usr/lib64/libXfixes.so.3 (0x00007f7529b4b000)
80
        libatk-bridge-2.0.so.0 => /usr/lib64/libatk-bridge-2.0.so.0 (0x00007f752991d000)
81
        libepoxy.so.0 => /usr/lib64/libepoxy.so.0 (0x00007f7529623000)
82
        libpangoft2-1.0.so.0 => /usr/lib64/libpangoft2-1.0.so.0 (0x00007f752940e000)
83
        libfontconfig.so.1 => /usr/lib64/libfontconfig.so.1 (0x00007f75291d1000)
84
        libXinerama.so.1 => /usr/lib64/libXinerama.so.1 (0x00007f7528fce000)
85
        libXrandr.so.2 => /usr/lib64/libXrandr.so.2 (0x00007f7528dc2000)
86
        libXcursor.so.1 => /usr/lib64/libXcursor.so.1 (0x00007f7528bb7000)
87
        libXcomposite.so.1 => /usr/lib64/libXcomposite.so.1 (0x00007f75289b4000)
88
        libXdamage.so.1 => /usr/lib64/libXdamage.so.1 (0x00007f75287b0000)
89
        libXext.so.6 => /usr/lib64/libXext.so.6 (0x00007f752859e000)
90
        librt.so.1 => /lib64/librt.so.1 (0x00007f7528396000)
91
        libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x00007f75280fe000)
92
        libz.so.1 => /lib64/libz.so.1 (0x00007f7527ee8000)
93
        libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f7527cc3000)
94
        libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f7527aac000)
95
        libpixman-1.so.0 => /usr/lib64/libpixman-1.so.0 (0x00007f7527801000)
96
        libEGL.so.1 => /usr/lib64/libEGL.so.1 (0x00007f75275d8000)
97
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f75273d4000)
98
        libpng16.so.16 => /usr/lib64/libpng16.so.16 (0x00007f7527197000)
99
        libxcb-shm.so.0 => /usr/lib64/libxcb-shm.so.0 (0x00007f7526f93000)
100
        libxcb-render.so.0 => /usr/lib64/libxcb-render.so.0 (0x00007f7526d89000)
101
        libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x00007f7526b69000)
102
        libXrender.so.1 => /usr/lib64/libXrender.so.1 (0x00007f752695e000)
103
        libGL.so.1 => /usr/lib64/libGL.so.1 (0x00007f75266cd000)
104
        libffi.so.4 => /usr/lib64/libffi.so.4 (0x00007f75264c3000)
105
        libpcre.so.1 => /usr/lib64/libpcre.so.1 (0x00007f752625d000)
106
        /lib64/ld-linux-x86-64.so.2 (0x0000563bbfa45000)
107
        libatspi.so.0 => /usr/lib64/libatspi.so.0 (0x00007f752602c000)
108
        libdbus-1.so.3 => /lib64/libdbus-1.so.3 (0x00007f7525de5000)
109
        libharfbuzz.so.0 => /usr/lib64/libharfbuzz.so.0 (0x00007f7525b85000)
110
        libexpat.so.1 => /usr/lib64/libexpat.so.1 (0x00007f752595a000)
111
        libbz2.so.1 => /usr/lib64/libbz2.so.1 (0x00007f752574b000)
112
        libX11-xcb.so.1 => /usr/lib64/libX11-xcb.so.1 (0x00007f7525548000)
113
        libxcb-dri2.so.0 => /usr/lib64/libxcb-dri2.so.0 (0x00007f7525343000)
114
        libxcb-xfixes.so.0 => /usr/lib64/libxcb-xfixes.so.0 (0x00007f752513c000)
115
        libgbm.so.1 => /usr/lib64/libgbm.so.1 (0x00007f7524f2d000)
116
        libwayland-client.so.0 => /usr/lib64/libwayland-client.so.0 (0x00007f7524d1f000)
117
        libwayland-server.so.0 => /usr/lib64/libwayland-server.so.0 (0x00007f7524b0d000)
118
        libdrm.so.2 => /usr/lib64/libdrm.so.2 (0x00007f75248fd000)
119
        libXau.so.6 => /usr/lib64/libXau.so.6 (0x00007f75246f9000)
120
        libglapi.so.0 => /usr/lib64/libglapi.so.0 (0x00007f75244ca000)
121
        libxcb-glx.so.0 => /usr/lib64/libxcb-glx.so.0 (0x00007f75242b2000)
122
        libxcb-dri3.so.0 => /usr/lib64/libxcb-dri3.so.0 (0x00007f75240af000)
123
        libxcb-present.so.0 => /usr/lib64/libxcb-present.so.0 (0x00007f7523eab000)
124
        libxcb-sync.so.1 => /usr/lib64/libxcb-sync.so.1 (0x00007f7523ca5000)
125
        libxshmfence.so.1 => /usr/lib64/libxshmfence.so.1 (0x00007f7523aa2000)
126
        libXxf86vm.so.1 => /usr/lib64/libXxf86vm.so.1 (0x00007f752389b000)
127
        libgraphite2.so.3 => /usr/lib64/libgraphite2.so.3 (0x00007f7523672000)
128 5 redbear
```
129
 
130
To Run environment just do the follow command
131
 
132
```sh
133
  bash run.sh
134
```
135
 
136 7 redbear
###What I have done till now
137
 
138
 - Graphical interface to a better experience
139
 - Dinamic change clock during environment execution
140
 - A set of baud rates i found across internet to test suit
141
 - A output file in html format TX SystemC 2 RX Verilog contain data compared
142
 
143
### BUGS ? :-(
144
 
145
 - Crashes when you change frequency with no specific baud rate
146
 - Log in html data goes wrong after a reset
147
 
148
### What i will do on future if i still alive :-D
149
 
150
 - Make output file in html format TX Verilog 2 RX SystemC contain data compared
151
 - Found the reason 'real one' to crash simulation on change clock
152
 - Make avaiable to user insert data during execution

powered by: WebSVN 2.1.0

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