William Sandqvist william@kth.se Kodlåsmall lockmall.vhd William Sandqvist william@kth.se.

Slides:



Advertisements
Liknande presentationer
William Sandqvist Simulera med ModelSim ModelSim kan användas till att simulera VHDL-kod, för att avgöra om den är "rätt" tänkt. Man kan.
Advertisements

Styrteknik 7.5 hp distans: SFC med GX IEC PLC5B:1
Digitalteknik 7.5 hp distans: VHDL del 1 V:1.1
Digitalteknik, fortsättningskurs 2012 Föreläsning 16 Inför tentan
Många studenter använder en LCD-display till sin programmeringsuppgift
William Sandqvist Störskydd William Sandqvist
2D1311 Programmeringsteknik med PBL Föreläsning 7 Skolan för Datavetenskap och kommunikation.
DCV Idéskiss Design Jag tror att jag ska ha en mörk och stilren design på mitt DCV. Det ska finnas dynamisk funktionalitet där designen byts utan att sidan.
IE1204 Digital Design Aritmetik Låskretsar, vippor, FSM FSM, VHDL introduktion Asynkron FSM F1 F3 F5 Ö3 F8 F10 F12 Ö8 F2Ö1 Ö2 Ö6 F13 F9Ö5 tentamen William.
PICKit2 programmer-to-go
Språket för inbyggda system 3
Next previous Innehåll Inledning Några enkla exempel Pekare till och kort beskrivning av större exempel Speciella referenser (som används i marginalen)
i olika programmeringsspråk
Programmering B PHP Lektion 2
Programmering B PHP Lektion 3
Föreläsning 8, kapitel 8 Förbättra strukturen med arv Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael.
Digitalteknik 7.5 hp distans: 5.1 Generella sekvenskretsar 5.1.1
Styrteknik: Programmering med MELSEC IL PLC2A:1
Diskreta, deterministiska system Projekt 1.2; Vildkatt
Exempelbaserade specifikationer med SpecFlow
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 6: Process- synkronisering.
1 Föreläsning 5 Programmeringsteknik och Matlab 2D1312/2D1305 Repetition Metoder Array API och klassen ArrayList.
Programmering efter tillståndsdiagram
Skriftlig individuell uppgift Interaktionsdesign i digitala medier (A.1) HT-2012, 7,5 hp Lärare: Daniel Nylén.
William Sandqvist Lab 1 Några slides att repetera inför Lab 1 William Sandqvist
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 2 ( ) INNEHÅLL: -Variabler och datatyper -Tilldelning av variabler -Aritmetiska.
Styrteknik: Programmering med IEC PLC1A:1
Problemlösningsmetodik
Digitalteknik 7.5 hp distans: Realisering av logik med PLD och VHDL1.4.1 En kretsrealisering med VHDL består av fyra huvudmoment Specifikation Beskrivning.
Pipelining Föreläsning 4. T exe — CPU-exekveringstid I — Antalet exekverade instruktioner CPI — Genomsnittligt antal klockcykler per instruktion T c —
Vad kännetecknar ett sekvensnät?
ATLAS-experimentet i skolan Stockholms universitet
Emulatorkonstruktion Schema Inledning Andra metoder Mina metoder Demonstration av min C64-emulator Sammanfattning och frågor.
William Sandqvist PIC-programmeringsmiljön i skolan Datorerna i skolans labsalar är centralt underhållna. Du har inte rättigheter att installera.
William Sandqvist Binärkod och Graykod 7 Bitars Kodskiva för avkodning av vridningsvinkel. Skivans vridnings-vinkel finns tryckt som binära.
Arkitektrollen. Ansvar och uppgifter Architecture notebook Mycket intensivt elaboration – inception Mål: en stabil arkitektur i slutet på elaboration.
Exponentialfunktionen
DIGITAL DESIGN INLEDNING Allmänt och kursens hemsidor Analogt och digitalt Booleska variabler Binära tal Positiv och negativ logik (Aktiv hög och låg logik)
William Sandqvist Melodispelaren Denna demonstrationslaboration visar, steg för steg, hur man skriver ett kort program i programspråket.
William Sandqvist ReadModifyWrite-problemet PORTB = 0; PORTB.0 = 1; PORTB = PORTB; Vilket värde har portpinnen RB1 nu ? Förmodligen ”1”,
William Sandqvist IS1500 Datorteknik William Sandqvist
William Sandqvist Lab 3 Några slides att repetera inför Lab 3 William Sandqvist
William Sandqvist Flera saker samtidigt? /* Blink1: 1s ON - 1s OFF */ /* Blink2: 0,2s ON - 0,2s OFF - 1s ON - 1s OFF */
William Sandqvist Binärkod och Graykod 7 Bitars Kodskiva för avkodning av vridningsvinkel. Skivans vridnings-vinkel finns tryckt som binära.
Styrteknik 7.5 hp distans: PLC-delprogram, tasks TASKS:1
Motivationen att lära sig svenska
Digitalteknik 7.5 hp distans: VHDL del 2 V2:1 Tillståndsmaskin, Moore-typ Kopior från VHDL för konstruktion, Studentlitteratur.
To practise speaking English for 3-4 minutes Genom undervisningen i ämnet engelska ska eleverna ges förutsättningar att utveckla sin förmåga att: formulera.
William Sandqvist Är Du bra på for-loopar? Ge triangelns höjd: 12 1> * > *** > *****
William Sandqvist Distributed Computing Client – Server. En skrivarserver kan vara ett exempel på en Client-Server arkitektur. S Burd, Systems.
William Sandqvist PWM Sinusoidal Hur tillverkar man en sinusformad spänning? En PWM-signal kan ge en sinusapproximation. Efter filtrering.
Kronljusströmställaren 0, 1, 2, 3
William Sandqvist Datorteknik övning 1 Introduktion till assemblerprogrammering av Nios II William Sandqvist
1 Modellering med Uppaal Tobias Amnell (Materialet lånat av Paul Pettersson)
Programmering i.NET Farid Naisan, Universitetsadjunkt Datavetenskap, Teknik och samhälle, Malmö högskola Begreppsförklaring.
William Sandqvist Tillståndsmaskiner  Moore-automat  Mealy-automat William Sandqvist
Shannon dekomposition
DA-omvandling, oftast PWM William Sandqvist En DA-omvandlare tar stor plats på processor- chippet. Den vanligaste DA-lösningen är i stället.
William Sandqvist Binärkod och Graykod 7 Bitars Kodskiva för avkodning av vridningsvinkel. Skivans vridnings-vinkel finns tryckt som binära.
William Sandqvist Några experiment med XPortPro.
CHI-TSONG CHEN KAPITEL 2- Systems Kortfattade läsanvisningar Läs hela kapitlet utom 2.9 och 2.10.
innan vi börjar öppna din Ruby-interpretator puts ”Hello Friggin’ World!”
KPP053, HT2015 MATLAB, Föreläsning 4
Python.
Noras Portar Karlsängskolan.
Bengt Oelmann -- copyright 2002
Introduktion till konstruktion av digitala elektroniksystem
Konstruktion av kombinatorisk och sekventiell logik
Titel på projektet Title of the project
Föräldrainformation av familjewebben
Presentationens avskrift:

William Sandqvist william@kth.se Kodlåsmall lockmall.vhd William Sandqvist william@kth.se

Beskrivning av kodlåsmallen Kodlåsmallen gäller för ett förenklat lås som öppnar direkt när man trycker på tangenten för ”1”. Så gott som all digital design sker numera med hjälp av högnivåspråk som VHDL/VERILOG. Vår grundkurs i digital-teknik ger inte utrymme att lära ut VHDL-språket, däremot kommer Du att kunna omforma ”kodlåsmallen” till användbar VHDL-kod inför laborationen. Tycker Du att VHDL-språket verkar intressant, så har skolan flera digitaltekniska fortsättningskurser … William Sandqvist william@kth.se

William Sandqvist william@kth.se Moore automat next_state_decoder: state_register: output_decoder: De olika blocken identifieras i koden med etiketter, ”label” next_state_decoder: output_decoder: state_register: William Sandqvist william@kth.se

William Sandqvist william@kth.se VHDL process Med en ”process” kan man beskriva vad ett block ska utföra utan att behöva gå in på detaljer om hur detta skall gå till. Label. Etikett. Sensitivity list. Varje förändring av dessa variabler leder till att processen uppdateras! next_state_decoder: process(state, K, R) begin ... end process; Body. Vad som skall utföras. William Sandqvist william@kth.se

William Sandqvist william@kth.se lockmall.vhd library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; entity codelock is port( clk: in std_logic; K: in std_logic_vector(1 to 3); R: in std_logic_vector(1 to 4); q: out std_logic_vector(4 downto 0); UNLOCK: out std_logic ); end codelock; architecture behavior of codelock is subtype state_type is integer range 0 to 31; signal state, nextstate: state_type; begin nextstate_decoder: -- next state decoding part process(state, K, R) case state is when 0 => if (K = "100" and R ="0001") then nextstate <= 1; else nextstate <= 0; end if; when 1 => if (K = "100" and R ="0001") then nextstate <= 1; elsif (K = "000" and R = "0000") then nextstate <= 2; when 2 to 30 => nextstate <= state + 1; when 31 => nextstate <= 0; end case; end process; debug_output: -- display the state q <= conv_std_logic_vector(state,5); output_decoder: -- output decoder part process(state) begin case state is when 0 to 1 => UNLOCK <= '0'; when 2 to 31 => UNLOCK <= '1'; end case; end process; state_register: -- the state register part (the flipflops) process(clk) if rising_edge(clk) then state <= nextstate; end if; end behavior; start end start end entity architecture next_state_decoder: output_decoder: state_register: William Sandqvist william@kth.se

William Sandqvist william@kth.se Kodlås VHDL  entity Block-beskrivning, insignaler och utsignaler library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; entity codelock is port( clk: in std_logic; K: in std_logic_vector(1 to 3); R: in std_logic_vector(1 to 4); q: out std_logic_vector(4 downto 0); UNLOCK: out std_logic ); end codelock; start end William Sandqvist william@kth.se

William Sandqvist william@kth.se Bitvektorer och bitar K1 K2 K3 R4 R3 R2 R1 Man kan anpassa indexeringen av variabler så att den överensstämmer med databladen – mindre risk för misstag! q4 q3 q2 q1 q0 K: in std_logic_vector(1 to 3); R: in std_logic_vector(1 to 4); q: out std_logic_vector(4 downto 0); K ="001" K(3)=’1’ bitvektor bit 1 2 3 4 3 2 1 0 q ="00001" q(0)=’1’ bitvektor bit William Sandqvist william@kth.se

William Sandqvist william@kth.se Kodlås VHDL …  architecture Beskrivning av blockets beteende start architecture behavior of codelock is subtype state_type is integer range 0 to 31; signal state, nextstate: state_type; begin; Här skapar vi en ny datatyp, state_type, som kan ha heltalsvärden mellan 0 och 31. Kompilatorn förhindrar oss då från att (av misstag) använda andra värden. Signalerna state och nextstate är av denna typ. William Sandqvist william@kth.se

William Sandqvist william@kth.se Kodlås VHDL … nextstate_decoder: -- next state decoding part process(state, K, R) begin case state is when 0 => if (K = "001" and R ="0001") then nextstate <= 1; else nextstate <= 0; end if; when 1 => if (K = "001" and R ="0001") then nextstate <= 1; elsif (K = "000" and R = "0000”) then nextstate <= 2; else nextstate <= 0; end if; when 2 to 30 => nextstate <= state + 1; when 31 => nextstate <= 0; end case; end process; William Sandqvist william@kth.se

William Sandqvist william@kth.se Kodlås VHDL … För att kunna felsöka vill vi kunna följa vilket tillstånd automaten befinner sig i … debug_output: -- display the state q <= conv_std_logic_vector(state,5); Funktionen conv_std_logic_vector() omvandlar state (ett heltal mellan 0…31) till en 5-bitars bitvektor q, q(4) … q(0). William Sandqvist william@kth.se

William Sandqvist william@kth.se Kodlås VHDL … output_decoder: -- output decoder part process(state) begin case state is when 0 to 1 => UNLOCK <= '0'; when 2 to 31 => UNLOCK <= '1'; end case; end process; William Sandqvist william@kth.se

William Sandqvist william@kth.se Kodlås VHDL … state_register: -- the state register part (the flipflops) process(clk) begin if rising_edge(clk) then state <= nextstate; end if; end process; end behavior; end William Sandqvist william@kth.se

Öppna låset med ditt personnummer!  Nu är det dags att skriva om VHDL-koden så att låset öppnar för de fyra sista siffrorna i ditt personnummer! William Sandqvist william@kth.se