mirror of
https://github.com/hneemann/Digital.git
synced 2025-09-09 21:05:46 -04:00
makes the download button easier to see
This commit is contained in:
parent
81643abe43
commit
86896b81a7
59
README.md
59
README.md
@ -1,6 +1,7 @@
|
|||||||
|
[](https://github.com/hneemann/Digital/releases/latest/download/Digital.zip)
|
||||||
|
|
||||||

|

|
||||||
[](https://codecov.io/gh/hneemann/Digital)
|
[](https://codecov.io/gh/hneemann/Digital)
|
||||||
[](https://github.com/hneemann/Digital/releases/latest/download/Digital.zip)
|
|
||||||
|
|
||||||
# Digital #
|
# Digital #
|
||||||
|
|
||||||
@ -34,39 +35,30 @@ These are the main features of Digital:
|
|||||||
- Analysis and synthesis of combinatorial and sequential circuits.
|
- Analysis and synthesis of combinatorial and sequential circuits.
|
||||||
- Simple testing of circuits: You can create test cases and execute them to verify your design.
|
- Simple testing of circuits: You can create test cases and execute them to verify your design.
|
||||||
- Many examples: From a transmission gate D-flip-flop to a complete (simple) MIPS-like single cycle CPU.
|
- Many examples: From a transmission gate D-flip-flop to a complete (simple) MIPS-like single cycle CPU.
|
||||||
- Includes a simple editor for finite state machines (FSM). A FSM can then be converted to a state
|
- Includes a simple editor for finite state machines (FSM). A FSM can then be converted to a state transition table and a circuit implementing the FSM (See [screenshot](#additional-screenshots)).
|
||||||
transition table and a circuit implementing the FSM (See [screenshot](#additional-screenshots)).
|
|
||||||
- Contains a library with the most commonly used 74xx series integrated circuits.
|
- Contains a library with the most commonly used 74xx series integrated circuits.
|
||||||
- Supports generic circuits. This allows the creation of circuits that can be parameterized when used.
|
- Supports generic circuits. This allows the creation of circuits that can be parameterized when used. In this way, it is possible, for e.g., to create a barrel shifter with a selectable bit width.
|
||||||
In this way, it is possible, for e.g., to create a barrel shifter with a selectable bit width.
|
|
||||||
- Good performance: The example processor can be clocked at 120 kHz.
|
- Good performance: The example processor can be clocked at 120 kHz.
|
||||||
- Supports large circuits: The "Conway's Game of Life" example consists of about 2400 active components
|
- Supports large circuits: The "Conway's Game of Life" example consists of about 2400 active components and works just fine.
|
||||||
and works just fine.
|
- It is possible to use custom components which are implemented in Java and packed in a jar file. See this [example](https://github.com/hneemann/digitalCustomComponents) for details.
|
||||||
- It is possible to use custom components which are implemented in Java and packed in a jar file.
|
- Simple remote [TCP interface](https://github.com/hneemann/Assembler/blob/master/src/main/java/de/neemann/assembler/gui/RemoteInterface.java)
|
||||||
See this [example](https://github.com/hneemann/digitalCustomComponents) for details.
|
which e.g. allows an [assembler IDE](https://github.com/hneemann/Assembler) to control the simulator.
|
||||||
- Simple remote [TCP interface](https://github.com/hneemann/Assembler/blob/master/src/main/java/de/neemann/assembler/gui/RemoteInterface.java)
|
|
||||||
which e.g. allows an [assembler IDE](https://github.com/hneemann/Assembler) to control
|
|
||||||
the simulator.
|
|
||||||
- Components can be described using VHDL or Verilog. The open source VHDL simulator [ghdl](http://ghdl.free.fr/)
|
- Components can be described using VHDL or Verilog. The open source VHDL simulator [ghdl](http://ghdl.free.fr/)
|
||||||
needs to be installed to simulate a VHDL defined component, and the open source Verilog simulator
|
needs to be installed to simulate a VHDL defined component, and the open source Verilog simulator
|
||||||
[Icarus Verilog](http://iverilog.icarus.com/) is required to simulate a Verilog defined component.
|
[Icarus Verilog](http://iverilog.icarus.com/) is required to simulate a Verilog defined component.
|
||||||
- A circuit can be exported to VHDL or Verilog. There is also direct support for the
|
- A circuit can be exported to VHDL or Verilog. There is also direct support for the
|
||||||
[BASYS3 Board](https://reference.digilentinc.com/reference/programmable-logic/basys-3/start) and the
|
[BASYS3 Board](https://reference.digilentinc.com/reference/programmable-logic/basys-3/start) and the
|
||||||
[TinyFPGA BX](https://tinyfpga.com/) board.
|
[TinyFPGA BX](https://tinyfpga.com/) board. See the documentation for details. The examples folder contains a variant of the example CPU, which runs on a BASYS3 board.
|
||||||
See the documentation for details.
|
|
||||||
The examples folder contains a variant of the example CPU, which runs on a BASYS3 board.
|
|
||||||
- Direct export of JEDEC files which you can flash to a [GAL16v8](https://www.microchip.com/wwwproducts/en/ATF16V8C)
|
- Direct export of JEDEC files which you can flash to a [GAL16v8](https://www.microchip.com/wwwproducts/en/ATF16V8C)
|
||||||
or a [GAL22v10](https://www.microchip.com/wwwproducts/en/ATF22V10C). These chips are somewhat outdated (introduced in 1985!)
|
or a [GAL22v10](https://www.microchip.com/wwwproducts/en/ATF22V10C). These chips are somewhat outdated (introduced in 1985!)
|
||||||
but sufficient for beginners exercises, easy to understand and well documented. Also the
|
but sufficient for beginners exercises, easy to understand and well documented. Also the
|
||||||
[ATF150x](https://www.microchip.com/design-centers/programmable-logic/spld-cpld/cpld-atf15xx-family) chips are
|
[ATF150x](https://www.microchip.com/design-centers/programmable-logic/spld-cpld/cpld-atf15xx-family) chips are
|
||||||
supported which offer up to 128 macro-cells and in system programming.
|
supported which offer up to 128 macro-cells and in system programming. See the [documentation](https://github.com/hneemann/Digital/releases/latest) for details.
|
||||||
See the [documentation](https://github.com/hneemann/Digital/releases/latest) for details.
|
- SVG export of circuits, including a LaTeX/Inkscape compatible SVG version (see
|
||||||
- SVG export of circuits, including a LaTeX/Inkscape compatible SVG version (see
|
|
||||||
[ctan](https://www.ctan.org/tex-archive/info/svg-inkscape))
|
[ctan](https://www.ctan.org/tex-archive/info/svg-inkscape))
|
||||||
- No legacy code.
|
- No legacy code.
|
||||||
- Good test coverage (about 80%; Neither the GUI tests nor the HDL simulator integration tests are running on the
|
- Good test coverage (about 80%; Neither the GUI tests nor the HDL simulator integration tests are running on the
|
||||||
Travis-CI build servers, so CodeCov measures only about 50%).
|
Travis-CI build servers, so CodeCov measures only about 50%). Almost all examples contain test cases which ensure that they work correctly.
|
||||||
Almost all examples contain test cases which ensure that they work correctly.
|
|
||||||
|
|
||||||
The latest changes that have not yet been released are listed in the
|
The latest changes that have not yet been released are listed in the
|
||||||
[release notes](distribution/ReleaseNotes.txt).
|
[release notes](distribution/ReleaseNotes.txt).
|
||||||
@ -117,8 +109,7 @@ In 2014, Carl Burch finally [discontinued](http://www.cburch.com/logisim/retire-
|
|||||||
Logisim. Since Logisim was released as open source, there are a number of forks to continue the work on Logisim:
|
Logisim. Since Logisim was released as open source, there are a number of forks to continue the work on Logisim:
|
||||||
|
|
||||||
- [Logisim-Evolution](https://github.com/reds-heig/logisim-evolution) by people of a group of swiss institutes
|
- [Logisim-Evolution](https://github.com/reds-heig/logisim-evolution) by people of a group of swiss institutes
|
||||||
(Haute École Spécialisée Bernoise, Haute École du paysage, d'ingénierie et d'architecture de Genève,
|
(Haute École Spécialisée Bernoise, Haute École du paysage, d'ingénierie et d'architecture de Genève, and Haute École d'Ingénierie et de Gestion du Canton de Vaud)
|
||||||
and Haute École d'Ingénierie et de Gestion du Canton de Vaud)
|
|
||||||
- [Logisim](https://github.com/lawrancej/logisim) by Joseph Lawrance at Wentworth Institute of Technology, Boston, MA
|
- [Logisim](https://github.com/lawrancej/logisim) by Joseph Lawrance at Wentworth Institute of Technology, Boston, MA
|
||||||
- [Logisim-iitd](https://code.google.com/archive/p/logisim-iitd/) from the Indian Institute of Technology Delhi
|
- [Logisim-iitd](https://code.google.com/archive/p/logisim-iitd/) from the Indian Institute of Technology Delhi
|
||||||
- [Logisim](http://www.cs.cornell.edu/courses/cs3410/2015sp/) from the CS3410 course of the Cornell University
|
- [Logisim](http://www.cs.cornell.edu/courses/cs3410/2015sp/) from the CS3410 course of the Cornell University
|
||||||
@ -195,7 +186,7 @@ Because of that approach for instance a embedded AND gate in a sub circuit behav
|
|||||||
inserted at top level although there is actually no difference between these two variants from the
|
inserted at top level although there is actually no difference between these two variants from the
|
||||||
simulation models perspective.
|
simulation models perspective.
|
||||||
Logisim works somewhat different, which sometimes leads to surprises like unexpected signal propagation times and
|
Logisim works somewhat different, which sometimes leads to surprises like unexpected signal propagation times and
|
||||||
which makes it difficult to use bidirectional pins.
|
which makes it difficult to use bidirectional pins.
|
||||||
|
|
||||||
### Performance ###
|
### Performance ###
|
||||||
|
|
||||||
@ -243,7 +234,7 @@ over and over again.
|
|||||||
## How do I get set up? ##
|
## How do I get set up? ##
|
||||||
|
|
||||||
If you want to build Digital from the source code:
|
If you want to build Digital from the source code:
|
||||||
|
|
||||||
* At first clone the repository.
|
* At first clone the repository.
|
||||||
* A JDK (at least JDK 8) is required (either the Oracle JDK or OpenJDK)
|
* A JDK (at least JDK 8) is required (either the Oracle JDK or OpenJDK)
|
||||||
* maven is used as build system, so the easiest way is to install [maven](https://maven.apache.org/).
|
* maven is used as build system, so the easiest way is to install [maven](https://maven.apache.org/).
|
||||||
@ -258,19 +249,15 @@ If you want to build Digital from the source code:
|
|||||||
* Before you send a pull request, make sure that at least `mvn install` runs without errors.
|
* Before you send a pull request, make sure that at least `mvn install` runs without errors.
|
||||||
* Don't introduce new findbugs issues.
|
* Don't introduce new findbugs issues.
|
||||||
* Try to keep the test coverage high. The target is a minimum of 80% test coverage.
|
* Try to keep the test coverage high. The target is a minimum of 80% test coverage.
|
||||||
* So far, there are only a few GUI tests, so that the overall test coverage is only slightly below 80%.
|
* So far, there are only a few GUI tests, so that the overall test coverage is only slightly below 80%. Try to keep the amount of untested GUI code low.
|
||||||
Try to keep the amount of untested GUI code low.
|
|
||||||
|
|
||||||
## Credits ##
|
## Credits ##
|
||||||
|
|
||||||
Many thanks to the following persons for their help:
|
Many thanks to the following persons for their help:
|
||||||
|
|
||||||
* Ivan de Jesus Deras Tabora from the Universidad Tecnológica Centroamericana in Honduras has
|
* Ivan de Jesus Deras Tabora from the Universidad Tecnológica Centroamericana in Honduras has implemented the verilog code generator and almost all the necessary verilog templates.
|
||||||
implemented the verilog code generator and almost all the necessary verilog templates.
|
* Theldo Cruz Franqueira from the Pontifícia Universidade Católica de Minas Gerais in Brazil has provided the Portuguese translation.
|
||||||
* Theldo Cruz Franqueira from the Pontifícia Universidade Católica de Minas Gerais in Brazil
|
* Ángel Millán from the Instituto de Educación Secundaria Ies Virgen de Villadiego in Peñaflor (Sevilla), Spain has provided the Spanish translation.
|
||||||
has provided the Portuguese translation.
|
|
||||||
* Ángel Millán from the Instituto de Educación Secundaria Ies Virgen de Villadiego in Peñaflor (Sevilla), Spain
|
|
||||||
has provided the Spanish translation.
|
|
||||||
* XinJun Ma ([@itviewer](https://github.com/itviewer)) has provided the Chinese translation.
|
* XinJun Ma ([@itviewer](https://github.com/itviewer)) has provided the Chinese translation.
|
||||||
* Nicolas Maltais ([@maltaisn](https://github.com/maltaisn)) has provided the French translation.
|
* Nicolas Maltais ([@maltaisn](https://github.com/maltaisn)) has provided the French translation.
|
||||||
* Luca Cavallari ([@psiwray](https://github.com/psiwray)) has provided the Italian translation.
|
* Luca Cavallari ([@psiwray](https://github.com/psiwray)) has provided the Italian translation.
|
||||||
|
@ -1,8 +1,86 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="112" height="20">
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
<rect width="112" height="20" rx="3" fill="#4c1"/>
|
<svg
|
||||||
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
<!--text x="53" y="14">Download</text-->
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
<text x="52.5" y="15" fill="#010101" fill-opacity=".3">Download</text>
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
<text x="52.5" y="14">Download</text>
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="208.22475"
|
||||||
|
height="52.782932"
|
||||||
|
version="1.1"
|
||||||
|
id="svg10"
|
||||||
|
sodipodi:docname="Download.svg"
|
||||||
|
inkscape:version="1.0.2 (e86c870879, 2021-01-15)">
|
||||||
|
<metadata
|
||||||
|
id="metadata16">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<defs
|
||||||
|
id="defs14"/>
|
||||||
|
<sodipodi:namedview
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1"
|
||||||
|
objecttolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-width="1644"
|
||||||
|
inkscape:window-height="896"
|
||||||
|
id="namedview12"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="3.2831296"
|
||||||
|
inkscape:cx="93.802726"
|
||||||
|
inkscape:cy="15.705437"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="25"
|
||||||
|
inkscape:window-maximized="0"
|
||||||
|
inkscape:current-layer="svg10"
|
||||||
|
fit-margin-top="0"
|
||||||
|
fit-margin-left="0"
|
||||||
|
fit-margin-right="0"
|
||||||
|
fit-margin-bottom="0"/>
|
||||||
|
<rect
|
||||||
|
width="208.22475"
|
||||||
|
height="52.782932"
|
||||||
|
rx="5.5774488"
|
||||||
|
fill="#44cc11"
|
||||||
|
id="rect2"
|
||||||
|
x="0"
|
||||||
|
y="0"
|
||||||
|
style="stroke-width:2.21508"/>
|
||||||
|
<g
|
||||||
|
id="g844"
|
||||||
|
transform="translate(-1.2255319,0.78171794)">
|
||||||
|
<g
|
||||||
|
fill="#ffffff"
|
||||||
|
text-anchor="middle"
|
||||||
|
font-family="'DejaVu Sans', Verdana, Geneva, sans-serif"
|
||||||
|
font-size="11px"
|
||||||
|
id="g8"
|
||||||
|
transform="matrix(3.0563172,0,0,3.0563172,-55.241866,-6.1734137)">
|
||||||
|
<!--text x="53" y="14">Download</text-->
|
||||||
|
<text
|
||||||
|
x="52.5"
|
||||||
|
y="15"
|
||||||
|
fill="#010101"
|
||||||
|
fill-opacity="0.3"
|
||||||
|
id="text4">Download</text>
|
||||||
|
<text
|
||||||
|
x="52.5"
|
||||||
|
y="14"
|
||||||
|
id="text6">Download</text>
|
||||||
</g>
|
</g>
|
||||||
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 418 B After Width: | Height: | Size: 2.6 KiB |
Loading…
x
Reference in New Issue
Block a user