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

Subversion Repositories uart8systemc

[/] [uart8systemc/] [trunk/] [README.md] - Diff between revs 5 and 7

Show entire file | Details | Blame | View Log

Rev 5 Rev 7
Line 1... Line 1...
# UART 8 bit + parity whit Self Checking using SystemC model
# UART 8 bit + parity whit Self Checking using SystemC model
This project provide the necessary to run a env test a simple uart verilog using SystemC and running it on icarus verilog
This project provide the necessary to run a env test a simple uart verilog using SystemC and running it on icarus verilog
 
 
###Donate and help us "Bitcoin is the future"
###Donate and help us "Bitcoin is the future"
 
 
 - 16tCHCq1nMZVDQeYTVwFXjzz53hnHSA2Q3
 - 1CSZ9nHBWxLaf1nU9E9E15GAjKcYXD1wnV
 
 
###ABOUT this UART
###ABOUT this UART
 
 
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.
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.
 
 
Line 17... Line 17...
  - Projects aimed at ASIC
  - Projects aimed at ASIC
  - IP facing low density - average
  - IP facing low density - average
  - Promoting microelectronics interested people on Latin America
  - Promoting microelectronics interested people on Latin America
  - Teamwork
  - Teamwork
 
 
 
 
###Requisites
###Requisites
 
 
 - Linux Distro
 - Linux Distro
 - Icarus verilog [http://iverilog.icarus.com/]
 - Icarus verilog [http://iverilog.icarus.com/]
 - SystemC 2.3 [http://accellera.org/downloads/standards/systemc]
 - SystemC 2.3 [http://accellera.org/downloads/standards/systemc]
 - gtkwave [http://gtkwave.sourceforge.net/]
 - gtkwave [http://gtkwave.sourceforge.net/]
 
 - gtk3
 
 - libboost
 
 - gtkmm
 
 - glade
 
 
*Obs: you need alredy know how to compile and understand concepts and how work icarus / SystemC / linux tools
*Obs: you need alredy know how to compile and understand concepts and how work icarus / SystemC / linux tools
 
 
###Configuration of Environment
###Configuration of Environment
 
 
Line 40... Line 43...
```
```
 
 
The result of command should be this
The result of command should be this
 
 
```sh
```sh
        linux-vdso.so.1 (0x00007ffd92ffe000)
        linux-vdso.so.1 (0x00007ffe3c1ec000)
        libsystemc-2.3.0.so => /lib64/libsystemc-2.3.0.so (0x00007f24c2420000)
        libsystemc-2.3.0.so => /systemc-2.3.0/lib-linux64/libsystemc-2.3.0.so (0x00007f752f1ef000)
        libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f24c209d000)
        libgtkmm-3.0.so.1 => /usr/lib64/libgtkmm-3.0.so.1 (0x00007f752ea75000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f24c1d9c000)
        libatkmm-1.6.so.1 => /usr/lib64/libatkmm-1.6.so.1 (0x00007f752e828000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f24c1b85000)
        libgdkmm-3.0.so.1 => /usr/lib64/libgdkmm-3.0.so.1 (0x00007f752e5e1000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f24c17de000)
        libgiomm-2.4.so.1 => /usr/lib64/libgiomm-2.4.so.1 (0x00007f752e234000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f24c15c0000)
        libpangomm-1.4.so.1 => /usr/lib64/libpangomm-1.4.so.1 (0x00007f752e006000)
        /lib64/ld-linux-x86-64.so.2 (0x000056321eb36000)
        libglibmm-2.4.so.1 => /usr/lib64/libglibmm-2.4.so.1 (0x00007f752dd8c000)
 
        libgtk-3.so.0 => /usr/lib64/libgtk-3.so.0 (0x00007f752d4ac000)
 
        libgdk-3.so.0 => /usr/lib64/libgdk-3.so.0 (0x00007f752d1ff000)
 
        libpangocairo-1.0.so.0 => /usr/lib64/libpangocairo-1.0.so.0 (0x00007f752cff2000)
 
        libpango-1.0.so.0 => /usr/lib64/libpango-1.0.so.0 (0x00007f752cda6000)
 
        libatk-1.0.so.0 => /usr/lib64/libatk-1.0.so.0 (0x00007f752cb80000)
 
        libcairo-gobject.so.2 => /usr/lib64/libcairo-gobject.so.2 (0x00007f752c977000)
 
        libgio-2.0.so.0 => /usr/lib64/libgio-2.0.so.0 (0x00007f752c5f7000)
 
        libcairomm-1.0.so.1 => /usr/lib64/libcairomm-1.0.so.1 (0x00007f752c3d1000)
 
        libcairo.so.2 => /usr/lib64/libcairo.so.2 (0x00007f752c0af000)
 
        libsigc-2.0.so.0 => /usr/lib64/libsigc-2.0.so.0 (0x00007f752bea8000)
 
        libgdk_pixbuf-2.0.so.0 => /usr/lib64/libgdk_pixbuf-2.0.so.0 (0x00007f752bc85000)
 
        libgobject-2.0.so.0 => /usr/lib64/libgobject-2.0.so.0 (0x00007f752ba34000)
 
        libglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0 (0x00007f752b724000)
 
        libboost_thread.so.1.54.0 => /usr/lib64/libboost_thread.so.1.54.0 (0x00007f752b50c000)
 
        libboost_system.so.1.54.0 => /usr/lib64/libboost_system.so.1.54.0 (0x00007f752b308000)
 
        libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f752af83000)
 
        libm.so.6 => /lib64/libm.so.6 (0x00007f752ac82000)
 
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f752aa6b000)
 
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f752a84d000)
 
        libc.so.6 => /lib64/libc.so.6 (0x00007f752a4a5000)
 
        libgmodule-2.0.so.0 => /usr/lib64/libgmodule-2.0.so.0 (0x00007f752a2a0000)
 
        libX11.so.6 => /usr/lib64/libX11.so.6 (0x00007f7529f62000)
 
        libXi.so.6 => /usr/lib64/libXi.so.6 (0x00007f7529d52000)
 
        libXfixes.so.3 => /usr/lib64/libXfixes.so.3 (0x00007f7529b4b000)
 
        libatk-bridge-2.0.so.0 => /usr/lib64/libatk-bridge-2.0.so.0 (0x00007f752991d000)
 
        libepoxy.so.0 => /usr/lib64/libepoxy.so.0 (0x00007f7529623000)
 
        libpangoft2-1.0.so.0 => /usr/lib64/libpangoft2-1.0.so.0 (0x00007f752940e000)
 
        libfontconfig.so.1 => /usr/lib64/libfontconfig.so.1 (0x00007f75291d1000)
 
        libXinerama.so.1 => /usr/lib64/libXinerama.so.1 (0x00007f7528fce000)
 
        libXrandr.so.2 => /usr/lib64/libXrandr.so.2 (0x00007f7528dc2000)
 
        libXcursor.so.1 => /usr/lib64/libXcursor.so.1 (0x00007f7528bb7000)
 
        libXcomposite.so.1 => /usr/lib64/libXcomposite.so.1 (0x00007f75289b4000)
 
        libXdamage.so.1 => /usr/lib64/libXdamage.so.1 (0x00007f75287b0000)
 
        libXext.so.6 => /usr/lib64/libXext.so.6 (0x00007f752859e000)
 
        librt.so.1 => /lib64/librt.so.1 (0x00007f7528396000)
 
        libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x00007f75280fe000)
 
        libz.so.1 => /lib64/libz.so.1 (0x00007f7527ee8000)
 
        libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f7527cc3000)
 
        libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f7527aac000)
 
        libpixman-1.so.0 => /usr/lib64/libpixman-1.so.0 (0x00007f7527801000)
 
        libEGL.so.1 => /usr/lib64/libEGL.so.1 (0x00007f75275d8000)
 
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f75273d4000)
 
        libpng16.so.16 => /usr/lib64/libpng16.so.16 (0x00007f7527197000)
 
        libxcb-shm.so.0 => /usr/lib64/libxcb-shm.so.0 (0x00007f7526f93000)
 
        libxcb-render.so.0 => /usr/lib64/libxcb-render.so.0 (0x00007f7526d89000)
 
        libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x00007f7526b69000)
 
        libXrender.so.1 => /usr/lib64/libXrender.so.1 (0x00007f752695e000)
 
        libGL.so.1 => /usr/lib64/libGL.so.1 (0x00007f75266cd000)
 
        libffi.so.4 => /usr/lib64/libffi.so.4 (0x00007f75264c3000)
 
        libpcre.so.1 => /usr/lib64/libpcre.so.1 (0x00007f752625d000)
 
        /lib64/ld-linux-x86-64.so.2 (0x0000563bbfa45000)
 
        libatspi.so.0 => /usr/lib64/libatspi.so.0 (0x00007f752602c000)
 
        libdbus-1.so.3 => /lib64/libdbus-1.so.3 (0x00007f7525de5000)
 
        libharfbuzz.so.0 => /usr/lib64/libharfbuzz.so.0 (0x00007f7525b85000)
 
        libexpat.so.1 => /usr/lib64/libexpat.so.1 (0x00007f752595a000)
 
        libbz2.so.1 => /usr/lib64/libbz2.so.1 (0x00007f752574b000)
 
        libX11-xcb.so.1 => /usr/lib64/libX11-xcb.so.1 (0x00007f7525548000)
 
        libxcb-dri2.so.0 => /usr/lib64/libxcb-dri2.so.0 (0x00007f7525343000)
 
        libxcb-xfixes.so.0 => /usr/lib64/libxcb-xfixes.so.0 (0x00007f752513c000)
 
        libgbm.so.1 => /usr/lib64/libgbm.so.1 (0x00007f7524f2d000)
 
        libwayland-client.so.0 => /usr/lib64/libwayland-client.so.0 (0x00007f7524d1f000)
 
        libwayland-server.so.0 => /usr/lib64/libwayland-server.so.0 (0x00007f7524b0d000)
 
        libdrm.so.2 => /usr/lib64/libdrm.so.2 (0x00007f75248fd000)
 
        libXau.so.6 => /usr/lib64/libXau.so.6 (0x00007f75246f9000)
 
        libglapi.so.0 => /usr/lib64/libglapi.so.0 (0x00007f75244ca000)
 
        libxcb-glx.so.0 => /usr/lib64/libxcb-glx.so.0 (0x00007f75242b2000)
 
        libxcb-dri3.so.0 => /usr/lib64/libxcb-dri3.so.0 (0x00007f75240af000)
 
        libxcb-present.so.0 => /usr/lib64/libxcb-present.so.0 (0x00007f7523eab000)
 
        libxcb-sync.so.1 => /usr/lib64/libxcb-sync.so.1 (0x00007f7523ca5000)
 
        libxshmfence.so.1 => /usr/lib64/libxshmfence.so.1 (0x00007f7523aa2000)
 
        libXxf86vm.so.1 => /usr/lib64/libXxf86vm.so.1 (0x00007f752389b000)
 
        libgraphite2.so.3 => /usr/lib64/libgraphite2.so.3 (0x00007f7523672000)
```
```
 
 
To Run environment just do the follow command
To Run environment just do the follow command
 
 
```sh
```sh
  bash run.sh
  bash run.sh
```
```
 
 
Whit this simulation you can generate till 1000 data. This a sample used to proof viability using icarus verilog like a simulator whit mixed code. More information enter in contact with some propose.
###What I have done till now
 
 
 
 - Graphical interface to a better experience
 
 - Dinamic change clock during environment execution
 
 - A set of baud rates i found across internet to test suit
 
 - A output file in html format TX SystemC 2 RX Verilog contain data compared
 
 
 
### BUGS ? :-(
 
 
 
 - Crashes when you change frequency with no specific baud rate
 
 - Log in html data goes wrong after a reset
 
 
 
### What i will do on future if i still alive :-D
 
 
 
 - Make output file in html format TX Verilog 2 RX SystemC contain data compared
 
 - Found the reason 'real one' to crash simulation on change clock
 
 - 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.