10
Lecture 1 Intro to Module and Tool-Chain Module Introduction, Semester Schedule, Feedback to Exercis, Introduction to Tool-Chain, Information to Literature BTF4220 - Digital Electronics 2 Feb. 20, 2015 Andreas Habegger Bern University of Applied Sciences Intro to Module and Tool-Chain Andreas Habegger Modul Introduction Tool Introduction Our environment VCS Introduction Git Introduction Hardware Design Rev. ab24f70 1.2 Agenda Modul Introduction Tool Introduction Our environment VCS Introduction Git Introduction Hardware Design Intro to Module and Tool-Chain Andreas Habegger Modul Introduction Tool Introduction Our 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 the course: 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 Module and Tool-Chain - Module Introduction ... · Modul Introduction Tool Introduction Our environment VCS Introduction Git Introduction ... (the server acts as a centralized

  • Upload
    vunhan

  • View
    225

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Intro to Module and Tool-Chain - Module Introduction ... · Modul Introduction Tool Introduction Our environment VCS Introduction Git Introduction ... (the server acts as a centralized

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

Page 2: Intro to Module and Tool-Chain - Module Introduction ... · Modul Introduction Tool Introduction Our environment VCS Introduction Git Introduction ... (the server acts as a centralized

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

Page 3: Intro to Module and Tool-Chain - Module Introduction ... · Modul Introduction Tool Introduction Our environment VCS Introduction Git Introduction ... (the server acts as a centralized

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

Page 4: Intro to Module and Tool-Chain - Module Introduction ... · Modul Introduction Tool Introduction Our environment VCS Introduction Git Introduction ... (the server acts as a centralized

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

Page 5: Intro to Module and Tool-Chain - Module Introduction ... · Modul Introduction Tool Introduction Our environment VCS Introduction Git Introduction ... (the server acts as a centralized

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

Page 6: Intro to Module and Tool-Chain - Module Introduction ... · Modul Introduction Tool Introduction Our environment VCS Introduction Git Introduction ... (the server acts as a centralized

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

Page 7: Intro to Module and Tool-Chain - Module Introduction ... · Modul Introduction Tool Introduction Our environment VCS Introduction Git Introduction ... (the server acts as a centralized

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

Page 8: Intro to Module and Tool-Chain - Module Introduction ... · Modul Introduction Tool Introduction Our environment VCS Introduction Git Introduction ... (the server acts as a centralized

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

Page 9: Intro to Module and Tool-Chain - Module Introduction ... · Modul Introduction Tool Introduction Our environment VCS Introduction Git Introduction ... (the server acts as a centralized

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

Page 10: Intro to Module and Tool-Chain - Module Introduction ... · Modul Introduction Tool Introduction Our environment VCS Introduction Git Introduction ... (the server acts as a centralized

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