Lecture 1
Intro to Module and Tool-Chain
Module Introduction, Semester Schedule, Feedback toExercis, Introduction to Tool-Chain, Information toLiterature
BTF4220 - Digital Electronics 2Feb. 20, 2015
Andreas HabeggerBern University of Applied Sciences
Intro to Moduleand Tool-Chain
AndreasHabegger
Modul Introduction
Tool IntroductionOur environment
VCS Introduction
Git Introduction
Hardware Design
Rev. ab24f70 – 1.2
Agenda
Modul Introduction
Tool IntroductionOur environment VCS IntroductionGit Introduction
Hardware Design
Intro to Moduleand Tool-Chain
AndreasHabegger
Modul Introduction
Tool IntroductionOur environment
VCS Introduction
Git Introduction
Hardware Design
Rev. ab24f70 – 1.3
Module Description
Accordingly to the official module description :
https://www.ti.bfh.ch/fileadmin/modules/BTF4220-de.xml
The following major topics are going to be covered in thecourse:
Digital function blocks such as counters, multiplexers,comparators, adders, etc.
VHDL syntax and design methods with VHDL
Get practical experience during labor exercises
“Test-bench and simulation of VHDL designed circuits”
Notes
Notes
Notes
Intro to Moduleand Tool-Chain
AndreasHabegger
Modul Introduction
Tool IntroductionOur environment
VCS Introduction
Git Introduction
Hardware Design
Rev. ab24f70 – 1.4
Module Documents
Intro to Moduleand Tool-Chain
AndreasHabegger
Modul Introduction
Tool IntroductionOur environment
VCS Introduction
Git Introduction
Hardware Design
Rev. ab24f70 – 1.5
Module Elements
AdvancedElectronics
Digital
lecture[2/w]
exercises
laboratory[2/s]
Analogue lecture[2/w]
exerciseslaboratory
[2/s]
Intro to Moduleand Tool-Chain
AndreasHabegger
Modul Introduction
Tool IntroductionOur environment
VCS Introduction
Git Introduction
Hardware Design
Rev. ab24f70 – 1.6
Module Grading
Advanced Electronics [BTF4220]
Analogue DigitalExam [40%] Lab [10%] Exam [40%] Lab [10%]
A : ≥ 90%
B : ≥ 80%
C : ≥ 70%
D : ≥ 60%
E : ≥ 50%
FX : > 35%
F : ≤ 35%
The module grading is described more detailed by the document BTF4220 “Berechnung derModulnote/Calculation de la note final”.
It is the students responsibility to get missed information, documents and to follow the course carefully.
Notes
Notes
Notes
Intro to Moduleand Tool-Chain
AndreasHabegger
Modul Introduction
Tool IntroductionOur environment
VCS Introduction
Git Introduction
Hardware Design
Rev. ab24f70 – 1.7
Module ScheduleDate WoS WoY Description20.02.2015 1 8 module introduction27.02.2015 2 9 VHDL intro and design units06.03.2015 3 10 programming paradigm13.03.2015 4 11 combinational logic and test-
bench20.03.2015 5 12 hands-on combinational logic
(parallel adder)27.03.2015 6 13 theorie sequential logic03.04.2015 – 16 easter holidays10.04.2015 7 14 hands-on sequential logic (serial
adder)17.04.2015 8 15 VHDL operators and libraries24.04.2015 9 17 data objects01.05.2015 10 18 theorie FSM models08.05.2015 11 19 hands-on FSM models15.05.2015 12 20 Special project week22.05.2015 13 21 basic digital circuits29.05.2015 14 22 hands-on (calculator and/or oth-
ers)05.06.2015 15 23 exam12.06.2015 16 24 exam feedback
There is a special physics workshop (no course)Individual preparation is without lecturer on the Ascension day[Auffahrt] (WoS 14 WoY 22)Maybe individual hands-on lecture the Friday before Easterholidays
Intro to Moduleand Tool-Chain
AndreasHabegger
Modul Introduction
Tool IntroductionOur environment
VCS Introduction
Git Introduction
Hardware Design
Rev. ab24f70 – 1.8
Software used during the course
OS We will work on Linux only (Ubuntu LTS or Debianstable). Get information to some Linux basics on ourwiki https://linux.bfh.ch/
CS There is a basic command overview on coursewebsite. (home work: install BFH Linux, Debian, orUbuntu | Get some initial experience to the describedLinux commands)
Editor I recommend using Emacs as text editor. It is an opensource and multi-platform software and very handy forVHDL toohttp://www.gnu.org/software/emacs/.Alternatively use systems default GEdit – syntaxhighlighting only.
Make We will build our designs on command-line by usingthe build-system makehttp://www.jfranken.de/homepages/johannes/vortraege/make_inhalt.en.html(home work : Read and do the examples given)
Intro to Moduleand Tool-Chain
AndreasHabegger
Modul Introduction
Tool IntroductionOur environment
VCS Introduction
Git Introduction
Hardware Design
Rev. ab24f70 – 1.9
Software used during the course
VM As a vitalization environment use VirtualBox it is freeand intuitive as well as multi-platform compatiblehttps://www.virtualbox.org/, if you do notwant installing a bearmetal Linux.
VCS You will use Git to get the course code snippets aswell as proposed solutions. (home work : Read thefirst chapters in online, opensource Git tutorial book)
Git is more than a method distributing code snippets. We recommend using Git for your daily business inengineering where it comes to source code or other plain text resource management.
Notes
Notes
Notes
Intro to Moduleand Tool-Chain
AndreasHabegger
Modul Introduction
Tool IntroductionOur environment
VCS Introduction
Git Introduction
Hardware Design
Rev. ab24f70 – 1.10
What means VCS
VCS : Version Control System
It records chances to a file or file-set over time
Not only for source files also binary files can be controlled by aVCS e.g. as a web designer → tracking images
Allows to revert to a previous state
Shows who modified what when
You can recover easily
Very little overhead
Intro to Moduleand Tool-Chain
AndreasHabegger
Modul Introduction
Tool IntroductionOur environment
VCS Introduction
Git Introduction
Hardware Design
Rev. ab24f70 – 1.11
Local Version Control Systems
Copy files into an other directory - timestamped if user is clever
Simplest method
Very little control mechanism
It is easy to forget proper working directory hence wrong file willbe accidentally modified
Programmers developeda simple databasetracking mechanism todeal with the issuesmentioned
The VCS RCS was bornthat time and is still usednowadays
RCS (Revision ControlSystem) works on diffpatch approach Img. ref.: http://git-scm.com
Intro to Moduleand Tool-Chain
AndreasHabegger
Modul Introduction
Tool IntroductionOur environment
VCS Introduction
Git Introduction
Hardware Design
Rev. ab24f70 – 1.12
Centralized Version Control Systems
Next issue was that people need to collaborate with developerson other systems.A sever based approach was needed (the server acts as acentralized source distributor and repository management unit)
Therefore a CentralizedVersion Control System(CVCS) were developed
CVC Systems, such asCVS, Perforce, andSubversion, have a singlecentral place - server.
Advantages are,everyone knows whateveryone else is doing
Administrators havefine-grained permissioncontrol
Img. ref.: http://git-scm.com
Drawbacks are single point of failure, nobody can collaboratewithout server, risky to loos everything
Notes
Notes
Notes
Intro to Moduleand Tool-Chain
AndreasHabegger
Modul Introduction
Tool IntroductionOur environment
VCS Introduction
Git Introduction
Hardware Design
Rev. ab24f70 – 1.13
Distributed Version Control Systems
Distributed Version Control Systems (DVCSs) stepped in
DVC Systems, such as Git, Mercurial, Bazaar or Darcs, arenowadays standard
The major difference is clients not only checkout a work-treecopy also they fully mirror the repository
No longer reliable on anonline available centralserver at anytime
Off-site full backups of allthe data
Those system deal prettywell with several remoterepository e.g. forlibraries
Several new smartworkflows are possible
Img. ref.: http://git-scm.com
Intro to Moduleand Tool-Chain
AndreasHabegger
Modul Introduction
Tool IntroductionOur environment
VCS Introduction
Git Introduction
Hardware Design
Rev. ab24f70 – 1.14
Git concept
Img. ref.:http://git-scm.com
Img. ref.:http://git-scm.com
List of file based changes
Information is keep as a setof files
Set of snapshots of a minifilesystem
No changes means nosnapshot of that part
Intro to Moduleand Tool-Chain
AndreasHabegger
Modul Introduction
Tool IntroductionOur environment
VCS Introduction
Git Introduction
Hardware Design
Rev. ab24f70 – 1.15
Git concept
Local operations : Most operations in Git only need local resourcesand files to operate. Due to local file operation, Gitcommands don’t suffer from network latency. If youbrowse history Git doesn’t need a server connection.An other advantage is the offline-tracking capability
Data integrity : Git is using SHA-1 hash numbers for integrity check.Every file will be check-summed before stored. Henceno modification can be made without letting Git knowof the change.
Three states : Git has three stages where files can reside in.Committed, modified and staged.
Notes
Notes
Notes
Intro to Moduleand Tool-Chain
AndreasHabegger
Modul Introduction
Tool IntroductionOur environment
VCS Introduction
Git Introduction
Hardware Design
Rev. ab24f70 – 1.16
The three stages of Git
Img. ref.: http://git-scm.com
Committed : The data is safely stored in your local database
Modified : There are changes on files not committed to thedatabase yet
Staged : There are modified file in its current version marked togo into the next commit snapshot
Intro to Moduleand Tool-Chain
AndreasHabegger
Modul Introduction
Tool IntroductionOur environment
VCS Introduction
Git Introduction
Hardware Design
Rev. ab24f70 – 1.17
Don’t miss the chance
It was quite a bit of information and there is a big chanceto get lost. So, don’t waste your time...learn Git!
Official Git book http://git-scm.com/book
Git wiki on kernel.orghttps://git.wiki.kernel.org/index.php/GitFaq
Take a tour http://cworth.org/hgbook-git/tour
Learn Git visually http://marklodato.github.io/visual-git-guide/index-en.html
Intro to Moduleand Tool-Chain
AndreasHabegger
Modul Introduction
Tool IntroductionOur environment
VCS Introduction
Git Introduction
Hardware Design
Rev. ab24f70 – 1.18
Processor vs ASIC
Notes
Notes
Notes
Intro to Moduleand Tool-Chain
AndreasHabegger
Modul Introduction
Tool IntroductionOur environment
VCS Introduction
Git Introduction
Hardware Design
Rev. ab24f70 – 1.19
Universal Structure
Intro to Moduleand Tool-Chain
AndreasHabegger
Modul Introduction
Tool IntroductionOur environment
VCS Introduction
Git Introduction
Hardware Design
Rev. ab24f70 – 1.20
AND in a LUT
Intro to Moduleand Tool-Chain
AndreasHabegger
Modul Introduction
Tool IntroductionOur environment
VCS Introduction
Git Introduction
Hardware Design
Rev. ab24f70 – 1.21
SPLD
SPLD : (Simple Programmable Logic Device)
Notes
Notes
Notes
Intro to Moduleand Tool-Chain
AndreasHabegger
Modul Introduction
Tool IntroductionOur environment
VCS Introduction
Git Introduction
Hardware Design
Rev. ab24f70 – 1.22
Unprogrammed PLD
Intro to Moduleand Tool-Chain
AndreasHabegger
Modul Introduction
Tool IntroductionOur environment
VCS Introduction
Git Introduction
Hardware Design
Rev. ab24f70 – 1.23
Programmed PLD
irreversible
universal structure
OR array
Intro to Moduleand Tool-Chain
AndreasHabegger
Modul Introduction
Tool IntroductionOur environment
VCS Introduction
Git Introduction
Hardware Design
Rev. ab24f70 – 1.24
FPGA Structure
Notes
Notes
Notes
Intro to Moduleand Tool-Chain
AndreasHabegger
Modul Introduction
Tool IntroductionOur environment
VCS Introduction
Git Introduction
Hardware Design
Rev. ab24f70 – 1.25
CLB Element
Intro to Moduleand Tool-Chain
AndreasHabegger
Modul Introduction
Tool IntroductionOur environment
VCS Introduction
Git Introduction
Hardware Design
Rev. ab24f70 – 1.26
IO Block
Intro to Moduleand Tool-Chain
AndreasHabegger
Modul Introduction
Tool IntroductionOur environment
VCS Introduction
Git Introduction
Hardware Design
Rev. ab24f70 – 1.27
Block RAM
Notes
Notes
Notes
Intro to Moduleand Tool-Chain
AndreasHabegger
Modul Introduction
Tool IntroductionOur environment
VCS Introduction
Git Introduction
Hardware Design
Rev. ab24f70 – 1.28
DSP Element
Intro to Moduleand Tool-Chain
AndreasHabegger
Modul Introduction
Tool IntroductionOur environment
VCS Introduction
Git Introduction
Hardware Design
Rev. ab24f70 – 1.29
DSP Element
Intro to Moduleand Tool-Chain
AndreasHabegger
Modul Introduction
Tool IntroductionOur environment
VCS Introduction
Git Introduction
Hardware Design
Rev. ab24f70 – 1.30
FPGA vs uC Summary
An FPGA provides several configurable slices (LUTs, Mux, FFs),Block RAM elements, clock and signal routing resource etc.
Based on the macro elements we are able to realize any kind offunction
Due to the options we have. An FPGA is like a canvas. VHDLhelps describing the function modle. The tool-chain realizes oursystem based on our description
A uC is a static hardware (unchangeable) hence we program itby using the static and available resources.
Pros Consflexible well skilled designer
FPGA fast solution longer time to markedchap compared to ASICshort time to market bad performance
uC low unit cost less flexible
Notes
Notes
Notes