Program for drawing VHDL block diagrams? [closed] - diagram

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 4 years ago.
Improve this question
Is there any free program out there that can parse a collection of VHDL files and build a block diagram from them?
I'm looking more for a program that will build a block diagram image to go along with the documentation for the hierarchy, similar to the way javadoc builds a class diagram after parsing the documentation for a series of classes.

Altera's Quartus can compile VHDL and provide you with the top-level schematic blocks, representing the VHDL signals. Ditto with Xilinx ISE. Its not open source software, but it is free to download and use.

There's nothing open-sourced anyways. A while back, I looked for something simliar for verilog designs with no success.

Synplify Pro and Synplify Premier has an RTL viewer and is my preferred program of the ones I have seen. I have also seen RTL viewers in Xilinx ISE, Altera's Quartus and Mentor's HDL designer.

Mentor's HDL designer is for this purpose, but it's not free, although you can probably get a discounted student version.
As thetrus noted Quartus has an RTL viewer as well, but the quality of diagrams produced by it is pretty poor - you can't really use them for documentation. They're most useful for catching synthesis bugs.

HDL Works in Ede Netherlands has EASE which is similar to Mentor's HDL Designer
but much more nimble and far less expensive, I have used both. Of the two, EASE is far easier to get going with and maintain from my experience. I found the Mentor tool hard to use and unstable but I assume it has since been improved. EASE is much more intuitive and the focus is still on the code and less on tool use. Unlike the post-synthesis tools from Xilinx, Synopsys and others, the HDL Works tool and the Mentor HDL Designer are pre-synthesis. A tool that is somewhat in-between pre and post is Sigasi. I have seen but as yet have not used the latter. It looks promising.
Links:
https://www.hdlworks.com/products/ease/index.html
http://www.sigasi.com/

Related

Verilog Program Editor and Compiler [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
This semester, I have a Hardware course which requires the use of Verilog. I Googled for some free Verilog IDEs in which I can write Verilog programs and also compile and run them (I think the right word is "simulate", but forgive me, I'm still used to C!), but I didn't get anything.
Could you suggest some free software for Verilog program writing and simulation on Windows 7? My college provides some software called Xilinx in the college PCs, but I think that's not a free software. And they are not willing to provide it to us on our personal computers as well. So any advice will be greatly appreciated!
Also, I am a newbie to Verilog. If you know any great resources for beginners to master Verilog, at least to some extent, then please do share them here as well! Thanks!
There are professional tool provider such as Modelsim and Aldec who provide something like an IDE - with features like:
source code editor, and you can set breakpoints in it.
running compilation process
running simulation
viewing waveforms and other outputs
For Eclipse, I was aware of nothing - then RossRogers' comment pointed me to DVT Eclipse - neither of us have used it though :)
Personally, I use Emacs, a makefile and then run the simulator "by hand"
Have a look at http://iverilog.icarus.com It's a free simulator and synthesis tool. Any text editor will do. Many people like vi, but you also use something like sublime text.
EDIT:
If you want a complete IDE, there is Xilinx WebPack. It includes a simulator. It is free (as in free beer) but limited compared to the complete Xilinx software. But more than enough to get you started. If your college is using the same software, you should probably try this.

Are there any software to generate UML Diagrams from analyzing code? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 4 years ago.
Improve this question
I have a complex application with lots of class files. I'm using Doxygen to generate some documentation, but would love a tool that can statically analyze my code and generate some UML diagrams. Not sure if a product like this exists, but would love to hear the community input.
There are many tools doing exactly this on various levels of quality. I would like to mention, that generating UML diagrams for documentation purposes might not be a great idea, especially in large projects. The problem is, that in complex code bases, there are many relationships between classes a lot of code is called etc. basically any diagram type you choose might in a particular project look bloated. Confusing diagram might be worse than well structured textual documentation. Basically what I am trying to say is, that main idea of modeling is to abstract from unimportant details and deciding automatically what is unimportant is not easy and often project dependent, therefore it is most of the times more useful to create far less diagrams manually, which will conatin much more useful information.
Visual Studio 2010 kind of has this for C# and VB projects, and Visio 2003 back in the day could do them for .NET and C++ projects... Other tools, I don't know.
If you're asking about class diagrams, Sparx Enterprise Architect can do this for several languages, including Visual Basic, C#, Java and Python.
I also know that it has the ability to generate sequence diagrams by running .NET code in the debugger, but I don't know if that feature is available for other languages.
UMLGraph or apiviz may help if you're working in a java environment.
hth.

What are the "must reads" online for learning the ins and outs of multithreading? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 4 years ago.
Improve this question
Over the last couple months I've been working with programs that involve multi-threading aspects to them. Multi-threaded programs a very new to me and while I understand the crude basics, how to go about designing a multi-threaded program is still beyond my skill-set. I would like to know what resources that people have found online that gave you an "Omg! That makes total sense now!" moment for this topic.
This should probably be a community wiki but due to the latest changes to SO, I can't make it one (that I know of at least).
Edit: I'm aiming toward reading that is language-independent if possible. Though I don't want to discurage anything that might be particular of a language if it is informative enough to general multi-threading program design.
Herb Sutter has a Dr. Dobbs column called Effective Concurrency that's terrific. It's a little C++-centric but the underlying lessons are well explained and are bite-sized so you don't get overwhelmed.
Threading must-reads
The Threads FAQ, by Bryan O'Sullivan (hacker extraordinaire)
The Problem with Threads, by Edward A. Lee (on how and why non-deterministic multi-threading is so difficult)
Concurrency must-reads
The Free Lunch Is Over, by Herb Sutter (on the pragmatic importance of concurrency)
The C10K problem, by Dan Kegel (if you plan to do any large-scale network programming)
Here are some basic starting points:
I don't want to state the obvious, but there's the Wikipedia article: Wikipedia: Multithreading
There's also a relatively old Linux article here: Multithreading and Linux
and a POSIX threads tutorial: POSIX threads tutorial
For Windows, here's a great MSDN article: What Every Dev Must Know About Multithreaded Apps
If you want to go get some decent cross-platform multithreading books, there are:
Threads Primer: A Guide to Multithreaded Programming
Modern Multithreading : Implementing, Testing, and Debugging Multithreaded Java and C++/Pthreads/Win32 Programs
Porgramming POSIX Threads
I see you have been active in C/C++ tags here. In that case the Boost.Thread documentation might be interesting. This provides portable implementations of important threading concepts and states clearly how to use them. If I was starting out as a C++ multithreading programmer, I would absolutely not build this stuff myself but use this library. The author of the library (active on Stack Overflow under his real name) has a book coming out soon, which appears to be available online now for a fee.

High quality software examples [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
One of the best ways to learn about programming is reading high quality code/projects from great engineers. Which open-source projects do you think is worth looking at? I mean, that code that you can print and sit under a tree with a glass of wine and enjoy reading.
If you can, also specify if the software is great to look at because its documentation, design, UML diagrams or just plain code. I believe UML is not very common within open-source projects.
Is there such a thing as a project branch that polishes code and design with the sole objective to give other programmers a great example of great software?
I'm pretty impressed with the Chrome source code. Note: I work on the Chrome team but I'm just one of many. I've learned quite a bit from other people's code, the classes used, their design, the methods of unit testing, integration testing, their code review system, their continuous build system and more.
At the risk of being perceived as a Jon Skeet fanboy, I've looked to his miscellaneous utilities libraries for examples of clear, self-contained, well-documented and well-tested code. .NET, if it matters.
Sharp develop is very well designed and written and comes with a book explaining the design.
It is also very important to understand various different software quality characteristics when you are reading the code samples. This would help you to identify why the coding is good, and which aspect of software quality it gets associated with?
You may want to check out eight different characteristics of software quality specified by ISO 25000 series, also termed as SQUARE specifications.

What's available for livecoding music? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
I recently found out about livecoding where someone will program something on the fly to make music. Apparently there are special languages and libraries for this sort of thing. So I'd like to know if anyone has any experience with it and if they have any languages, libraries or tools to suggest.
Check these resources:
SuperCollider (Environment and programming language for real time audio synthesis and algorithmic composition)
ChucK (Strongly-timed, Concurrent, and On-the-fly Audio Programming Language)
TOPLAP (temporary organization for the proliferation of live audio programming)
I want to second the recommendation for Impromptu as well:
Wholesale utilization of your Mac: audio units, camera, openGL...etc (I actually ended up buying a Mac after playing around with this app.)
Very simple and easy to start : The tutorial gets to the fun fast. Perhaps the clumsiest aspect is getting the keybindings installed : (you will need to install in ~/Library/KeyBindings/DefaultKeyBinding.dict)
It uses Scheme(Lisp dialect) a highly iterative language, suitable for prototyping apps one line at a time.
Now there is also Sonic Pi which is a lot of fun.
It is an Open Source live coding environment based on Ruby that runs in a variety of environments including the Raspberry Pi and is build on top of the Supercollider synthesis engine.
Sonic Pi has been designed with the aim to find a harmonious balance between three core principles:
Simple enough for the 10 year old within you
Joyful enough for you to lose yourself through play
Powerful enough for your own expressions
Sample code:
loop do
sample :perc_bell, rate: (rrand 0.125, 1.5)
sleep rrand(0, 2)
end
You should check out RTcmix (Real-time Cmix). I saw a great livecoding demo by one its developers, but I haven't been able to find any videos online.
I've been using RTcmix with its Python front-end module to experiment with algorithmic composition. It's very easy to use and has nice results.
EDIT
I've been investigating livecoding further recently, and RTcmix is not intended for this, but in some cases, it can work. It's much better for pre-processed scores. Sorry for any confusion. :)

Resources