Difference between revisions of "LU-DIP-b"
(Redirecting to LU-DIP-b12) |
(→xx.01.2025) |
||
(230 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
<big> |
|||
#REDIRECT [[LU-DIP-b12]] |
|||
'''Īssaites:''' |
|||
[[#Kalendārs | Kalendārs]] | |
|||
[[#Uzdevumi | Uzdevumi]] | |
|||
[[#Resursi | Resursi]] | |
|||
</big> |
|||
[[#{{CURRENTDAY2}}.{{CURRENTMONTH}}.{{CURRENTYEAR}} | Šodiena... (ja ir lekcija)]] |
|||
{{LUDFKurss|Ievads digitālajā projektēšanā|DIP|DatZ3074|2DAT3255}} |
|||
* Pasniedzējs: Leo Seļāvo |
|||
== Darbu iesniegšana un vērtēšana == |
|||
{{KursiMD|DIP|50%|10%}} |
|||
== Kalendārs == |
|||
{| border=1 cellspacing=0 cellpadding=4 |
|||
|- |
|||
! Datumi |
|||
! Kursa saturs |
|||
! Uzdevumi |
|||
|- |
|||
| |
|||
===== 05.09.2024 ===== |
|||
| [http://selavo.lv/kursi/dip/L01-Introduction.1.02.pdf Ievadlekcija. Digitālās projektēšanas process.] |
|||
PD: Iepazīšanās ar PYNQ, ANVYL un Spartan 3E platformām. |
|||
| |
|||
[[#Xilinx ISE instalācija]] - sagatavot darba vidi. |
|||
|- |
|||
| |
|||
===== 12.09.2024 ===== |
|||
| |
|||
[http://selavo.lv/kursi/dip/L02-Spartan3E.1.01.pdf Digitālo iekārtu izstrādes pamatelementi.] |
|||
<!-- * PYNQ platformas apskats. --> |
|||
| |
|||
PD: Xilinx ISE programmatūras instalācija (~15GB) un apskats |
|||
Uzdots: [[#MD_LED]] |
|||
Uzdots: [[#MD_SEK]] |
|||
|- |
|||
| |
|||
===== 19.09.2024 ===== |
|||
| [http://selavo.lv/kursi/dip/L03-Triggers&Clock.1.02.pdf Trigeri. Pulkstenis.] |
|||
PD: Darbs pie summatora izveides Xilinx ISE platformā |
|||
| |
|||
Uzdots: [[#MD_ADD]] |
|||
Termiņš: [[#MD_LED]] |
|||
|- |
|||
| |
|||
===== 26.09.2024 ===== |
|||
| |
|||
MUX, DEMUX. ALU. Saskaitītājs un atņēmējs. Ievads CPU un DataPath. |
|||
[http://selavo.lv/kursi/dip/L04-CPUPartOne.1.02.pdf slaidi] |
|||
| |
|||
* Termiņš: [[#MD_SEK]] |
|||
|- |
|||
| |
|||
===== 03.10.2024 ===== |
|||
| |
|||
[http://selavo.lv/kursi/dip/L09-HDLVerilog.1.02.pdf Aparatūras apraksta valodas. Verilog.] |
|||
| |
|||
<!-- [[#PS1]] praktiskais darbs --> |
|||
* Uzdots: [[#MD_ALU]] |
|||
* Termiņš: [[#MD_ADD]] |
|||
|- |
|||
| |
|||
===== 10.10.2024 ===== |
|||
| |
|||
[https://drive.google.com/open?id=0B55VrJN-wdIgdXJLaFdFaWNPNWs Verilog (turpinājums). Galīgs Stāvokļu Automāts (FSM)] |
|||
[[#PV1]] praktiskais darbs. Verilog un galīgo stāvokļu automāts (FSM). |
|||
| |
|||
<!-- [[#PS2]] praktiskais darbs --> |
|||
Termiņš: [[#MD_ALU]] |
|||
|- |
|||
| |
|||
===== 17.10.2024 ===== |
|||
| |
|||
[https://courses.cs.washington.edu/courses/cse378/10sp/lectures/lec09-perf.pdf Vientakts Procesors.] Veiktspējas analīze. |
|||
Arhīvs: |
|||
* [http://selavo.lv/kursi/dip/L05-CPUPartTwo.1.02.pdf CPU. DataPath (turpinājums). Instrukciju izpildes maģistrāle.] |
|||
* [http://selavo.lv/kursi/dip/L06-CPUPartThree.1.02.pdf CPU. DataPath (turpinājums). Zarošanās. Kontrole.] |
|||
* [http://selavo.lv/kursi/dip/L07-CPUPartFour.1.02.pdf CPU. DataPath (nobeigums). Ātrāks summators. Reģistru fails.] |
|||
| |
|||
Turpinam [[#PV1]] praktisko darbu. Mērķis - simulēt jūsu dizainu ISE ISIM vidē. |
|||
Paziņots: [[#MD_Perf]]: Divu procesoru salīdzinoša veiktspējas analīze. |
|||
|- |
|||
| |
|||
===== 24.10.2024 ===== |
|||
| [http://selavo.lv/kursi/dip/L11-Memory.1.02.pdf Atmiņa. Fiziskās realizācijas varianti.] |
|||
| |
|||
Termiņš: [[#PV1]] |
|||
Termiņš: [[#MD_Perf]]: Divu procesoru salīdzinoša veiktspējas analīze. |
|||
|- |
|||
| |
|||
===== 31.10.2024 ===== |
|||
| |
|||
[http://selavo.lv/kursi/dip/L12-MulticycleCPU.1.01.pdf Daudztaktu procesors.] |
|||
[http://selavo.lv/kursi/dip/L13-MulticycleCPUPartTwo.1.02.pdf Daudztaktu procesors (nobeigums).] |
|||
Diskusija par kursa projektu. |
|||
| |
|||
Termiņš [[#PV2]]: 32x32 bitu reģistru fails |
|||
|- |
|||
| |
|||
===== 14.11.2024 ===== |
|||
| |
|||
'''Vidus semestra kontroldarbs''' |
|||
Pieejams e-Studijās |
|||
| |
|||
|- |
|||
| |
|||
===== 07.11.2024 ===== |
|||
| |
|||
Ievads konveijera (pipelined) arhitektūrā. |
|||
[https://cseweb.ucsd.edu/classes/su06/cse141/slides/s09-pipeline-1up.pdf Designing a Pipelined CPU] (lekciju slaidi no UCSD) |
|||
| |
|||
<!-- |
|||
Termiņš: [[#PP]] - Kursa projekta pieteikums |
|||
--> |
|||
|- |
|||
| |
|||
===== 21.11.2024 ===== |
|||
| |
|||
FPGA uzbūve un izstrādes dzīves cikls. Map, place, route. |
|||
* [http://selavo.lv/kursi/dip/L14-FPGA.1.01.pdf Slaidi] |
|||
* [https://slideplayer.com/slide/3380815/ Basic FPGA Architectures] (slaidi no Xilinx) |
|||
* [https://www.electronicdesign.com/technologies/fpgas/article/21801527/the-principles-of-fpgas The principles of FPGA] (no Electronic Design) |
|||
* [https://learn.sparkfun.com/tutorials/how-does-an-fpga-work/all How Does FPGA Work] (no Sparkfun) |
|||
* [https://youtu.be/lLg1AgA2Xoo Introduction to FPGA Part 1 - What is an FPGA?] no Digi-Key Electronics (video) |
|||
* [https://youtu.be/gUsHwi4M4xE EEVblog #496 - What Is An FPGA?] (video) |
|||
* [https://youtu.be/m-8G1Yixb34 The History of the FPGA: The Ultimate Flex] (video) |
|||
<!-- * [http://www.ppouyan.net/wp-content/uploads/2010/09/fpga.pdf How Does FPGA Work] (lekciju slaidi no Lund University) --> |
|||
| |
|||
Termiņš: [[#MD_ID]] |
|||
|- |
|||
| |
|||
===== 28.11.2024 ===== |
|||
| |
|||
Kopnes, saskarnes, to iedalījums. |
|||
* [https://drive.google.com/open?id=0B55VrJN-wdIgQkZHVWNSN3JxZ00 Slaidi] |
|||
[https://drive.google.com/open?id=0B55VrJN-wdIgYjhWQkxFbXNJbUE Integrālo mikroshēmu kopnes.] |
|||
| |
|||
Termiņš: [[#MD_CPU1]] |
|||
|- |
|||
| |
|||
===== 05.12.2024 ===== |
|||
| |
|||
Diskusija par kursa projektiem. |
|||
| |
|||
Termiņš: [[#MD_RAM]] |
|||
|- |
|||
| |
|||
===== 12.12.2024 ===== |
|||
| |
|||
Kursa kopsavilkums. |
|||
| |
|||
Termiņš: [[#MD_ROM]] |
|||
|- |
|||
| |
|||
===== 09.01.2025 ===== |
|||
| |
|||
'''14:30: Eksāmens''' |
|||
Projektu prezentācijas - kursa noslēgums |
|||
| |
|||
[[#EX]] - '''Eksāmena nodevumi''' aprakstīti šeit |
|||
|} |
|||
=Uzdevumi= |
|||
== Praktiskie darbi (PD) == |
|||
===PY1=== |
|||
'''PYNQ un PMOD ievads''' |
|||
PY1 - parādīt skaitli 42 uz PMOD 7-segmentu dubulto LED indikatoru |
|||
* [https://pynq.readthedocs.io/en/v2.0/pynq_libraries/pmod.html PYNQ un PMOD] |
|||
* [https://pynq.readthedocs.io/en/v2.5.1/pynq_package/pynq.lib/pynq.lib.pmod.html#module-pynq.lib.pmod.pmod_io Pmod_IO klase] |
|||
* [https://store.digilentinc.com/pmod-ssd-seven-segment-display/ 7 segmentu PMOD modulis] |
|||
Iesūtīt estudijās Jupyter notebook ar attiecīgās programmas tekstu. |
|||
===PY2=== |
|||
'''PYNQ un rotējošais kodētājs''' |
|||
Izmanojot PYNQ un Rotējošā kodētāja PMOD moduli izvadīt us ekrāna skaitli, kas palielina vai samazina vērtību atkarībā no pogas griešanas virziena. |
|||
* [https://pynq.readthedocs.io/en/v2.0/pynq_libraries/pmod.html PYNQ un PMOD] |
|||
* [https://pynq.readthedocs.io/en/v2.5.1/pynq_package/pynq.lib/pynq.lib.pmod.html#module-pynq.lib.pmod.pmod_io Pmod_IO klase] |
|||
* [https://reference.digilentinc.com/reference/pmod/pmodenc/start Rotējošā kodētāja PMOD modulis] |
|||
Iesūtīt estudijās Jupyter notebook ar attiecīgās programmas tekstu. |
|||
===PY3=== |
|||
'''PYNQ un ultraskaņas distances sensors ar seriālo protokolu''' |
|||
Izmanojot PYNQ un MAXSONAR PMOD moduli izvadīt uz ekrāna skaitli, kas norāda distanci līdz sensoram. Izmantot seriālā protokola iespēju ko nodrošina ultraskaņas sensors. |
|||
* [https://pynq.readthedocs.io/en/v2.0/pynq_libraries/pmod.html PYNQ un PMOD] |
|||
* [https://pynq.readthedocs.io/en/v2.5.1/pynq_package/pynq.lib/pynq.lib.pmod.html#module-pynq.lib.pmod.pmod_io Pmod_IO klase] |
|||
* [https://reference.digilentinc.com/reference/pmod/pmodmaxsonar/start MAXSONAR PMOD modulis] |
|||
Iesūtīt estudijās Jupyter notebook ar attiecīgās programmas tekstu. |
|||
===PS1=== |
|||
Spartan 3E praktiskais darbs. |
|||
Izveidot shēmu, kompilēt, un testēt uz Spartan 3E aparatūras |
|||
* Slēdzis SW1 ieslēdz LED1 |
|||
* SW2 xor SW3 ==> LED3 |
|||
Rezultātu atrādīt pasniedzējam. |
|||
===PS2=== |
|||
Spartan 3E praktiskais darbs. |
|||
Izveidot shēmu, kompilēt, un testēt uz Spartan 3E aparatūras |
|||
* LED7 ieslēdzas un izslēdzas ar frekvenci reizi sekundē. |
|||
* Izmantot iebūvēto 50MHz takts ģeneratoru |
|||
Rezultātu atrādīt pasniedzējam. |
|||
===PV1=== |
|||
'''Verilog un galīgo stāvokļu automāti (FSM)''' |
|||
Izveidot FSM (diagrammu) luksoforam, kurš maina gaismas no zaļās uz dzelteno un tad sarkano, tad atkal dzelteno, un tad visu atkārto. |
|||
* Ieeja: takts signāls CLK |
|||
* Izeja: trīs krāsu signāli: GREEN, YELLOW, RED |
|||
* Ilgums krāsām: zaļajam 7 taktis, dzeltenajam 1 takts, sarkanajam 7 taktis. |
|||
* Uzdevumi: |
|||
** Uzzīmēt FSM diagrammu ar stāvokļiem un pārejām šādai sistēmai. Iesniegt PDF failā. |
|||
** Uzrakstīt kodu Verilog valodā, iesniegt pirmkoda failu luksofors.v. |
|||
** Rezultātus iesniegt e-Studijās kā '''PV1''' |
|||
'''II daļa''' |
|||
* Simulēt Verilog kodu Xilinx Webpack/ISE ietvarā, izmantojot ISIM. |
|||
** [https://www.xilinx.com/support/documentation/sw_manuals/xilinx11/ug682.pdf ISim indepth tutorial] |
|||
===PV2=== |
|||
'''Reģistru fails un simulācija''' |
|||
Izveidot 32x32 reģistru failu procesoram. Veikt simulāciju ar ISim, kas pārbauda tā darbību. |
|||
* Reģistru failā ir 32 biti |
|||
* Katrs reģistrs ir 32 bitus garš |
|||
* Turpmāk aprakstā portu/signālu bitu skaits tiek norādīts aiz tiem iekavās. |
|||
* Ir divi porti A(32) un B(32), kas ļauj vienlaicīgi nolasīt divu reģistru vērtības. Lasāmo reģistru adreses tiek norādītas ar AA(5) un AB(5) |
|||
* Ir viens ports D(32), kas ļauj ierakstīt viena reģistra vērtību CLK uzlecošās frontes notikuma brīdī, ja ir iespējota rakstīšana ar signālu WR. Reģistrs, kurā rakstīt, tiek norādīts ar signālu AD(5). |
|||
* Lasīšanas un rakstīšanas darbībām jāvar notikt paralēli, vienlaicīgi. |
|||
Simulācijas daļā demonstrēt, kā informācija tiek rakstīta visos reģistros, kā arī lasīta no tiem. Lai veiktu šo simulāciju, izveidot testa moduli (testbench) atsevišķā Verilog failā. |
|||
Iesūtīt e-Studijās: |
|||
* PV2-kods - Verilog pirmkodu reģistru failam un tā testa modulim. |
|||
* PV2-simulacija - PDF failu ar ekrāna šāviņu/iem no ISim, kas demonstrē korektu reģistra faila darbību. |
|||
== PD - praktiskie darbi ar aparatūru zemā līmenī == |
|||
Spartan 3E - projekta iestatījumi: |
|||
* Target device: xc3s500e-4fg320 |
|||
Praktiskie darbi: |
|||
* [[DIPb10:PD1 | PD1]] |
|||
* [[DIPb10:PD2 | PD2]] |
|||
* [[DIPb10:PD3 | PD3]] |
|||
* [[DIPb10:PD4 | PD4]] |
|||
* [[DIPb10:PD5 | PD5]] |
|||
<!-- |
|||
--> |
|||
== Mājas darbi (MD) == |
|||
==== MD_LED ==== |
|||
Mērķis: apgūt Spartan-3E attīstītājrīku un darba plūsmu veidojot vienkāršas digitālas iekārtas. |
|||
Realizēt sekojošu funkcionalitāti ar Spartan-3E rīka palīdzību: |
|||
* Divi slēdzīši tiek izmantoti kā ieejas signāli loģikas funkcijām. |
|||
* Divi LED seko slēdzīšu stāvoklim: ja ieslēgts slēdzis, LED spīd (nozīmē stāvokli "1") |
|||
* Pieci LED attēlo sekojošu funkciju vērtības: AND, OR, NAND, NOR, XOR |
|||
Izveidot shēmu Xilinx ICE rīkā, kompilēt to un pārbaudīt tās darbību uz jums izsniegtā "dēļa" - Spartan attīstītājrīka. |
|||
Iesniegt: |
|||
* Aprakstu PDF failā, kurā ir īss stāsts par Jūsu risinājumu un shēma un UCF faila fragments (ekrānšāviņi), kā arī saite uz video kas demonstrē risinājumu uz aparatūras. |
|||
==== MD_SEK ==== |
|||
Mērķis: apgūt takts ģeneratora funkcionalitāti un frekvences dalīšanas elementus. |
|||
Uzdevums: |
|||
* Izveidot shēmu kas ņem Spartan-3E rīka iebūvētā takts ģeneratora signālu un izvada 1Hz signālu uz LED: tā, ka LED ir 1 sekundi ieslēgta un tad 1 sekundi izslēgta, un tā joprojām. |
|||
* Kompilēt risinājumu un pārbaudīt darbībā uz Spartan-3E attīstītājrīka. |
|||
Iesniegt: |
|||
* Aprakstu PDF failā, kurā ir īss stāsts par Jūsu risinājumu un shēma un UCF faila fragments (ekrānšāviņi), kā arī saite uz video kas demonstrē risinājumu uz aparatūras. |
|||
====MD_ADD==== |
|||
Mērķis: apgūt shēmtehnikas ievadu ISE izstrādes vidē |
|||
Uzdevumi: |
|||
* Uzstādīt ISE izstrādes vidi. Šis prasīs laiku un vismaz 15GB lai lejuplādētu ISE instalāciju. |
|||
* Izstrādāt shēmtehnikā digitālu ierīci, kas saskaita divus 2-bitu skaitļus A un B, un dod rezultātu 3-bitu skaitli C. |
|||
* Simulēt izstrādāto shēmu ar ISim rīku. |
|||
Palīginformāciju meklēt sadaļās [[#Xilinx ISE instalācija]] un [[#Xilinx ISE lietošana]]. |
|||
Iesniegt: |
|||
* Aprakstu PDF failā, kurā ir īss stāsts par risinājumu, tā shēma un/vai HDL pirmkods, kā arī simulācijas laika diagrammas, kas demonstrē, korektu darbību. |
|||
====MD_ALU==== |
|||
'''Mērķis''': apgūt Verilog aparatūras aprakstīšanas valodu |
|||
'''Uzdevumi''': |
|||
* Izstrādāt ALU - aritmētiski loģisko ierīci Verilog valodā. |
|||
* Simulēt izstrādāto shēmu ar ISim rīku. |
|||
ALU apraksts: |
|||
* Ieejā: |
|||
** divas 32-bitu maģistrāles A un B |
|||
** OpCode - veicamās operācijas kods (3 biti) |
|||
* Izejā |
|||
** 32-bitu maģistrāle Q, kur jāizvada operācijas rezulāts |
|||
** Karodziņi Z (zero, rezultāts ir nulle) un CR (Carry izvads pēc aritmētiskajām operācijām) |
|||
OpCode vērtības nosaka sekojošas darbības, kas jāveic ALU: |
|||
* 0: Q = A |
|||
* 1: Q = not A (negācija) |
|||
* 2: Q = A and B |
|||
* 3: Q = A or B |
|||
* 4: Q = A xor B |
|||
* 5: Q = A + B |
|||
* 6: Q = A - B |
|||
* 7: Q = B |
|||
'''Iesniegt''' eStudijās: |
|||
* Pirmkodu failā md_alu.v |
|||
* Aprakstu failā apraksts.pdf , kur aprakstīti un parādīti simulācijas rezultāti (laika diagrammas) jūsu izvēlētajiem testa piemēriem. |
|||
Palīginformāciju meklēt sadaļā [[#HDL tutorials]]. |
|||
===MD_Perf=== |
|||
Izvēlēties divus līdzīgus procesorus kas tiek izmantoti vai nu galda datoros, vai viedtālruņos, vai mikrokontrolieros un salīdzināt to veiktspēju līdzīgi kā tas tika darīts lekcijā. Pamatot savu analīzi ar attiecīgām atsaucēm uz dokumentāciju, ko esat atradis par šiem procesoriem. |
|||
Iesniegt aprakstu PDF formātā estudijās līdz praktisko darbu lekcijas laika beigām. |
|||
===MD_ID=== |
|||
'''Mērķis''': Izprast kodēšanas formātu RISC-V instrukciju kopai. |
|||
'''Uzdevumi''': |
|||
* Izstrādāt ID - "Instruction Decode" moduli RISC-V pamata instrukciju atkodēšanai. Modulis būs lietojams RISC-V procesorā. |
|||
* Simulēt izstrādāto moduli ar ISim rīku, demonstrējot tā korektu darbību. |
|||
Vadoties pēc "RISC-V Green Card" Jums jārealizē sekojošas instrukciju grupas: |
|||
* Loads - LB, LH, LW, LBU, LHU |
|||
* Stores - SB, SH, SW |
|||
* Shifts - SLL, SRL, SRA, SLLI, SRLI, SRAI |
|||
* Arithmetic - ADD, ADDI, SUB, LUI, AUIPC |
|||
* Logical - XOR, XORI, OR, ORI, AND, ANDI |
|||
* Compare - SLT, SLTI, SLTU, SLTIU |
|||
* Branches - BEQ, BNE, BLT, BGE, BLTU, BGEU |
|||
* Jump & Link - JAL, JALR |
|||
ID moduļa apraksts: |
|||
* Ieejā: |
|||
** Instrukcijas vārds "iw" 32 bitu garumā |
|||
* Izejā: |
|||
** Avota reģistra "rs1" adrese (5 biti) |
|||
** Avota reģistra "rs2" adrese (5 biti) |
|||
** Mērķa reģistra "rd" adrese (5 biti) |
|||
** Konstantes vērtība "imm" (32 biti) |
|||
** Funkcijas kods "funct3" (3 biti) |
|||
** Funkcijas kods "funct7" (7 biti) |
|||
Ja kāds no izejas signāliem instrukcijai nav zināms, piemēram, funct7, tad varat izvadīt vērtību pēc izvēles, piemēram 0. |
|||
'''Iesniegt''' eStudijās: |
|||
* Pirmkodu failā idecode.v |
|||
* Aprakstu failā apraksts.pdf , kur aprakstīti un parādīti simulācijas rezultāti (laika diagrammas) jūsu izvēlētajiem testa piemēriem. |
|||
'''Palīginformācija''' |
|||
Palīginformāciju meklēt sadaļā [[#RISC-V]]. |
|||
Īpaši noderīgi varētu būt: |
|||
* [https://www.cl.cam.ac.uk/teaching/1617/ECAD+Arch/files/docs/RISCVGreenCardv8-20151013.pdf RISC-V Green card] |
|||
* [https://five-embeddev.com/riscv-isa-manual/latest/instr-table.html RISC-V ISA Manual] - tabula ar instrukcijām un to kodiem. |
|||
* [https://riscvasm.lucasteske.dev/# RISC-V Online Assembler] |
|||
===MD_CPU1=== |
|||
'''Mērķis''': Solis tuvāk RISC-V modelim ar shēmā integrētiem galvenajiem elementiem. |
|||
'''Uzdevumi''': |
|||
* Izveidot procesora struktūru iekļaujot iepriekš izstrādātos elementus (RF, ALU, ID,...) |
|||
* Pielāgot ALU konkrētām RISC-V instrukcijām (operāciju kodiem jāsakrīt ar instrukciju tipa un funkcijas lauku kodējumu) |
|||
* Simulēt izstrādāto moduli ar ISim rīku, demonstrējot tā korektu darbību. |
|||
'''Iesniegt''' eStudijās: |
|||
* Visu projektu zip formātā |
|||
* Aprakstu failā apraksts.pdf , kur aprakstīti un parādīti simulācijas rezultāti (laika diagrammas) jūsu izvēlētajiem testa piemēriem. |
|||
'''Palīginformācija''' |
|||
Palīginformāciju meklēt sadaļā [[#RISC-V]]. |
|||
=== MD_RAM === |
|||
'''Mērķis''': Izveidot operatīvās atmiņas RAM moduli iekļaušanai procesorā. |
|||
'''Uzdevumi''': |
|||
* Izveidot 64 x 4-baitu (viena vārda) RAM atmiņas moduli, kurā iespējams ierakstīt un nolasīt informāciju pēc dotas adreses. |
|||
* Simulēt izstrādāto moduli ar ISim rīku, demonstrējot tā korektu darbību. |
|||
'''Moduļa saskarnes apraksts''': |
|||
Ieejā: |
|||
* DI[31:0]: Dati uz atmiņu |
|||
* A[6:0]: Adrese |
|||
* WE - "Write enable" - signāls, ka norāda, ka dati jāraksta atmiņā. |
|||
* CLK - takts signāls, pēc kura frontes dati tiks rakstīti atmiņā. |
|||
Izejā: |
|||
* DO[31:0]: Dati no atmiņas |
|||
'''Iesniegt''' eStudijās: |
|||
* Pirmkoda failus vienā zip failā |
|||
* Aprakstu failā apraksts.pdf , kur aprakstīti un parādīti simulācijas rezultāti (laika diagrammas) jūsu izvēlētajiem testa piemēriem. |
|||
'''Palīginformācija''' |
|||
Palīginformāciju meklēt ISE rīka atmiņas komponenšu "Memory" aprakstā. |
|||
=== MD_ROM === |
|||
'''Mērķis''': Izveidot instrukciju atmiņas ROM moduli iekļaušanai procesorā. |
|||
'''Uzdevumi''': |
|||
* Izveidot 64 x 4-baitu (viena vārda) ROM atmiņas moduli, kurā iespējams definēt saturu kompilācijas laikā. |
|||
* Simulēt izstrādāto moduli ar ISim rīku, demonstrējot tā korektu darbību. |
|||
'''Moduļa saskarnes apraksts''': |
|||
Ieejā: |
|||
* A[6:0]: Adrese |
|||
Izejā: |
|||
* DO[31:0]: Dati no atmiņas |
|||
Atmiņas moduļa saturu jāspēj nodrošināt ar parametru (atribūtu) lai tajā varētu ierakstīt patvaļīgas RISC-V programmas kompilēto kodu. |
|||
'''Iesniegt''' eStudijās: |
|||
* Pirmkoda failus vienā zip failā |
|||
* Aprakstu failā apraksts.pdf , kur aprakstīti un parādīti simulācijas rezultāti (laika diagrammas) jūsu izvēlētajiem testa piemēriem. |
|||
'''Palīginformācija''' |
|||
* Palīginformāciju meklēt sadaļā [[#RISC-V]]. |
|||
* [https://youtu.be/1CA1bEGM6CE Piemērs kā veidot ROM ar saturu failā, Verilog valodā (video)] |
|||
<!-- |
|||
* [[DIPb10:MD1 | MD1]] |
|||
* [[DIPb10:MD2 | MD2]] |
|||
* [[DIPb10:MD3 | MD3]] |
|||
* [[DIPb10:MD4 | MD4]] |
|||
--> |
|||
== Kursa projekts (KP) == |
|||
<!-- |
|||
* [[DIPb10:KP1 | KP1]] |
|||
* [[DIPb10:KP2 | KP2]] |
|||
* [[DIPb10:KP3 | KP2]] |
|||
--> |
|||
==== PP ==== |
|||
Projekta pieteikums: |
|||
Kursa beigu projekta tēmu studenti izvēlas individuāli un saskaņo ar pasniedzēju. |
|||
Estudijās zem nodevuma PP jāiesniedz projekta apraksts ('''PDF''' faila formātā), kas atbild uz sekojošiem jautājumiem: |
|||
* Vārds studentam vai arī visiem komandas studentiem, kas piedalās šajā projektā. |
|||
* Projekta apraksts, motivācija. |
|||
* Risinājuma apraksts, īsumā. |
|||
* Projekta komponentes. Studentu atbildības sadalījums pa komponentēm. |
|||
* Nepieciešamie resursi. |
|||
* Izpildes plāns ar starprezultātu datumiem un sasniedzamajiem mērķiem šajos datumos. |
|||
==== EX ==== |
|||
Projekta risinājuma iesniegums - eksāmens. |
|||
Jāiesniedz: |
|||
* Tehniskais risinājums ar visu pirmkodu un projekta konfigurācijas failiem kā zip fails. |
|||
* Plakāts PDF formātā, kasilustrē projektu, motivāciju, rezultātus un secinājumus. |
|||
** [[LU::poster-howto | Ieteikumi plakāta prezentācijas]] veidošanā |
|||
* Eseja PDF formātā par projekta izpildi un rezultātiem. Esejā jāiekļauj: |
|||
** Autoru saraksts un katra ieguldījums projektā. |
|||
** Saite uz projekta demonstrācijas video. |
|||
** Projekta apraksts ar attiecīgām diagrammām un attēliem. |
|||
** Simulācijas testu rezultāti, kas apliecina korektu darbību. |
|||
** Esejai komplektā ar plakātu jādod pilnīgs ieskats visos projekta aspektos. |
|||
{{DIP_saites}} |
Latest revision as of 14:00, 30 October 2024
Īssaites: Kalendārs | Uzdevumi | Resursi | Šodiena... (ja ir lekcija)
Ievads digitālajā projektēšanā (DIP)
LU DF bakalaura studiju kurss DatZ3074, meklēt eStudijās.
- Pasniedzējs: Leo Seļāvo
Darbu iesniegšana un vērtēšana
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
Datumi | Kursa saturs | Uzdevumi |
---|---|---|
05.09.2024 |
Ievadlekcija. Digitālās projektēšanas process.
PD: Iepazīšanās ar PYNQ, ANVYL un Spartan 3E platformām. |
#Xilinx ISE instalācija - sagatavot darba vidi. |
12.09.2024 |
PD: Xilinx ISE programmatūras instalācija (~15GB) un apskats Uzdots: #MD_LED Uzdots: #MD_SEK | |
19.09.2024 |
Trigeri. Pulkstenis.
PD: Darbs pie summatora izveides Xilinx ISE platformā |
Uzdots: #MD_ADD Termiņš: #MD_LED |
26.09.2024 |
MUX, DEMUX. ALU. Saskaitītājs un atņēmējs. Ievads CPU un DataPath. slaidi |
|
03.10.2024 |
||
10.10.2024 |
Verilog (turpinājums). Galīgs Stāvokļu Automāts (FSM) #PV1 praktiskais darbs. Verilog un galīgo stāvokļu automāts (FSM). |
Termiņš: #MD_ALU |
17.10.2024 |
Vientakts Procesors. Veiktspējas analīze. Arhīvs: |
Turpinam #PV1 praktisko darbu. Mērķis - simulēt jūsu dizainu ISE ISIM vidē. Paziņots: #MD_Perf: Divu procesoru salīdzinoša veiktspējas analīze. |
24.10.2024 |
Atmiņa. Fiziskās realizācijas varianti. |
Termiņš: #PV1 Termiņš: #MD_Perf: Divu procesoru salīdzinoša veiktspējas analīze. |
31.10.2024 |
Daudztaktu procesors (nobeigums). Diskusija par kursa projektu. |
Termiņš #PV2: 32x32 bitu reģistru fails |
14.11.2024 |
Vidus semestra kontroldarbs Pieejams e-Studijās |
|
07.11.2024 |
Ievads konveijera (pipelined) arhitektūrā. Designing a Pipelined CPU (lekciju slaidi no UCSD) |
|
21.11.2024 |
FPGA uzbūve un izstrādes dzīves cikls. Map, place, route.
|
Termiņš: #MD_ID |
28.11.2024 |
Kopnes, saskarnes, to iedalījums. |
Termiņš: #MD_CPU1 |
05.12.2024 |
|
Termiņš: #MD_RAM |
12.12.2024 |
Kursa kopsavilkums. |
Termiņš: #MD_ROM |
09.01.2025 |
14:30: Eksāmens Projektu prezentācijas - kursa noslēgums |
#EX - Eksāmena nodevumi aprakstīti šeit |
Uzdevumi
Praktiskie darbi (PD)
PY1
PYNQ un PMOD ievads
PY1 - parādīt skaitli 42 uz PMOD 7-segmentu dubulto LED indikatoru
Iesūtīt estudijās Jupyter notebook ar attiecīgās programmas tekstu.
PY2
PYNQ un rotējošais kodētājs
Izmanojot PYNQ un Rotējošā kodētāja PMOD moduli izvadīt us ekrāna skaitli, kas palielina vai samazina vērtību atkarībā no pogas griešanas virziena.
Iesūtīt estudijās Jupyter notebook ar attiecīgās programmas tekstu.
PY3
PYNQ un ultraskaņas distances sensors ar seriālo protokolu
Izmanojot PYNQ un MAXSONAR PMOD moduli izvadīt uz ekrāna skaitli, kas norāda distanci līdz sensoram. Izmantot seriālā protokola iespēju ko nodrošina ultraskaņas sensors.
Iesūtīt estudijās Jupyter notebook ar attiecīgās programmas tekstu.
PS1
Spartan 3E praktiskais darbs. Izveidot shēmu, kompilēt, un testēt uz Spartan 3E aparatūras
- Slēdzis SW1 ieslēdz LED1
- SW2 xor SW3 ==> LED3
Rezultātu atrādīt pasniedzējam.
PS2
Spartan 3E praktiskais darbs. Izveidot shēmu, kompilēt, un testēt uz Spartan 3E aparatūras
- LED7 ieslēdzas un izslēdzas ar frekvenci reizi sekundē.
- Izmantot iebūvēto 50MHz takts ģeneratoru
Rezultātu atrādīt pasniedzējam.
PV1
Verilog un galīgo stāvokļu automāti (FSM)
Izveidot FSM (diagrammu) luksoforam, kurš maina gaismas no zaļās uz dzelteno un tad sarkano, tad atkal dzelteno, un tad visu atkārto.
- Ieeja: takts signāls CLK
- Izeja: trīs krāsu signāli: GREEN, YELLOW, RED
- Ilgums krāsām: zaļajam 7 taktis, dzeltenajam 1 takts, sarkanajam 7 taktis.
- Uzdevumi:
- Uzzīmēt FSM diagrammu ar stāvokļiem un pārejām šādai sistēmai. Iesniegt PDF failā.
- Uzrakstīt kodu Verilog valodā, iesniegt pirmkoda failu luksofors.v.
- Rezultātus iesniegt e-Studijās kā PV1
II daļa
- Simulēt Verilog kodu Xilinx Webpack/ISE ietvarā, izmantojot ISIM.
PV2
Reģistru fails un simulācija
Izveidot 32x32 reģistru failu procesoram. Veikt simulāciju ar ISim, kas pārbauda tā darbību.
- Reģistru failā ir 32 biti
- Katrs reģistrs ir 32 bitus garš
- Turpmāk aprakstā portu/signālu bitu skaits tiek norādīts aiz tiem iekavās.
- Ir divi porti A(32) un B(32), kas ļauj vienlaicīgi nolasīt divu reģistru vērtības. Lasāmo reģistru adreses tiek norādītas ar AA(5) un AB(5)
- Ir viens ports D(32), kas ļauj ierakstīt viena reģistra vērtību CLK uzlecošās frontes notikuma brīdī, ja ir iespējota rakstīšana ar signālu WR. Reģistrs, kurā rakstīt, tiek norādīts ar signālu AD(5).
- Lasīšanas un rakstīšanas darbībām jāvar notikt paralēli, vienlaicīgi.
Simulācijas daļā demonstrēt, kā informācija tiek rakstīta visos reģistros, kā arī lasīta no tiem. Lai veiktu šo simulāciju, izveidot testa moduli (testbench) atsevišķā Verilog failā.
Iesūtīt e-Studijās:
- PV2-kods - Verilog pirmkodu reģistru failam un tā testa modulim.
- PV2-simulacija - PDF failu ar ekrāna šāviņu/iem no ISim, kas demonstrē korektu reģistra faila darbību.
PD - praktiskie darbi ar aparatūru zemā līmenī
Spartan 3E - projekta iestatījumi:
- Target device: xc3s500e-4fg320
Praktiskie darbi:
Mājas darbi (MD)
MD_LED
Mērķis: apgūt Spartan-3E attīstītājrīku un darba plūsmu veidojot vienkāršas digitālas iekārtas.
Realizēt sekojošu funkcionalitāti ar Spartan-3E rīka palīdzību:
- Divi slēdzīši tiek izmantoti kā ieejas signāli loģikas funkcijām.
- Divi LED seko slēdzīšu stāvoklim: ja ieslēgts slēdzis, LED spīd (nozīmē stāvokli "1")
- Pieci LED attēlo sekojošu funkciju vērtības: AND, OR, NAND, NOR, XOR
Izveidot shēmu Xilinx ICE rīkā, kompilēt to un pārbaudīt tās darbību uz jums izsniegtā "dēļa" - Spartan attīstītājrīka.
Iesniegt:
- Aprakstu PDF failā, kurā ir īss stāsts par Jūsu risinājumu un shēma un UCF faila fragments (ekrānšāviņi), kā arī saite uz video kas demonstrē risinājumu uz aparatūras.
MD_SEK
Mērķis: apgūt takts ģeneratora funkcionalitāti un frekvences dalīšanas elementus.
Uzdevums:
- Izveidot shēmu kas ņem Spartan-3E rīka iebūvētā takts ģeneratora signālu un izvada 1Hz signālu uz LED: tā, ka LED ir 1 sekundi ieslēgta un tad 1 sekundi izslēgta, un tā joprojām.
- Kompilēt risinājumu un pārbaudīt darbībā uz Spartan-3E attīstītājrīka.
Iesniegt:
- Aprakstu PDF failā, kurā ir īss stāsts par Jūsu risinājumu un shēma un UCF faila fragments (ekrānšāviņi), kā arī saite uz video kas demonstrē risinājumu uz aparatūras.
MD_ADD
Mērķis: apgūt shēmtehnikas ievadu ISE izstrādes vidē
Uzdevumi:
- Uzstādīt ISE izstrādes vidi. Šis prasīs laiku un vismaz 15GB lai lejuplādētu ISE instalāciju.
- Izstrādāt shēmtehnikā digitālu ierīci, kas saskaita divus 2-bitu skaitļus A un B, un dod rezultātu 3-bitu skaitli C.
- Simulēt izstrādāto shēmu ar ISim rīku.
Palīginformāciju meklēt sadaļās #Xilinx ISE instalācija un #Xilinx ISE lietošana.
Iesniegt:
- Aprakstu PDF failā, kurā ir īss stāsts par risinājumu, tā shēma un/vai HDL pirmkods, kā arī simulācijas laika diagrammas, kas demonstrē, korektu darbību.
MD_ALU
Mērķis: apgūt Verilog aparatūras aprakstīšanas valodu
Uzdevumi:
- Izstrādāt ALU - aritmētiski loģisko ierīci Verilog valodā.
- Simulēt izstrādāto shēmu ar ISim rīku.
ALU apraksts:
- Ieejā:
- divas 32-bitu maģistrāles A un B
- OpCode - veicamās operācijas kods (3 biti)
- Izejā
- 32-bitu maģistrāle Q, kur jāizvada operācijas rezulāts
- Karodziņi Z (zero, rezultāts ir nulle) un CR (Carry izvads pēc aritmētiskajām operācijām)
OpCode vērtības nosaka sekojošas darbības, kas jāveic ALU:
- 0: Q = A
- 1: Q = not A (negācija)
- 2: Q = A and B
- 3: Q = A or B
- 4: Q = A xor B
- 5: Q = A + B
- 6: Q = A - B
- 7: Q = B
Iesniegt eStudijās:
- Pirmkodu failā md_alu.v
- Aprakstu failā apraksts.pdf , kur aprakstīti un parādīti simulācijas rezultāti (laika diagrammas) jūsu izvēlētajiem testa piemēriem.
Palīginformāciju meklēt sadaļā #HDL tutorials.
MD_Perf
Izvēlēties divus līdzīgus procesorus kas tiek izmantoti vai nu galda datoros, vai viedtālruņos, vai mikrokontrolieros un salīdzināt to veiktspēju līdzīgi kā tas tika darīts lekcijā. Pamatot savu analīzi ar attiecīgām atsaucēm uz dokumentāciju, ko esat atradis par šiem procesoriem.
Iesniegt aprakstu PDF formātā estudijās līdz praktisko darbu lekcijas laika beigām.
MD_ID
Mērķis: Izprast kodēšanas formātu RISC-V instrukciju kopai.
Uzdevumi:
- Izstrādāt ID - "Instruction Decode" moduli RISC-V pamata instrukciju atkodēšanai. Modulis būs lietojams RISC-V procesorā.
- Simulēt izstrādāto moduli ar ISim rīku, demonstrējot tā korektu darbību.
Vadoties pēc "RISC-V Green Card" Jums jārealizē sekojošas instrukciju grupas:
- Loads - LB, LH, LW, LBU, LHU
- Stores - SB, SH, SW
- Shifts - SLL, SRL, SRA, SLLI, SRLI, SRAI
- Arithmetic - ADD, ADDI, SUB, LUI, AUIPC
- Logical - XOR, XORI, OR, ORI, AND, ANDI
- Compare - SLT, SLTI, SLTU, SLTIU
- Branches - BEQ, BNE, BLT, BGE, BLTU, BGEU
- Jump & Link - JAL, JALR
ID moduļa apraksts:
- Ieejā:
- Instrukcijas vārds "iw" 32 bitu garumā
- Izejā:
- Avota reģistra "rs1" adrese (5 biti)
- Avota reģistra "rs2" adrese (5 biti)
- Mērķa reģistra "rd" adrese (5 biti)
- Konstantes vērtība "imm" (32 biti)
- Funkcijas kods "funct3" (3 biti)
- Funkcijas kods "funct7" (7 biti)
Ja kāds no izejas signāliem instrukcijai nav zināms, piemēram, funct7, tad varat izvadīt vērtību pēc izvēles, piemēram 0.
Iesniegt eStudijās:
- Pirmkodu failā idecode.v
- Aprakstu failā apraksts.pdf , kur aprakstīti un parādīti simulācijas rezultāti (laika diagrammas) jūsu izvēlētajiem testa piemēriem.
Palīginformācija Palīginformāciju meklēt sadaļā #RISC-V. Īpaši noderīgi varētu būt:
- RISC-V Green card
- RISC-V ISA Manual - tabula ar instrukcijām un to kodiem.
- RISC-V Online Assembler
MD_CPU1
Mērķis: Solis tuvāk RISC-V modelim ar shēmā integrētiem galvenajiem elementiem.
Uzdevumi:
- Izveidot procesora struktūru iekļaujot iepriekš izstrādātos elementus (RF, ALU, ID,...)
- Pielāgot ALU konkrētām RISC-V instrukcijām (operāciju kodiem jāsakrīt ar instrukciju tipa un funkcijas lauku kodējumu)
- Simulēt izstrādāto moduli ar ISim rīku, demonstrējot tā korektu darbību.
Iesniegt eStudijās:
- Visu projektu zip formātā
- Aprakstu failā apraksts.pdf , kur aprakstīti un parādīti simulācijas rezultāti (laika diagrammas) jūsu izvēlētajiem testa piemēriem.
Palīginformācija Palīginformāciju meklēt sadaļā #RISC-V.
MD_RAM
Mērķis: Izveidot operatīvās atmiņas RAM moduli iekļaušanai procesorā.
Uzdevumi:
- Izveidot 64 x 4-baitu (viena vārda) RAM atmiņas moduli, kurā iespējams ierakstīt un nolasīt informāciju pēc dotas adreses.
- Simulēt izstrādāto moduli ar ISim rīku, demonstrējot tā korektu darbību.
Moduļa saskarnes apraksts:
Ieejā:
- DI[31:0]: Dati uz atmiņu
- A[6:0]: Adrese
- WE - "Write enable" - signāls, ka norāda, ka dati jāraksta atmiņā.
- CLK - takts signāls, pēc kura frontes dati tiks rakstīti atmiņā.
Izejā:
- DO[31:0]: Dati no atmiņas
Iesniegt eStudijās:
- Pirmkoda failus vienā zip failā
- Aprakstu failā apraksts.pdf , kur aprakstīti un parādīti simulācijas rezultāti (laika diagrammas) jūsu izvēlētajiem testa piemēriem.
Palīginformācija Palīginformāciju meklēt ISE rīka atmiņas komponenšu "Memory" aprakstā.
MD_ROM
Mērķis: Izveidot instrukciju atmiņas ROM moduli iekļaušanai procesorā.
Uzdevumi:
- Izveidot 64 x 4-baitu (viena vārda) ROM atmiņas moduli, kurā iespējams definēt saturu kompilācijas laikā.
- Simulēt izstrādāto moduli ar ISim rīku, demonstrējot tā korektu darbību.
Moduļa saskarnes apraksts:
Ieejā:
- A[6:0]: Adrese
Izejā:
- DO[31:0]: Dati no atmiņas
Atmiņas moduļa saturu jāspēj nodrošināt ar parametru (atribūtu) lai tajā varētu ierakstīt patvaļīgas RISC-V programmas kompilēto kodu.
Iesniegt eStudijās:
- Pirmkoda failus vienā zip failā
- Aprakstu failā apraksts.pdf , kur aprakstīti un parādīti simulācijas rezultāti (laika diagrammas) jūsu izvēlētajiem testa piemēriem.
Palīginformācija
- Palīginformāciju meklēt sadaļā #RISC-V.
- Piemērs kā veidot ROM ar saturu failā, Verilog valodā (video)
Kursa projekts (KP)
PP
Projekta pieteikums: Kursa beigu projekta tēmu studenti izvēlas individuāli un saskaņo ar pasniedzēju.
Estudijās zem nodevuma PP jāiesniedz projekta apraksts (PDF faila formātā), kas atbild uz sekojošiem jautājumiem:
- Vārds studentam vai arī visiem komandas studentiem, kas piedalās šajā projektā.
- Projekta apraksts, motivācija.
- Risinājuma apraksts, īsumā.
- Projekta komponentes. Studentu atbildības sadalījums pa komponentēm.
- Nepieciešamie resursi.
- Izpildes plāns ar starprezultātu datumiem un sasniedzamajiem mērķiem šajos datumos.
EX
Projekta risinājuma iesniegums - eksāmens.
Jāiesniedz:
- Tehniskais risinājums ar visu pirmkodu un projekta konfigurācijas failiem kā zip fails.
- Plakāts PDF formātā, kasilustrē projektu, motivāciju, rezultātus un secinājumus.
- Ieteikumi plakāta prezentācijas veidošanā
- Eseja PDF formātā par projekta izpildi un rezultātiem. Esejā jāiekļauj:
- Autoru saraksts un katra ieguldījums projektā.
- Saite uz projekta demonstrācijas video.
- Projekta apraksts ar attiecīgām diagrammām un attēliem.
- Simulācijas testu rezultāti, kas apliecina korektu darbību.
- Esejai komplektā ar plakātu jādod pilnīgs ieskats visos projekta aspektos.
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