Giter VIP home page Giter VIP logo

q2d's Introduction

q2d

An editor for digital circuit schematics. The focus lies on circuits build from configurable components such as LUTs or CMUXs. It can evaluate if a given behaviour can be fulfilled by the designed circuit.

Current State

Not dead, only asleep. Due to some questionable choices and lack of Qt-knowledge the current version has some design flaws. A better design is in active development and a rewrite into q2d 0.2 has started in December 2015 and is currently ongoing.

Features

  • Support for user-generated components
  • Automatically generated circuit symbols for components
    • Alternatively, custom symbols can be specified if desired

Releases

Currently the application is in the early alpha stage. Releses are provided as source code only and can be found here (incl. release notes).

Dependencies

Required to build and run:

q2d requires external tools to be able to solve the mapping of functions onto circuit designs:

Their source code must be put in the main q2d directory or the q2d.pro file must be adjusted to contain the correct paths.

Component descriptor files

These files describe components that can be used within the tool. For those, who do not want to write these files by hand, a collection of pre-fabricated descriptor files can be found in the q2d component repository.

Misc

Pronounced as きゅとで. At least for now.

q2d's People

Contributors

madmason avatar mhaehnel avatar preusser avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

mhaehnel madmason

q2d's Issues

Customized Output Format for Computed Configurations

Provide a way to specify a customized output format for the computed configuration of a component.

A first step could be a basic format string, which would, for instance, allow the representation of the configuration of a LUT as a hexadecimal INIT vector, which could be pasted into the instantiation of a corresponding primitive in an HDL design. Another option would be the introduction of graphical items to a component's schematic that are only drawn conditionally according to the computed configuration. Such a feature would, for instance, allow the intuitive representation of the selected path of a configurable multiplexer (CMUX). Ultimately, the output of a complete netlist implementation of the target fuction that instantiates configured device primitives can be envisioned.

Introduce libraries

Libraries are fixed sets of components that have a given hierarchy and can be imported as whole.

Technically a library is a special case of an component category.

Rework handling of Component type source paths

At the moment, component type sources are described as absolute paths. This is neither system agnostc nor flexible.

Idea: change to URIs or (at least) to paths relative to the component directory.

This also involves the handling of categories.

Split ComponentFactory

Turn the ComponentFactory into a composite. Create a type loader and a type instantiator.
Of each of these, multiple implementations might exist and be active at the same time.

This might come in handy, when the components might also be given in other formats (VHDL, XML…) or when introducing parametrized types.

Rename FunctionDescriptor

This class abstract partial Component Behaviour Descriptors.
These are not functions at all.
So: Rename the class and update the wiki and documentation.

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.