瀏覽代碼

Merge pull request #1 from calexioe/master

Made some improvements to the org files.
master
Peter Aaser GitHub 6 年之前
父節點
當前提交
22b6243f87
沒有發現已知的金鑰在資料庫的簽署中 GPG Key ID: 4AEE18F83AFDEB23
共有 5 個文件被更改,包括 22 次插入13 次删除
  1. 二進制
      README.pdf
  2. +14
    -6
      hdl.org
  3. 二進制
      hdl.pdf
  4. +8
    -7
      introduction.org
  5. 二進制
      introduction.pdf

二進制
README.pdf 查看文件


+ 14
- 6
hdl.org 查看文件

@@ -1,3 +1,5 @@
#+LATEX_HEADER: \usepackage{minted}

* Hardware description languages
Hardware description languages, HDLs for short, are used to model circuits, typically digital.
HDLs are *declarative* languages, they describe how the circuit should be constructed.
@@ -20,7 +22,8 @@
Instead of describing how text should be rendered HDLs describe how wires and components in a
circuit should be connected.
Although we have yet to introduce chisel, let's look at some code for a chisel circuit:
It is not necessary to understand what is going on in this code to continue.
It is not necessary to understand what is going on in this code to continue. The following code generates
the circuit shown in figure [[fig:counter]].
#+begin_src scala
class SimpleCounter() extends Module {
val io = IO(
@@ -36,7 +39,9 @@
}
#+end_src
Just like the HTML describes a document the chisel code describes a simple circuit shown below:
#+CAPTION: This is the caption for the next figure link (or table)
#+NAME:fig:counter
#+ATTR_LaTeX: :height 10cm :placement [H]
#+CAPTION:Simple adder circuit generated using the chisel code on the previous page.
[[./Images/counter.png]]


@@ -47,8 +52,10 @@

While the path from HTML -> Browser is fairly short it's a lot more involved for hardware description!
This shouldn't come as a suprise, displaying text is less complex than creating digital circuits.
A very simplified version of this is shown here:
#+CAPTION: Placeholder graphic
A very simplified version of this is shown in figure [[fig:flow]].
#+NAME:fig:flow
#+CAPTION: Flow using HDL.
#+ATTR_LaTeX: :height 5cm :placement [H]
[[./Images/toolchain1.png]]

@@ -90,10 +97,11 @@
"html program", but nonetheless we will refer to a scala program building chisel as chisel programs.
We expand upon our first toolchain description:
#+CAPTION: Placeholder graphic
#+NAME:fig:chisel_flow
#+CAPTION:Toolchain flow using chisel.
[[./Images/toolchain2.png]]

** Scala -> Chisel Graph Builder
The starting point, a scala program describing how to build a chisel graph.
This program is not constrained in any way, it's able to do anything any other scala program does,


二進制
hdl.pdf 查看文件


+ 8
- 7
introduction.org 查看文件

@@ -1,3 +1,4 @@
#+LATEX_HEADER: \usepackage{minted}
* Writing chisel
** Prerequisites
+ *You should have some idea of how digital logic circuits work.*
@@ -247,7 +248,7 @@
using testOnly <TAB>
Running the test should look something like this.
#+begin_src
#+begin_src text
sbt:chisel-module-template> testOnly Examples.MyIncrementTest
Run starting. Expected test count is: 0
...
@@ -355,7 +356,7 @@
Which can yield two different circuits depending on the opSel argument:
True:
[[./Images/ScalaCond1.png]]
#+begin_src
#+begin_src text
.
.
.
@@ -591,13 +592,13 @@
}
#+end_src
#+begin_src
#+begin_src text
sbt:chisel-module-template> compile:test
...
#+end_src
As promised, this code compiles, but when you run the test which actually builds a simulator you
get the following:
#+begin_src
#+begin_src text
[success] Total time: 3 s, completed Apr 25, 2019 3:15:15 PM
...
sbt:chisel-module-template> testOnly Examples.InvalidSpec
@@ -617,7 +618,7 @@
#+end_src
While scary, the actual error is only this line:
#+begin_src
#+begin_src text
firrtl.passes.CheckInitialization$RefNotInitializedException: @[Example.scala 25:21:@20.4] : [module Invalid] Reference myVec is not fully initialized.
: myVec.io.idx <= VOID
#+end_src
@@ -693,7 +694,7 @@
In order to make it extra clear the Driver has the optional "verbose" parameter set to true.
This yields the following:
#+begin_src
#+begin_src text
DelaySpec:
SimpleDelay
...
@@ -819,7 +820,7 @@
As it turns out printf can be rather misleading when using stateful circuits.
To see this in action, try running ~testOnly Examples.EvilPrintfSpec~ which yields the following
#+begin_src
#+begin_src text
In cycle 0 the output of counter is: 0
according to printf output is: 0
[info] [0.003]


二進制
introduction.pdf 查看文件


Loading…
取消
儲存