Giter VIP home page Giter VIP logo

yodl's Issues

Tool architecture question

Hi Florian,

Reading through your thesis I got a question and didn't really find the answer.

On the figure 1.3 "Main Yosys components and data structures" you mention that there are two possible places where the VHDL frontend can be placed. You write in your thesis: "Yosys makes it possible to add the VHDL frontend component at two places. First, the frontend could produce an abstract syntax tree using the predefined AST format from Yosys, thus the component would be placed above AST. Second, the VHDL component could emit an RTLIL netlist serialized to normal ASCII text. Said text would then be put into the ilang frontend that does the deserialization."

Why did you decide to develop the VHDL frontend using the second option, not the first option?

Thank you in advance for the answer.

Best regards,
Dmitry

No Makefile in . dir after running .configure, clang errors after running make in vhdlpp dir.

Also from my side thanks for this project, about time yosys had a vhdl backend.
Unfortunately, I actually also have the problem that no Makefile is created upon calling .configure, or rather, only one in ./vhdlpp is created. Calling make here very quickly results in some clang errors, after having installed clang-3.5, I get the following errors:

`clang++ -I. -I.. -I../libmisc -Isimple_tree -Imach7 -Imach7/patterns -Icatch -I/usr/local/share/yosys/include -I/usr/lib/libffi-3.2.1/include -I/usr/include/tcl8.6 -DYOSYS_ENABLE_READLINE -DYOSYS_ENABLE_PLUGINS -DYOSYS_ENABLE_TCL -DYOSYS_ENABLE_ABC -DYOSYS_ENABLE_COVER -D_YOSYS_ -DHAVE_CONFIG_H "-ggdb" "-O0" "--std=c++14" "-g" -Wall -Wextra -Wshadow -c architec.cc -o architec.o

In file included from architec.cc:22:
In file included from ./architec.h:24:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/map:61:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/stl_map.h:63:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/tuple:39:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/array:38:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/stdexcept:39:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/string:52:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/basic_string.h:2815:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/ext/string_conversions.h:43:
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/cstdio:120:11: error: no member named 'gets' in the global namespace
using ::gets;
~~^
1 error generated.
make: *** [architec.o] Error 1
`

Attacked also the config log.

It would be great to get a hint what may be wrong. Thanks!

config_log.zip

No need to dynamic_cast upon successful match

Hi Florian,

Accidentally wondered into your code today and saw you do a dynamic_cast on the subject inside Case statements as for example here:

Case(C<Entity>()){
currentEntity = dynamic_cast<Entity*>(n);
}
Case(C<ScopeBase>()){
currentScope = dynamic_cast<ScopeBase *>(n);
}

This is redundant and kills performance as you already have the properly cast subject inside a variable match0, which is local to each Case clause. The type of match0 in the first clause in the above example is Entity& and in the second clause - ScopeBase&.

If you have Match statement on multiple subjects, they are available via match0, match1 etc. respectively. One of the big contributions of Mach7 was not just the concise syntax, but also a very efficient type switch statement in which you get the results of essentially invoking dynamic_cast, which is extremely slow, at the cost of a direct jump.

Yuriy

No Makefile in the directory after running configure script

Hi Florian,

First of all thank you for starting this project!

I've tried to install it and unfortunately was stopped at the first step. After I ran
./configure
at my system I was not able to find any Makefile in the projects directory.

I am not waiting that you completely solve my problem, but could you please give some hints where to search for the issue? Probably with your 5 minutes time you can save me hours.

The config.log is attached (zipped):
config.zip

Thank you in advance.
Best regards,
Dmitry

'backends/dot/dot.h' file not found

I would like to test yodl for synthesizing a VHDL "hello world" program and upload it into the icestick board (or compatible). I am compiling yodl, but I have not found the dot backend. I've pulled the latests yosys (from master), but the dot backend is not there. It would be great if you could point me were to download it. Thanks a lot for this wonderful project! :-)

...
main.cc:24:10: fatal error: 'backends/dot/dot.h' file not found
#include <backends/dot/dot.h>
         ^
21 warnings and 1 error generated.
Makefile:143: recipe for target 'main.o' failed
make: *** [main.o] Error 1

Relicense to ISC?

Hi @forflo,

The fact that yodl is licensed under GPLv3 makes it impossible to incorporate it into yosys (which is licensed under ISC).

Are you aware of this?
How do you think about relicensing yodl to ISC?

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.