LU-DIP-m
Īsceļi: Kalendārs | Video | PD | MD | Resursi | Šodiena: 26.11.24 : Rītdiena: 27.11.24 (ja ir lekcija)
Digitālā projektēšana [M] (DIP)
LU DF maģistru un doktorantu studiju kurss DatZ7034, meklēt eStudijās.
Par kursu
Kursa mērķi ir iepazīstināt ar digitālo iekārtu projektēšanas aspektiem, darba plūsmu, problēmām un risinājumiem. Kursa ietvaros tiek apskatīti digitālu iekārtu un datoru arhitektūras pamata un arī sarežģītākas pakāpes elementi. Kursā studenti izstrādā praktiskos darbus un kursa projektu, kura rezultāts ir digitāla iekarta, piemēram procesors, mini dators, grafikas kontrolieris, kalkulators, paralēlas attēlu apstrādes iekārta un citas iekārtas.
Kursa sākumā jāpiesakās attiecīgajai google-grupai, lai varētu sekot kursa aktualitātēm un piedalīties (neklātienes) diskusijās.
Administratīvā informācija
- Pasniedzējs: Leo Seļāvo (epasts: vards.uzvards @ gmail.com)
Praktisko un mājas darbu iesniegšana izpildāma noteiktajos datumos un laikos elektroniski, e-studijās.
- Iesniegšanas termiņa laiks ir 30 minūtes pirms lekcijas sākuma.
- Iesniegto failu vārdam jābūt sekojošā formātā, ar _svītru tukšumu vietā, piemēram: "DIP_MD1_Vards_Uzvards.pdf"
- Ja iesniedzams teksts, piemēram, eseja vai apraksts, tad failam jābūt PDF formātā, ja vien nav prasīts citādi uzdevuma nosacījumos.
- Ja iesniedzami vairāki faili, piemēram, programmas pirmkods, tad tie iepriekš arhivējami kā *.zip arhīvs ar tādu pat faila vārdu kā aprakstīts iepriekš: "DIP_MD1_Vards_Uzvards.zip".
- Ja darbs tiek iesniegts ar novēlošanos, rezultāts tiek samazināts par 50%. Ja darbs iesniegts vairāk kā nedēļu pēc termiņa, pasniedzējs darbu var nepieņemt.
Kalendārs
Datums | Tēma, saturs | Uzdevumi | |
---|---|---|---|
10.02.2210:30 |
Digitālas iekārtas vispārējā arhitektūra un uzbūve. Digitālā projektēšana, ievads, darba plūsma. Map, place, route. Laika anotācija - ""Timing back-annotation"". Simulācija un testēšana dažādos līmeņos. Mācību materiāli: |
||
10.02.2210:30 |
Digitālo iekārtu pamatelementi, tranzistors, invertors, NAND un NOR elementi no tranzistoriem, to loģiskā uzbūve un īpašības. Loģiskie elementi, minimālā kopa. Pāreja no loģiskajām izteiksmēm un tabulām uz realizāciju ar loģiskajiem elementiem. Kombinētie loģiskie elementi. Dešifrators, multipleksors, frekvences dalītājs un citi elementi. Elementi ar atmiņu. RS un D trigeri. ""Latch"" un ""D-Flip-flop"". Reģistri un uz tiem bāzētas iekārtas. Bīdes reģistri. Skaitītāji. Uzstādīšanas un noturēšanas laiku ierobežojumi.
Mācību materiāli:
|
||
17.02.2210:30 |
Mācību materiāli:
|
| |
24.02.2210:30 |
Procesora instrukciju arhitektūra. Instrukciju tipi un kodēšana. Operandi. RISC un CISC arhitektūras. DLX procesora instrukciju arhitektūra. Salīdzinoši piemēri no ARM instrukciju kopas. |
||
03.03.2210:30 |
Mācību materiāli:
|
||
10.03.2210:30 |
Instrukciju atmiņa, reģistrs, dekoderis. PC reģistrs. RISC V Asemblers. GNU rīki kompilācijai. Qemu simulators. |
||
17.03.2210:30 |
|
| |
24.03.2210:30 |
|
||
07.04.2210:30 |
Procesora arhitektūra. Daudz-taktu un konveijera principi. Instrukciju dešifratora un skaitītāja reģistri. Reģistru fails. Aritmētiski loģiskā iekārta (ALU). Atmiņas saskarne. Instrukciju un datu kešatmiņa. |
||
21.04.2210:30 |
Resursi:
|
||
28.04.2210:30 |
Programmējamās loģikas iekārtas, CPLD un FPGA. FPGA uzbūve. Konfigurējami loģiskie elementi. Ievada un izvada elementi. Komunikācija, maģistrāles. Mācību materiāli:
|
||
05.05.2210:30 |
Digitālas projektēšanas metrikas. Funkcionalitāte. Izmaksas, fiksētās un mainīgās. Uzticamība, izturība. Trokšņu noturība un imunitāte. Veiktspēja. Ātrums un enerģijas patēriņš. Projektēšanas laiks. Resursi: |
||
12.05.2210:30 |
|
||
19.05.2210:30 |
|
||
26.05.2210:30 |
Instrukciju paralelisms, ciklu atrullēšana, Scoreboarding un Tomasulo arhitektūras. Slaidi: Resursi: |
||
02.06.2210:30 |
|
||
xx.06.22 |
10:30 Eksāmens. Projektu demonstrācijas un plakāti. |
Eksāmenā:
|
Lekciju video
Lekciju videomateriāls ir pieejams Youtube. Sīkāk, pa tēmām:
- Ievads kursa pirmajai daļai.
- Digitālas sistēmas.
- Loģikas pamatelementi.
- Tranzistora uzbūve.
- Tranzistoru lietojumi.
- Laika atkarīgi elementi.
- Trigeri un "latch" iekārtas.
- CPU uzbūve un konveijera princips.
- FPGA uzbūve.
PD
Praktiskie darbi.
PD1
LED un slēdži
Mērķi
- apgūt darba plūsmu ar FPGA shēmas ievadu, kompilāciju un dizaina augžuplādēšanu uz FPGA iekārtas.
- lietot FPGA ievada un izvada portus (pinus).
- lietot elementāras loģikas elementus shēmā.
Uzdevums
Izveidot digitālu iekārtu, kas izmanto ievada elementus (slēdžus) un izvada elementus (LED).
- Shēmas ievads
- Kompilācija
- Uzlādēšana uz reālas FPGA iekārtas
- Pārbaude
Iekārtai jāveic sekojošas darbības:
- SW1 slēdzis ieslēdz un izslēdz LED1 spīddiodi.
- SW2 un SW3 slēdži veido ievaddatus XOR elementam, kura rezultats tiek izvadīts uz LED2.
- Spīddiode LED3, kas ieslēdzas un izslēdzas reizi sekundē. SW4 to var apstādināt un iedarbināt.
Praktiskajā darbā izstrādātā iekārta jādemonstrē uz Spartan 3E FPGA iekārtas.
Resusrsi:
- Xilinx Spartan-3E FPGA Starter Kit Board User Guide
- Spartan 3E Tutorial no Queensland University of Technology
PD_Counter
Skaitītāja simulācija
Mērķi
- Iepazīties ar FPGA elementu bibliotēkas skaitītāja moduļiem
- Iemācīties, kā darbināt simulācijas
Uzdevums
- Izveidot shēmu iekārtai, kas izmantojot takts signālu realizē 4 bitu bināru skaitītāju.
- Demonstrēt iekārtas darbību ar simulātoru (ISim vai Modelsim)
Iesniegt
Iesniegt e-studijās:
- PDF dokumentu kurā ir gan iekārtas shēma, gan arī simulācijas rezultāti un īss pieredzes apraksts.
PD_RF
Reģistru fails
Mērķi
- Pamatelementu un reģistru lietojums Verilog valodā
- Projekta simulācija
Uzdevums
- Izveidot shēmu reģistra failam, ko vēlāk izmantot procesora projektā.
- Demonstrēt iekārtas darbību ar simulatoru (ISim)
Iesniegt
Iesniegt e-studijās:
- Verilog pirmkoda fails ar iekārtas dizainu.
- PDF dokuments ar simulācijas rezultātiem un īsu pieredzes aprakstu.
PD_Calc
Kalkulators: stāvokļu diagramma un kontrolieris
Mērķi
- Iepazīties ar galīgo automātu projektēšanu un implementāciju Verilog valodā
- Projektēt digitālu sistēmu ar kontrolieri
- Simulēt kontroliera dizainu
Uzdevums
Izveidot funkcionālu kalkulatora moduli, kas reaģē uz taustiņu signāliem veic saskaitīšanas un atņemšanas operācijas. Kalkulators strādā heksadecimālā sistēmā, tātad, tam ir 16 ciparu taustiņi: 0,1,2...8,9,A,B,C,D,E,F. Bez tam ir arī operāciju taustiņi: CLR - nodzēst rezultātu, un operācijas +, - un =. Nospiežot katru taustiņu tiek pacelts signāls BtnDown. Atlaižot taustiņu tas tiek nolaists. Jāveic sekojoši uzdevumi:
- Izveidot projektu kalkulatoram ar Verilog vai shēmu diagrammu.
- Izveidot kontrolieri, kas balstīts uz vienu vai vairākiem galīgiem stāvokļu automātiem.
- Demonstrēt iekārtas darbību ar simulātoru Xilinx ISim.
Iesniegt
Iesniegt e-studijās:
- PDF dokumentu kurā ir gan iekārtas shēma, gan arī simulācijas rezultāti un īss pieredzes apraksts.
- Iekārtas un testēšanas Verilog pirmkoda failus.
PD_VGA
Šaha laukums
Mērķi
- iepazīties ar VGA signālu protokolu
- izpildīt iekartas dizainu Verilog valodā
Uzdevums
Izveidot iekārtu, kas uz monitora ekrāna attēlo 8x8 šaha lauciņu. Darba gaita iepazīties ar video signāla formu un laika parametriem. Darbu atļauts izpildīt daļēji vai pilnīgi Verilog valodā.
Praktiskajā darbā izstrādātā iekārta jādemonstrē uz Spartan 3E FPGA iekārtas, kam pieslēgts monitors.
Izstrādātā risinājuma pirmkoda faili jāarhivē failā vards_uzvards_PD2.zip un jāiesūta e-studijās.
PD_Kbd
Klaviatūra un Ciparu izvads
Mērķi
- iepazīties ar PS/2 (klaviatūras) protokolu
- Izstrādāt stāvokļu mašīnu - galīgo automātu kalkulatora darbībai
Uzdevums
Izveidot digitālu iekārtu, kas darbojas kā kalkulators ar skaitļiem heksadecimālajā sistēmā un var izpildīt saskaitīšanas un atņemšanas operācijas.
Skaitļu ievads ir no klaviatūras, kas pieslēdta ar PS/2 portu.
Skaitļu izvads ir uz LCD ekrāna.
Izstrādātā risinājuma pirmkoda faili jāarhivē failā vards_uzvards_PD3.zip un jāiesūta e-studijās.
MD
Mājas darbi.
MD1
Novērtēt Spartan 3E attīstītājrīka un FPGA iespējas. Atbildēt uz jautājumu: vai iespējams uz Spartan 3E realizēt datoru, kas varētu darbināt Linux klases operētājsistēmu? Atbildi pamatot, izvērtējot nepieciešamos un atbilstošos pieejamos resursus gan FPGA, gan perifērijas iekārtu kontekstā.
Atbilde noformējama kā eseja PDF failā vards_uzvards_MD1.pdf un jāiesūta e-studijās.
MD2
Aprakstīt ideju kursā realizējamam projektam, ko izstrādāsiet uz FPGA iekārtas. Iekļaut sekojošas sadaļas:
- Vai tas ir individuāls vai komandas darbs. Ja komandas, tad pievienot dalībnieku sarakstu un to lomu projektā
- Mērķis un motivācija
- Nepieciešamie resursi
- Risinājuma apraksts
- Realizācijas plāns ar konkrētiem datumiem un starpmērķiem, kas tajos sasniedzami
Atbilde noformējama kā dokuments PDF failā vards_uzvards_MD2.pdf un jāiesūta e-studijās.
MD_OpenGL
Uzzīmēt un aprakstīt video kontroliera shēmu, kas atbalsta minimālu OpenGL vai līdzīgu instrukciju kopu. Instrukcijas tiek nodotas no datora pa seriālo portu. Instrukcijas jāatkodē un jāizpilda, izmainot lokālu video buferi. No bufera attēls jāizvada uz iebūvēto VGA portu attēla izvadei.
Atbilde noformējama kā dokuments PDF failā vards_uzvards_MDx.pdf un jāiesūta e-studijās.
MD_ALU
Aritmētiski loģiskā ierīce (ALU)
Mērķi
- Izpētīt ISA un izstrādāt specifikāciju atbilstošam procesora ALU
- ALU izstrāde
Uzdevums
- Izstrādāt ALU kas atbilst RISCV R32I instrukciju kopai
- ALU nepieciešams nodrošināt sekojošu saskarni:
- A un B ir datu ievadda maģistrāles, 32 biti, vai ideāli, parametrizējamas.
- OUT ir rezultāts, arī datu maģistrāle
- OPCODE - ievads, ALU operācijas kods
- karodziņi, kas indicē:
- V - Overflow
- Z - Zero
- N - Negative
- C - Carry
- Demonstrēt iekārtas darbību vairākām instrukcijām, ar simulatoru (ISim)
Resursi
- RISCV reference card - instrukciju tipi, kopsavilkums
- RISCV Reference sheet - instrukciju saraksts
- RISCV specifikācijas protāls un dokumenti
Iesniegt
Iesniegt e-studijās:
- Verilog pirmkoda fails ar iekārtas dizainu.
- PDF dokuments ar simulācijas rezultātiem un īsu pieredzes aprakstu.
MD_CPU_v0
CPU prototips
Mērķis
Iepazīt instrukciju dekoderi un aritmētisko instrukciju datu plūsmu.
Uzdevums
- Izstrādāt instrukciju dekoderi pēc RISC V R32I ISA Green card.
- Izstrādāt vienkāršu kontrolieri, kas tulko instrukciju operāciju kodus uz ALU operāciju kodiem, un reģistru faila WE (Write Enable) signālu.
- Izveidot prototipu CPU kas var izpildīt vienkāršas instrukcijas pa vienai.
CPU prototipam (v0) jāsavieno reģistru fails, ALU un instrukciju dekoderis un operāciju kodu kontrolieris tā, lai būtu iespējams ieejā dot vienas instrukcijas 32 bitu kodu, un tā tiktu izpildīta, un rezultāts ierakstīts attiecīgajā reģistrā pēc CLK takts signāla augošās frontes.
- Demonstrēt iekārtas darbību vairākām instrukcijām, ar simulatoru (ISim)
Resursi
- RISC V dokumentācija
Iesniegt
Iesniegt e-studijās:
- Verilog pirmkoda faili ar iekārtas dizainu.
- PDF dokuments ar simulācijas rezultātiem un īsu pieredzes aprakstu.
MD_CPU_IC
CPU prototips
Mērķis
Iepazīt instrukciju kešatmiņu un RISC V asemblera kompilāciju.
Uzdevums
- Izstrādāt instrukciju kešatmiņu, instrukciju reģistru, PC reģistru.
- Izveidot prototipu CPU kas var izpildīt vienkāršas instrukcijas no instrukciju atmiņas. Katrs takts signāls CLK ielasa un izpilda nākamo instrukciju.
- Izveidot vienkāršu RISC V asemblera programmu instrukciju testēšanai. Kompilēt to ar GNU AS kompilatoru.
- Instrukciju kešatmiņas modulim ielasīt kompilētu programmu (no teksta faila), Verilog kompilācijas solī.
- Demonstrēt iekārtas darbību ar simulatoru (ISim)
Resursi
Iesniegt
Iesniegt e-studijās:
- Verilog pirmkoda faili ar iekārtas dizainu.
- PDF dokuments ar simulācijas rezultātiem un īsu pieredzes aprakstu.
Informācijas resursi
Resursi
- Computer organization and design: the hardware/software interface
- Computer Organization & Design The Hardware/Software Interface, 2nd Edition PPT 5.89MB (lekciju slaidi no National Chiao Tung University)
- Computer Organization & Design The Hardware/Software Interface, 3nd Edition PPT 1.86MB (lekciju slaidi no National Chiao Tung University)
- FPGA-Based Prototyping Methodology Manual: Best practices in Design-for-Prototyping (FPMM) is a comprehensive and practical guide to using FPGAs as a platform for SoC development and verification.
- FPGA 101 - Making awesome stuff with FPGAs: Karsten Becker @ 30th Chaos Communication Congress [30c3] by the Chaos Computer Club
Digital design textbooks @ Digilent Inc.
- Introduction to Digital Design - Verilog Edition (PDF)
- Introduction to Digital Design - VHDL Edition (PDF)
- Real Digital - A hands-on approach to digital design
- Module 1: Introduction to Electronic Circuits PDF 465.54KB
- Module 2: Introduction to Digilent's Digital Design Circuit Boards PDF 65.94KB
- Module 3: Circuit Structure with an Introduction to CAD Tools PDF 247.60KB
- Module 4: Logic Minimization PDF 353.07KB
- Module 5: Introduction to VHDL PDF 197.37KB
- Module 6: Combinational Circuit Blocks PDF 244.46KB
- Module 7: Combinational Arithmetic Circuits PDF 361.00KB
- Module 8: Signal Propagation Delays PDF 126.77KB
- Module 9: Basic Memory Circuits PDF 232.41KB
- Module 10: The Structural Design of Sequential Circuits PDF 245.58KB
Saites
Xilinx produkti (FPGA čipi)
- Xilinx kompānijas (FPGA ražotājs) portāls
- Spartan 3E FPGA Family datasheet
- Spartan-6 FPGA Family datasheet
- Using Digital Clock Managers (DCMs) in Spartan-3 FPGAs
Xilinx attīstītajrīki
DiLab ir pieejami sekojoši Xilinx (Digilent) attīstītajrīki:
- ANVYL
- Anvyl Reference Manual: (PDF) (Website)
- ANVYL programmēšana - Pamācība, kā uzlādēt dizainu uz Anvyl dēļa
- UCF file templates.
PMOD papildus moduļi
Mums ir pieejami dažādi PMOD perifērijas iekārtu moduļi (pārsvarā 1x6 formātā) par kuriem sīkāk var lasīt Digilentic portālā.
- ADC modulis PmodAD1 PB200064
- DAC modulis: PmodDA2 PB200-113
- 3.5mm konektori ar pastiprinātāju: PmodAmp1
- RCA konektori: Pmod CON4 (CON1 RevB)
- BNC konektori: Pmod CON2 PB200066
- 7-segmentu LED x 2: PmodSSD
- Pmod LED x 4: PB200076
- Komutācijas modulis PTPH PB200-001
- Seriālā zibatmiņa: PmodSF
- Video signālu dekodera modulis VDEC1
- Pmod kabelis 6x1
- Skaļrunis ar 3.5mm konektoru: SPEAKER
- Konektors vadiem PmodCON1
- Rotējošais enkoderis PmodENC
- USB saskarne PmodUSBUART
- Ultraskaņas distances mērītājs PmodMAXSONAR
- Audio DAC SPI PmodMIC3
Xilinx ISE instalācija
Xilinx ISE WebPACK (14.7)
Xilinx ISE WebPACK (12.2)
- Installer for Linux TAR/GZ 3.02GB (nepieciešams reģistrēties www.xilinx.com)
- Installer for Windows TAR/GZ 2.96GB (nepieciešams reģistrēties www.xilinx.com)
- ISE In-Depth Tutorial (ver.12.2) PDF 5.04MB
- ISim User Guide (ver.12.2) PDF 1.96MB
Xilinx ISE lietošana
- UCF failu šabloni FPGA platformām.
Vispārīga lietošana
- ISE In-Depth Tutorial (ver.14.7) PDF
- Xilinx ISE dokumentācija - dažādi dokumenti
Simulācija ar ISim
- ISim User Guide (ver.14.7) PDF 1.96MB
- ISim in-depth Tutorial PDF
- Simulācija ar ISim - pamācības video
Simulācija ar ModelSim
- Xilinx ISE In-Depth Tutorial - PDF
- Pamācība no Pensilvānijas Universitātes
- How to do a Timing Simulation using Modelsim and Xilinx ISE - video pamācība
Video applications using FPGA
ANVYL attīstītājrīks
ANVYL ir Xilinx Spartan 6G FPGA bāzēts attīstītājrīks ar dažādām papildus un perifērijas iekārtām.
- ANVYL programmēšana - kā uzlādēt dizainu uz Anvyl dēļa
- Video ar Anvyl programmēšanas piemēru
PYNQ ietvars
PYNQ ir ietvars kas iespējo FPGA aparatūras funkciju izmantošanu ar Python programmēšanas valodu. Atbalstītā aparatūra iekļauj ZYNQ.
PYNQ informācijas avoti:
PYNQ projekti
PYNK un PMOD
HDL pamācības (Verilog, VHDL)
- Verilog Tutorials
- handout by Peter Milder (15 pages).
- by asic-world (227 pages) PDF 876.25KB
- by asic-world, online version
- by NANDLand.com
- VHDL Tutorials
- VHDL Tutorial I (15 pages)
- VHDL Tutorial II (84 pages) PDF 391.95KB
- Debouncing
RISC-V
- Specifications
- Getting started - Assembly manual
- Green card
- RISC-V Instruction Set Manual from five-embeddev.com
- RISC-V Interpretators online
- RISC-V Online Assembler
Seriālie protokoli
- Asinhroni seriālais ports, RS232 un tml.
- SPI protokols
- SPI tutorial at Sparkfun
- I2C un 2-wire protokols
- I2C communication protocol at Circuit basics
- I2C Tutorial at Sparkfun
- One-wire protokols
- 1-wire protocol basics at rfwireless-world.com
- Guide to 1-wire devices at Maxim-IC
- USB
- Specifikācija - Infineon / Cypress.
IP cores priekš FPGA
- LatticeMicro 32 soft-procesors
Ieteikumi prezentāciju veidošanā
Piezīmes par plakātu un prezentāciju veidošanu
Citi kursi un saites
- 8 Bit Workshop - aparatūras simulators pārlūkā, tai skaitā Verilog.
- Circuitlab.com - vienkāršu shēmu testēšana interneta pārlūkā
- FPGA 4 fun! - FPGA informācija un projekti iesācējiem un ne tikai.
- Hades demonstration applets
- CPU Shack
- Why hardware development is hard by Dan Luu
- How a CPU is made (video)
- FPGA 101 - Making awesome stuff with FPGAs - FPGA 101 lekcija "30th Chaos Communication Congress (30c3) by the Chaos Computer Club (CCC)" konferencē.
- Intel: The Making of a Chip with 22nm/3D Transistors (video)
- Down to the silicon: how the Z80's registers are implemented
- MIT Introductory Digital Systems Lab (2008.g. MIT kurss)
- ASIC izmaksu kalkulators (Sigenics)
- HotMobile 2017 - Separated by Birth: Hidden Differences Between Seemingly-Identical Smartphone CPU's
Domu graudi
- Tranzistors - 1953.gada dokumentālā filma