Introduktion till Xilinx CPLD och ISE WebPack 6.2 Version NV



Relevanta dokument
LABORATION TSEA22 DIGITALTEKNIK D TSEA51 DIGITALTEKNIK Y. Konstruktion av sekvenskretsar med CPLD. Version: 2.2

Flödesschema som visar hur man använder Quartus II.

VHDL och laborationer i digitalteknik

Introduktion till syntesverktyget Altera Max+PlusII

Simulering med ModelSim En kort introduktion

VHDL 1. Programmerbara kretsar

Rubriker: Product & Services Technology Solutions Market Solutions Silicon Devices Design Tools Intellectual Property Boards & Kits

Konstruktionsmetodik för sekvenskretsar. Föreläsning 7 Digitalteknik, TSEA22 Mattias Krysander Institutionen för systemteknik

Lunds Universitet LTH Ingenjörshögskolan IDa1, IEa1 Helsingborg. Laboration nr 4 i digitala system ht-15. Ett sekvensnät. grupp. namn.

Programmerbara kretsar och VHDL. Föreläsning 9 Digitalteknik Mattias Krysander Institutionen för systemteknik

Konstruktionsmetodik för sekvenskretsar

INTRODUKTION TILL VIVADO

Programmerbara kretsar och VHDL. Föreläsning 9 Digitalteknik Mattias Krysander Institutionen för systemteknik

Chalmers ekniska Högskola Institutionen för Data- och Informationsteknik. EDA 321 Digitalteknik syntes Laboration 2 - VHDL

SKAPA DET FÖRSTA PROJEKTET I mikrobasic PRO for AVR

LABORATIONSINSTRUKTION LABORATION

Digital elektronik CL0090

Simulering med ModelSim En kort introduktion

Strukturell VHDL. Grundläggande kunskaper om. och TESTBÄDD. UMEÅ UNIVERSITET Tillämpad fysik och elektronik Lars Wållberg ver 1.

Hjälpmedel: Appendix A. VHDL-syntax. (bifogas detta prov) Appendix B.2. IEEE-package (bifogas detta prov)

KALKYLATOR LABORATION4. Laborationens syfte

Programmerbara kretsar och VHDL 2. Föreläsning 10 Digitalteknik, TSEA22 Oscar Gustafsson Institutionen för systemteknik

Konstruktion av digitala system - VHDL

LABORATIONSINSTRUKTION

FÖRELÄSNING 8 INTRODUKTION TILL DESIGN AV DIGITALA ELEKTRONIKSYSTEM

DIGITALTEKNIK. Laboration D172

std_logic & std_logic_vector

Programmerbar logik (PLD) Programmeringsspråket VHDL Kombinatoriska funktioner i VHDL för PLD Sekvensfunktioner i VHDL för PLD

L15 Introduktion modern digital design

GRUNDER I VHDL. Innehåll. Komponentmodell Kodmodell Entity Architecture Identifierare och objekt Operationer för jämförelse

Simulera med ModelSim

Digitala projekt Elektro- och informationsteknik

Programmerbara kretsar och VHDL 1. Föreläsning 9 Digitalteknik, TSEA22 Oscar Gustafsson, Mattias Krysander Institutionen för systemteknik

Programmerbara kretsar och VHDL. Föreläsning 10 Digitalteknik, TSEA22 Mattias Krysander Institutionen för systemteknik

DIGITAL ELEKTRONIK. Laboration DE3 VHDL 1. Namn... Personnummer... Epost-adress... Datum för inlämning...

D2 och E3. EDA321 Digitalteknik-syntes. Fredag den 13 januari 2012, fm i M-salarna

-c wc. Pre- Next state Out- Vi ser att tillstånden är redan sorterade i grupper med olika utsignaler,

Sekvensnät i VHDL del 2

NetBeans 5.5. Avsikt. Projektfönster

LAB VHDL-programmering

NetBeans 7. Avsikt. Projektfönster

Digitalteknik, fortsättningskurs Föreläsning VHDL Very High Speed Integrated Circuit Hardware Description Language

Tentamen i Digitala system - EITA15 15hp varav denna tentamen 4,5hp

Digital- och datorteknik, , Per Larsson-Edefors Sida 1

Omkopplare, inverterare och LED

Sekvensnät. William Sandqvist

(2B1560, 6B2911) HT08

Tentamen i IE1204/5 Digital Design onsdagen den 5/

Digitalteknik: CoolRunner-II CPLD Starter Kit

Digital elektronik CL0090

Laboration D184. ELEKTRONIK Digitalteknik. Sekvensnät beskrivna med VHDL och realiserade med PLD

Tenta i Digitalteknik

Digitalteknik: CoolRunner-II CPLD Starter Kit Med kommentarer för kursen ht 2012

Tentamen i IE1204/5 Digital Design onsdagen den 5/

Introduktion till xdigiflex-simulatorn

VHDL testbänk. Mall-programmets funktion. Låset öppnas när tangenten 1 trycks ned och sedan släpps. William Sandqvist

Komponenter med COM (och COM+/VC++ 7.0)

LEJON LABORATION3. Laborationens syfte

DESIGN AV SEKVENTIELL LOGIK

Myndigheten för samhällsskydd och beredskap 1 (10) Datum Installationsguide ROPA

IE1204/IE1205 Digital Design

PARALLELL OCH SEKVENTIELL DATABEHANDLING. Innehåll

1 Den normala kartbilden

Programmerbar logik och VHDL. Föreläsning 1

Eclipse. Avsikt. Nu ska ett fönster liknande figuren till höger synas.

F5 Introduktion till digitalteknik

Digitalteknik syntes Arne Linde 2012

Chalmers Tekniska Högskola Institutionen för Data- och Informationsteknik. EDA 321 Digitalteknik syntes Laboration 1 - VHDL

Angående buffer. clk clear >=1 =9?

LABORATIONSINSTRUKTION LABORATION. Räknare och skiftregister med sekvensiell VHDL. LAB NR Ver KURS. Digitalteknik INNEHÅLL. 1.

REGION SKÅNE VDI KLIENTINSTALLATION

Tenta i Digitalteknik

Handledning för Installation av etikettskrivare

IE1205 Digital Design: F8: Minneselement: Latchar och Vippor. Räknare

Programmera Kontaktlåda USB i Mac

Paneler - VCPXX.2. Programmeringsmanual för VCP-paneler. Revision 2

Design av mindre digitala system. Föreläsning Digitalteknik, TSEA52 Mattias Krysander Institutionen för systemteknik

Datorteknik 1 (AVR 1)

Laboration D159. Sekvensnät beskrivna med VHDL och realiserade med PLD. Namn: Datum: Epostadr: Kurs:

SKAPA DET FÖRSTA PROJEKTET I mikrobasic PRO for PIC

Quick start manual. Smart-House Rev 1.1

Besvara de elektroniska frågorna (se kurshemsidan). Läs kapitel i kursbok.

Tenta i Digitalteknik

F5 Introduktion till digitalteknik

Antares Användning och installation

Guide till att använda Audacity för uttalsövningar

LABORATION DATORKONSTRUKTION TSEA83 UART. Namn och personnummer. Version: (OS)


Datorlaboration 0, Programmering i C++ (EDAF30)

Quickstart manual. Rev SHTOOL Quickstart manual Smart-House

Bruksanvisning. Swema AB Tel: För support och nedladdning av aktuell programvara kontakta:

Startanvisning för Bornets Internet

AVRStudio på tre minuter. Micke Josefsson, 2005

Innehåll i detta dokument

Tentamen i Grundläggande ellära och digitalteknik ETA 013 för D

Datorkonstruktion. Datorkonstruktion 2018, 8hp

Laboration D181. ELEKTRONIK Digitalteknik. Kombinatoriska kretsar, HCMOS v 2.1

E-posthantering med Novell Groupwise WebAccess

Tärning med ABEL-macro

Tentamen i IE1204/5 Digital Design Torsdag 29/

Transkript:

Introduktion till Xilinx CPLD och ISE WebPack 6.2 Version NV Introduktionen beskriver grunderna för att använda programvaran Xilinx ISE WebPack 6.2.03 tillsammans med en CPLD (Complex Programmable Logic Device). Beteckningen ISE (Integrated Software Environment) innebär att programvaran består av flera programmoduler och även helt olika program. Programvaran hanteras med en överordnad meny, Project Navigator, som gör det enkelt att använda de olika delarna av programvaran. Programvaran finns i flera olika versioner ISE WebPack, ISE BaseX, ISE Foundation och ISE Alliance där alla versioner styrs med ungefär samma menyhantering. WebPack är en fri version som kan hämtas via Internet och den har en del begränsningar men den är mycket användbar för små och medelstora konstruktioner. WebPack finns normalt installerad i L339 och L341. Programvaran uppdateras ofta men för närvarande behåller vi version 6 i labsalarna, den senaste versionen är 10.1 från mars 2008. Vid introduktionen används vhdl-moduler enligt beskrivningarna i texten. Modulerna simuleras och realiseras med CPLD-kretsen XC9572. Det första exemplet beskriver de logiska grundoperationerna och hur programvaran kan användas. De andra exemplet visar hur en adderare kan konstrueras i VHDL. Vid laborationstillfället används ett kopplingsdäck som är utrustat med en CPLD och alla externa kopplingar. 1. Skapa ett nytt projekt Starta Xilinx Project Navigator från startmenyn i en av datorerna i L341 Välj File/New Project Välj ett godtyckligt namn till projektet och se till att det placeras på en minnesarea som är skrivbar t.e.x. D:\temp eller på din egen användare. Fyll i värden enligt nedanstående: Device Family XC9500 Device XC9572 Package PC44 Speed Grade -15 Top-Level Module Type XST VHDL Synthesis Tool XST (VHDL/Verilog) Simulator Modelsim Generated Simulation Language VHDL Notera att fönstret Sources in Project visar projektets namn och den valda kretsen. Om något behöver ändras kan man dubbelklicka på respektive ikon. Resultatet av projektinitieringen kommer att sparas i en fil av typen <name.npl> som håller ordning på projektet i fortsättningen. Sid 1

2. Skapa en ny VHDL-modul, exempel gates_2 Ett program i VHDL är normalt uppbyggt av ett antal moduler som kopplas samman till den konstruktion som ska utföras. Modulerna kan konstrueras på olika sätt eller kopieras från andra konstruktioner. Nedanstående exempel skapar en modul med det godtyckliga namnet gates_2: Välj Project/New Source VHDL Module File Name <gates_2> Svara next och finish på övriga frågor. Observera att på bildskärmen visas ett fönster med som innehåller skalet till VHDL-modulen. I fönstret ska VHDL-koden skrivas in. Komplettera källkoden så att den innehåller nedanstående: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity gates_2 is Port (a,b: in STD_LOGIC; u1, u2, u3, u4 : out STD_LOGIC); end gates_2; architecture Behavioral of gates_2 is begin u1<= a and b; u2<= a or b; u3<= a nand b; u4<= a xor b; end Behavioral; Spara koden med File/Save. Markera gates_2 (gates_2.vhd) i fönstret för Sources in Project (vänsterklicka med musen) och notera hur fönstret för Processes for Current Source förändras. I fönstret visas alltid vilka processer som är möjliga att utföra med den utvalda filen (Source). När källkodsfilen är färdig skall den kompileras och i VHDLprogrammering säger man då att man syntetiserar (Syntesize) filen 3. Kompilering Syntetisering av exemplet gates_2 Dubbelklicka med vänster mustangent på Synthesize-XST och notera att någonting händer i fönstret Console längst ner på bildskärmen. En grön bock vid Synthesize markerar att syntetiseringen lyckades. Om det blir fel visas mindre trevliga symboler och koden måste rättas. Sid 2

4. Anslutning av stift till exemplet gates_2 I exemplet är kretsen XC9572 vald och för att kunna testa den i verkligheten måste in- och utsignalerna anslutas till pinnar på kretsen. För att det ska passa till den färdiga kopplingen ska följande placeringar väljas: Ingångar: a,b till stift 1, 2 Utgångarna: u1..u4 till stift 26, 27, 28, 29 För att definiera hur in och utgångarna ska anslutas måste ytterligare en källkodsfil, Constraint File <name.ucf>, skapas: Markera gates_2 (gates_2.vhd) Välj Project/New Source Implementation Constraint File File Name <gates_2_pins> Svara next och finish på övriga frågor. Markera gates_2_pins.ucf Välj Assign Package Pins (dubbelklicka) Instruktionerna innebär att programmodulen PACE startar och signalerna kan placeras på valfria stift: Välj en av signalerna genom att vänsterklicka och dra-släpp till rätt stift Misslyckade placeringar av signaler kan tas bort genom att vänsterklicka med musen + delete. Spara filen med File Save när alla signaler är utplacerade. Stäng därefter PACE. 5. Programmering av exemplet gates_2 Anslut programmeringssladden från parallellporten på datorn till CPLD-kretsen. OBS var noga med polariteten. Slå på spänningen till kretsen. Markera gates_2 (gates_2.vhd) Välj Configure Device (impact) (dubbelklicka) Svara Next Next Finish OK på de följande frågorna. Markera (dubbelklicka) filen gates_2.jed när den dyker upp och starta programmeringen genom att svara på några frågor. Efter en liten stund visas Programming Succeeded och kretsen startar omedelbart att exekvera programmet. Ibland uppstår det fel vid programmeringen. Det vanligaste är att spänningen till kretsen inte är påslagen, att fel programmeringsfil används att kretsen är trasig.. Kontrollera att kopplingen fungerar! Sid 3

6. Simulering av gates_2 Innan en krets programmeras ska funktionen simuleras.. Till programvaran ISE WebPack finns en simulator integrerad (ModelSimXE) men egentligen är den en helt separat programvara. Simulering: Markera gates_2(gates_2.vhd) Välj Project/New Source Test Bench Waveform File Name < gates_2_tbw> Svara next, finish, OK på övriga frågor tills ett vågformsfönster visas på bildskärmen. Vågformen visar insignalerna och man kan grafiskt ändra värden genom att klicka i de blå rutorna. Vänsterklicka i de blå rutorna och ändra insignalerna till de värden du vill simulera Högerklicka där du vill att simuleringen ska sluta och Set end of testbench Spara insignalerna med Save Waveform Stäng vågforms-editorn Markera gates_2_tbw.tbw Välj simulatorn Simulate Behavioral VHDL Model Simulering med Behavioral visar konstruktionens beteende utan att införa den valda kretsens (CPLD kretsen) tidsfördröjningar. Med Simulate Post-Fit VHDL Model erhålls kretsens (verkliga) fördröjningar Sid 4

7. Exempel: Skillnaden mellan och och + I VHDL är det mycket vanligt att man använder vektorer för att kunna arbeta med fler signaler på ett enkelt sätt. Naturligtvis är det speciellt viktigt när man konstruerar datorer eller andra bussorienterade system. Med vektorer kan man använda de logiska operatorerna enligt föregående exempel men det går också att använda de aritmetiska operationerna +, - och *. När man använder de aritmetiska operationerna görs mycket av konstruktionsarbetet av syntesverktyget och man behöver inte känna till hur man kan konstruera t.ex. en adderare med vanliga grindar. Logisk AND-operation med vektorer Välj Project/New Source VHDL Module File Name <and_v> Skriv in nedanstående kod: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity and_v is port (a, b: in std_logic_vector (3 downto 0); u : out std_logic_vector(3 downto 0)); end and_v; architecture Behavioral of and_v is begin u<= a and b; end Behavioral; Dubbelklicka med vänster mustangent på Synthesize-XST Anslutning, simulering och test av exemplet and_v Anslutningar: Ingångar: a(3..0) till stift 4, 3, 2, 1 Ingångar: b(3..0) till stift 14, 13, 12, 11 Utgångarna: u(3..0) till stift 26, 27, 28, 29 Markera and_v (and_v.vhd) Välj Project/New Source Implementation Constraint File File Name < and_v _pins> Svara next och finish på övriga frågor. Markera Välj and_v _pins.ucf Assign Package Pins (dubbelklicka) Välj en av signalerna genom att vänsterklicka och dra-släpp till rätt stift Simulering: Markera and_v (and_v.vhd) Välj Project/New Source Test Bench Waveform File Name < and_v_tbw> Svara next, finish tills ett vågformsfönstret visas Vänsterklicka i de blå rutorna och ändra insignalerna till de värden du vill simulera Sid 5

Högerklicka där du vill att simuleringen ska sluta och Set end of testbench Spara insignalerna med Save Waveform Stäng vågforms-editorn Markera and_v_tbw.tbw Välj simulatorn Simulate Behavioral VHDL Model Test: Markera and_v (and_v.vhd) Välj Configure Device (impact) (dubbelklicka) Svara Next Next Finish OK på de följande frågorna. Markera (dubbelklicka) filen and_v.jed Kontrollera att kopplingen fungerar! Aritmetisk + -operation med vektorer, addition Välj Project/New Source VHDL Module File Name <add_v> Skriv in nedanstående kod: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity add_v is port (a, b: in std_logic_vector (3 downto 0); u : out std_logic_vector(3 downto 0)); end add_v; architecture Behavioral of add_v is signal u_b: std_logic_vector(4 downto 0 begin u_b<= 0 &a + b; u<=u_b(3 downto 0); end Behavioral; Dubbelklicka med vänster mustangent på Synthesize-XST Anslutning, simulering och test av exemplet add_v Anslutning: Ingångar: a(3..0) till stift 1, 2, 3, 4 Ingångar: b(3..0) till stift 11, 12, 13, 14 Utgångarna: u(3..0) till stift 29, 28, 27, 26 Markera add_v (add_v.vhd) Välj Project/New Source Implementation Constraint File File Name < add_v _pins> Svara next och finish på övriga frågor. Markera Välj add_v _pins.ucf Assign Package Pins (dubbelklicka) Välj en av signalerna genom att vänsterklicka och dra-släpp till rätt stift Sid 6

Simulering: Markera add_v (add_v.vhd) Välj Project/New Source Test Bench Waveform File Name < add_v_tbw> Svara next, finish tills ett vågformsfönstret visas Vänsterklicka i de blå rutorna och ändra insignalerna till de värden du vill simulera Högerklicka där du vill att simuleringen ska sluta och Set end of testbench Spara insignalerna med Save Waveform Stäng vågforms-editorn Markera add_v_tbw.tbw Välj simulatorn Simulate Behavioral VHDL Model Test: Markera add_v (add_v.vhd) Välj Configure Device (impact) (dubbelklicka) Svara Next Next Finish OK på de följande frågorna. Markera (dubbelklicka) filen add_v.jed Kontrollera att kopplingen fungerar! Sid 7

8. Övrigt Det finns ytterligare ett antal programmoduler, Processes, som är mycket användbara både för att dokumentera konstruktionen och verifiera att den blev som det var tänkt. Studera processerna, glöm inte att markera den source som är aktuell. Det naturligaste är att välja topmodulen, men det går lika bra att studera de olika modulerna separat. Obs Med Edit/Preferences/General kan man välja utskriften i Text-format eller HTMLformat. Välj Text-format i första hand. Normalt brukar man använda nedanstående: View Synthesis Report Visar vilka olika optioner som har valts för syntetiseringen och diverse resultat. Mot slutet finns en Final Report som visar hur många grindar och vippor som har använts. View RTL Schematic Visar ett hierarkiskt schema för konstruktionen. Realiseringen kan studeras i detalj genom att markera ett av blocken och därefter högerklicka med musen och göra Push Into the Selected Instance. För att komma tillbaka gör man Pop to the Calling Schematic. Det går även att undersöka vhdl-koden genom View Source of the Selected Instance. Den här processen är mycket användbar för att till exempel undersöka hur vhdl-koden har realiserats. Ett vanligt fel är att D-vippor och D-latchar har införts på besynnerliga ställen. Om koden är riktigt skriven finns inga extra minneselement! Fitter Report Visar först en Resource Summary som bland annat visar hur många produkttermer och register som är använda. Längre ner i rapporten kan man se hur ekvationerna (Implemented Equations) är realiserade. I slutet av rapporten visas hur signalerna är anslutna (Device Pin Out) till kretsen. Rapporten är bra för att dokumentera hur konstruktion är realiserad. Timing Report Visar tidsfördröjningen för kretsen. Observera att här används data för den valda kretsen och den CPLD som är vald har Speed Grade 15 ns och är en av de långsammaste kretsarna från Xilinx. Rapporten är viktig för att bestämma den maximala frekvensen som kan användas. Sid 8