Git Product home page Git Product logo

degate's Introduction

About

Degate is a software for semi-automatic VLSI reverse engineering of digital logic in chips. Please visit the project website to learn more about Degate.

https://degate.org

This repository here has a documentary purpose. It is the repository for the old Degate version. The new Degate is on Github, too. Please follow this link:

https://github.com/DegateCommunity

Installation

You need cmake ≥2.6 in order to generate the makefiles, else you will get an error message like Unknown CMake command "FIND_PACKAGE_HANDLE_STANDARD_ARGS" and the cmake version check may fail, too.

Install dependencies on Ubuntu

On a freshly installed Ubuntu it should be sufficient to install these packages:

> sudo apt-get install cmake libboost-filesystem-dev \
     libboost-system-dev libboost-thread-dev \
     libboost-program-options-dev \
 libcppunit-dev \
 doxygen g++ gdb libgtkmm-2.4-dev libglademm-2.4-dev libxml++2.6-dev \
     libfreetype6-dev libzip-dev libgtkglextmm-x11-1.2-dev \
     libxmlrpc-c++8-dev libtiff-dev libpng-dev libcurl4-gnutls-dev

Install dependencies on Mac OS X

You need the Mac Ports (or whatever the recent port system is) and Xcode (≥ 3.1) in order to build gtkmm and related libraries. If you have installed it, you can start your terminal and run:

> sudo port install gtkmm cmake boost cppunit doxygen freetype \
  libglademm libxmlxx2 libzip xmlrpc-c gtkglextmm gnome-icon-theme

Compile degate

Get sources for Degate. Go into the main directory and type:

> cmake . && make

Copyright and Licence

Degate is released under the GNU General Public License Version 3. See LICENSE.TXT for details.

Degate is developed by Martin Schobert <[email protected]>.

degate's People

Contributors

isage avatar johndmcmaster avatar nezza avatar nitram2342 avatar xorrhks0216 avatar xvilka avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

degate's Issues

New release

Since there were many improvements since the last one it make sense to carve a new one.

Error in make process

What

Unsolvable error in the build process when calling make.

Output

cmake .

-- The C compiler identification is GNU 6.3.1
-- The CXX compiler identification is GNU 6.3.1
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Using compiler: /usr/bin/c++
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1")
-- Checking for module 'libxml++-2.6'
--   Found libxml++-2.6, version 2.40.1
-- Found TIFF: /usr/lib64/libtiff.so (found version "4.0.7")
-- Found JPEG: /usr/lib64/libjpeg.so
CMake Warning at /usr/share/cmake-3.7/Modules/FindBoost.cmake:744 (message):
  Imported targets not available for Boost version 106300
Call Stack (most recent call first):
  /usr/share/cmake-3.7/Modules/FindBoost.cmake:848 (_Boost_COMPONENT_DEPENDENCIES)
  /usr/share/cmake-3.7/Modules/FindBoost.cmake:1435 (_Boost_MISSING_DEPENDENCIES)
  lib/CMakeLists.txt:24 (find_package)


CMake Warning at /usr/share/cmake-3.7/Modules/FindBoost.cmake:744 (message):
  Imported targets not available for Boost version 106300
Call Stack (most recent call first):
  /usr/share/cmake-3.7/Modules/FindBoost.cmake:848 (_Boost_COMPONENT_DEPENDENCIES)
  /usr/share/cmake-3.7/Modules/FindBoost.cmake:1435 (_Boost_MISSING_DEPENDENCIES)
  lib/CMakeLists.txt:24 (find_package)


CMake Warning at /usr/share/cmake-3.7/Modules/FindBoost.cmake:744 (message):
  Imported targets not available for Boost version 106300
Call Stack (most recent call first):
  /usr/share/cmake-3.7/Modules/FindBoost.cmake:848 (_Boost_COMPONENT_DEPENDENCIES)
  /usr/share/cmake-3.7/Modules/FindBoost.cmake:1435 (_Boost_MISSING_DEPENDENCIES)
  lib/CMakeLists.txt:24 (find_package)


-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Boost version: 1.63.0
-- Found the following Boost libraries:
--   filesystem
--   system
--   thread
-- Checking for module 'libzip'
--   Found libzip, version 1.1.3
-- Check if the system is big endian
-- Searching 16 bit integer
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of unsigned short
-- Check size of unsigned short - done
-- Using unsigned short
-- Check if the system is big endian - little endian
-- Checking for module 'cppunit'
--   Found cppunit, version 1.13.2
CMake Warning at /usr/share/cmake-3.7/Modules/FindBoost.cmake:744 (message):
  Imported targets not available for Boost version 106300
Call Stack (most recent call first):
  /usr/share/cmake-3.7/Modules/FindBoost.cmake:848 (_Boost_COMPONENT_DEPENDENCIES)
  /usr/share/cmake-3.7/Modules/FindBoost.cmake:1435 (_Boost_MISSING_DEPENDENCIES)
  libtest/CMakeLists.txt:18 (find_package)


-- Boost version: 1.63.0
-- Found the following Boost libraries:
--   system
CMake Warning at /usr/share/cmake-3.7/Modules/FindBoost.cmake:744 (message):
  Imported targets not available for Boost version 106300
Call Stack (most recent call first):
  /usr/share/cmake-3.7/Modules/FindBoost.cmake:848 (_Boost_COMPONENT_DEPENDENCIES)
  /usr/share/cmake-3.7/Modules/FindBoost.cmake:1435 (_Boost_MISSING_DEPENDENCIES)
  tools/gate_lib_documentation/CMakeLists.txt:7 (find_package)


-- Boost version: 1.63.0
-- Found the following Boost libraries:
--   program_options
CMake Warning at /usr/share/cmake-3.7/Modules/FindBoost.cmake:744 (message):
  Imported targets not available for Boost version 106300
Call Stack (most recent call first):
  /usr/share/cmake-3.7/Modules/FindBoost.cmake:848 (_Boost_COMPONENT_DEPENDENCIES)
  /usr/share/cmake-3.7/Modules/FindBoost.cmake:1435 (_Boost_MISSING_DEPENDENCIES)
  tools/determine_module_ports/CMakeLists.txt:7 (find_package)


-- Boost version: 1.63.0
-- Found the following Boost libraries:
--   program_options
CMake Warning at /usr/share/cmake-3.7/Modules/FindBoost.cmake:744 (message):
  Imported targets not available for Boost version 106300
Call Stack (most recent call first):
  /usr/share/cmake-3.7/Modules/FindBoost.cmake:848 (_Boost_COMPONENT_DEPENDENCIES)
  /usr/share/cmake-3.7/Modules/FindBoost.cmake:1435 (_Boost_MISSING_DEPENDENCIES)
  tools/export_module/CMakeLists.txt:7 (find_package)


-- Boost version: 1.63.0
-- Found the following Boost libraries:
--   program_options
-- Checking for module 'sigc++-2.0'
--   Found sigc++-2.0, version 2.10.0
CMake Warning (dev) at gui/CMakeLists.txt:15 (link_directories):
  This command specifies the relative path

    sigc-2.0

  as a link directory.

  Policy CMP0015 is not set: link_directories() treats paths relative to the
  source dir.  Run "cmake --help-policy CMP0015" for policy details.  Use the
  cmake_policy command to set the policy and suppress this warning.
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Checking for module 'gtkmm-2.4'
--   Found gtkmm-2.4, version 2.24.4
-- Checking for module 'gthread-2.0'
--   Found gthread-2.0, version 2.50.2
-- Checking for module 'glibmm-2.4'
--   Found glibmm-2.4, version 2.50.0
-- Checking for module 'libglademm-2.4'
--   Found libglademm-2.4, version 2.6.7
-- Checking for module 'gtkglextmm-1.2'
--   Found gtkglextmm-1.2, version 1.2.0
-- Found Freetype: /usr/lib64/libfreetype.so (found version "2.7.1")
-- /usr/include/freetype2
CMake Warning at /usr/share/cmake-3.7/Modules/FindBoost.cmake:744 (message):
  Imported targets not available for Boost version 106300
Call Stack (most recent call first):
  /usr/share/cmake-3.7/Modules/FindBoost.cmake:848 (_Boost_COMPONENT_DEPENDENCIES)
  /usr/share/cmake-3.7/Modules/FindBoost.cmake:1435 (_Boost_MISSING_DEPENDENCIES)
  gui/CMakeLists.txt:59 (find_package)


CMake Warning at /usr/share/cmake-3.7/Modules/FindBoost.cmake:744 (message):
  Imported targets not available for Boost version 106300
Call Stack (most recent call first):
  /usr/share/cmake-3.7/Modules/FindBoost.cmake:848 (_Boost_COMPONENT_DEPENDENCIES)
  /usr/share/cmake-3.7/Modules/FindBoost.cmake:1435 (_Boost_MISSING_DEPENDENCIES)
  gui/CMakeLists.txt:59 (find_package)


-- Boost version: 1.63.0
-- Found the following Boost libraries:
--   system
--   date_time
-- Configuring done
-- Generating done
-- Build files have been written to: /home/marble/git-repos/degate

make

....
[ 53%] Linking CXX executable libdegate_test
cd /home/marble/git-repos/degate/libtest && /usr/bin/cmake -E cmake_link_script CMakeFiles/libdegate_test.dir/link.txt --verbose=1
/usr/bin/c++      CMakeFiles/libdegate_test.dir/FileSystemTest.cc.o CMakeFiles/libdegate_test.dir/ImageTest.cc.o CMakeFiles/libdegate_test.dir/MemoryMapTest.cc.o CMakeFiles/libdegate_test.dir/ProjectImporterTest.cc.o CMakeFiles/libdegate_test.dir/LogicModelImporterTest.cc.o CMakeFiles/libdegate_test.dir/GateLibraryImporterTest.cc.o CMakeFiles/libdegate_test.dir/QuadTreeTest.cc.o CMakeFiles/libdegate_test.dir/LMOinQTreeTest.cc.o CMakeFiles/libdegate_test.dir/LogicModelTest.cc.o CMakeFiles/libdegate_test.dir/GateLibraryExporterTest.cc.o CMakeFiles/libdegate_test.dir/LogicModelExporterTest.cc.o CMakeFiles/libdegate_test.dir/ProjectExporterTest.cc.o CMakeFiles/libdegate_test.dir/LogicModelDOTExporterTest.cc.o CMakeFiles/libdegate_test.dir/ScalingManagerTest.cc.o CMakeFiles/libdegate_test.dir/LookupSubcircuitTest.cc.o CMakeFiles/libdegate_test.dir/main.cc.o  -o libdegate_test -Wl,-rpath,/home/marble/git-repos/degate/lib -rdynamic -lcppunit -lboost_system ../lib/libdegate.so -lrt -lxml++-2.6 -lxml2 -lglibmm-2.4 -lgobject-2.0 -lglib-2.0 -lsigc-2.0 -ltiff -ljpeg -lboost_filesystem -lboost_system -lboost_thread -lxmlrpc_client++ -lxmlrpc_client -lxmlrpc++ -lxmlrpc_util++ -lxmlrpc -lxml2 -lz -llzma -lm -ldl -lxmlrpc_util -lpthread -lcurl -lxmlrpc_packetsocket -lzip -lz
../lib/libdegate.so: undefined reference to `xmlrpc_c::value_string::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >[abi:cxx11]() const'
collect2: error: ld returned 1 exit status
make[2]: *** [libtest/CMakeFiles/libdegate_test.dir/build.make:509: libtest/libdegate_test] Error 1
make[2]: Leaving directory '/home/marble/git-repos/degate'
make[1]: *** [CMakeFiles/Makefile2:177: libtest/CMakeFiles/libdegate_test.dir/all] Error 2
make[1]: Leaving directory '/home/marble/git-repos/degate'
make: *** [Makefile:131: all] Error 2

using GDB to debug degate

how can i include ./lib folder while debugging degate_bin.

GDB command 'list' can show function main or every source of ./gui folder. but ./lib folder is not included.

GDB command 'directory lib' does not work. plz let me know the solution.

Help with design of low-level HDL language

Chips engineering (and eventually reverse engineering) world suffers a lot from fragmentation - some tools produce Verilog, some VHDL, some - only subsets of them, creating low-level LLVM-like alternative will help everyone, so HDL implementations will opt only for generating this low-level HDL and routing/synthesizers accept it. LLVM or WebAssembly - you can see how many languages and targets are supported now by both. With more open source tools for FPGA this is more feasible now than ever. Most of the people suggest to adapt FIRRTL for this. There is a good paper on FIRRTL design and its reusability across different tools and frameworks. If you are familiar with binary analysis tools like rev.ng or retdec, you can see they are based on the uplifting the native code to LLVM code and applying optimization passes to make the output graph much more readable. I believe similar approach can be used for VLSI reverse engineering too. Please consider this option. So if you have any feedback - you are welcome to leave the comment in the corresponding thread.

See f4pga/ideas#19

Scaling manager crashes on background image reimport

[/Users/martin/degate/lib/LogicModelHelper.cc:195] Set image to layer.
Assertion failed: (file_exists(base_directory)), function ScalingManager, file /Users/martin/degate/lib/./ScalingManager.h, line 95.
Abort trap

build with ubuntu16.04

ubuntu 16.04 requires this patch because of location of the libraries.
this patch fixes it for ubuntu

vagrant@vagrant-ubuntu-trusty-64:~/degate$ git diff
diff --git a/gui/OpenGLRendererBase.cc b/gui/OpenGLRendererBase.cc
index f1b141e..13adcc9 100644
--- a/gui/OpenGLRendererBase.cc
+++ b/gui/OpenGLRendererBase.cc
@@ -27,10 +27,10 @@
 #include <GL/glu.h>

 #include <ft2build.h>
-#include <freetype/freetype.h>
-#include <freetype/ftglyph.h>
-#include <freetype/ftoutln.h>
-#include <freetype/fttrigon.h>
+#include <freetype2/freetype.h>
+#include <freetype2/ftglyph.h>
+#include <freetype2/ftoutln.h>
+#include <freetype2/fttrigon.h>

 #include <boost/foreach.hpp>
 #include <iostream>

compile error

/home/mowgli/바탕화면/degate/lib/FileSystem.cc:88:10: error: ‘canonical’ is not a member of ‘boost::filesystem’
/home/mowgli/바탕화면/degate/lib/FileSystem.cc: In function ‘boost::filesystem3::path naive_uncomplete(boost::filesystem3::path, boost::filesystem3::path)’:
/home/mowgli/바탕화면/degate/lib/FileSystem.cc:179:5: error: ‘canonical’ is not a member of ‘boost::filesystem’
/home/mowgli/바탕화면/degate/lib/FileSystem.cc:180:5: error: ‘canonical’ is not a member of ‘boost::filesystem’
/home/mowgli/바탕화면/degate/lib/FileSystem.cc: In function ‘std::string degate::get_realpath(const string&)’:
/home/mowgli/바탕화면/degate/lib/FileSystem.cc:89:1: warning: control reaches end of non-void function [-Wreturn-type]

warning: std::auto_ptr is deprecated

Hello!

Just for information.

Under Linux, gcc 5.4.0 reports:
warning: ‘template class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]

Thank you!

  • Alex

Gate Library crashes

Clicking “Add” in the Gate Library crashes with the Message:

degate_bin: /…/degate/gui/./RenderAreaBase.h:188: virtual void RenderAreaBase::set_viewport(int, int, int, int): Assertion `min_x < max_x' failed.
Aborted

Reproduction: fond

  • current commit 0207b83
  • compile, make, run
  • new project
  • Gate -> Gate library
  • click “add”

GPLv3 or later

Please consider adding compatibility with future versions of the GPL license.

This would be done simply by adding "(or later)" in the README file, in the line that describes the licensing.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.