| @@ -100,33 +100,33 @@ | |||||
| it does not face any restrictions in order to use chisel. | it does not face any restrictions in order to use chisel. | ||||
| In order to go from scala to a chisel graph builder the program must first be compiled, which | In order to go from scala to a chisel graph builder the program must first be compiled, which | ||||
| exposes invalid programs (for instance typos, usage befor declaration and similar) | |||||
| exposes invalid programs (for instance typos, usage before declaration and similar) | |||||
| ** Chisel Graph Builder -> Chisel Graph | ** Chisel Graph Builder -> Chisel Graph | ||||
| After compiling the program can now be run. | After compiling the program can now be run. | ||||
| There are three common outcomes from the builder: | There are three common outcomes from the builder: | ||||
| + The builder discovers an invalid circuit | |||||
| This is analogous to a HTML tag missing | |||||
| + The builder discovers an invalid circuit. | |||||
| This is analogous to a HTML tag missing. | |||||
| + A wire is unconnected | |||||
| + A wire is unconnected. | |||||
| During building the builder discovered that a wire was not connected. | During building the builder discovered that a wire was not connected. | ||||
| This is impossible to determine during compile time (unless you solve the halting problem) | |||||
| thus it is only detected during building of the circuit. | |||||
| This is impossible to determine during compile time (unless you solve the halting problem). | |||||
| Thus, it is only detected during building of the circuit. | |||||
| + The circuit is well formed and can be instantiated. | |||||
| + The circuit is well-formed and can be instantiated. | |||||
| ** Chisel Graph -> Simulator | ** Chisel Graph -> Simulator | ||||
| After the circuit is verified it can now be used by a simulator. | After the circuit is verified it can now be used by a simulator. | ||||
| Several simulators are available and have different advantages and disadvantages. | Several simulators are available and have different advantages and disadvantages. | ||||
| If nothing else is specified the backend used is FIRRTL | |||||
| If nothing else is specified, the backend used is FIRRTL. | |||||
| The simulator allows us to test how our circuit will react as its inputs are changed, | The simulator allows us to test how our circuit will react as its inputs are changed, | ||||
| allowing us to verify the correctness of our designs. | allowing us to verify the correctness of our designs. | ||||
| This is *HUGE* in HDL land as this guarantee does not hold for many HDLs (VHDL and verilog)! | |||||
| In the days of yore it was very common to see circuits being well behaved in the simulator | |||||
| and misbehaving on an FPGA, but this is not the case with chisel. | |||||
| This is *HUGE* in HDL land as this guarantee does not hold for many HDLs (including VHDL and Verilog)! | |||||
| In the days of yore it was very common to see circuits being well-behaved in the simulator | |||||
| and misbehaving on an FPGA, but this is not the case with Chisel. | |||||
| The reason for this is that chisel adopts a fully synchronous model, but it is sufficient that | The reason for this is that chisel adopts a fully synchronous model, but it is sufficient that | ||||
| you know that chisel won't lie to you like VHDL would. | you know that chisel won't lie to you like VHDL would. | ||||