Difference between revisions of "LU-DIP-B:KP1"

From DiLab
Jump to: navigation, search
(New page: === Kursa projekts #1 - 1.posms === '''ALU''' n. ['''A'''rthritic '''L'''ogic '''U'''nit or (rare) '''A'''rithmetic '''L'''ogic '''U'''nit]<br> ''A random-number generator supplied as stan...)
 
 
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:
=== Kursa projekts #1 - vientakts procesora projektēšana ===
* Kursa projektu studenti veic grupās (1 grupa = 2 studenti).
* Sadalīšanos grupās studenti organizē paši pēc brīvprātības principa.
* Individuāls darbs pie kursa projekta nav paredzēts.
* Kursa projekta izpilde var tikt veikta gan praktisko darbu laikā, izmantojot LU datorresursus, gan citā laikā, izmantojot citus studentiem pieejamos datorresursus.
* Kursa projekts ir sadalīts 4 secīgos posmos.
* Posma laikā veicamo darbu sadalījumu grupas ietvaros studenti organizē paši pēc brīvprātības principa.
* Uzsākt nākošo posmu grupa var tikai tad, kad ir veiksmīgi nokārtojusi ieskaiti par iepriekšējā posmā paveikto.
* Lai nokārtotu ieskaiti, ir jābūt izpildītiem sekojošiem nosacījumiem:
** līdz kārtējās lekcijas sākumam uz e-pasta adresēm, kas ir minētas sadaļā ''Mājas darbu noformēšana un iesniegšana'', ir iesūtīts saarhivēts ISE projekts;
** kārtējo praktisko darbu laikā ir atrādīts ISE projekts, kurā ar testpiemēriem tiek prezentēta izveidotā funkcionalitāte;
** ir jābūt skaidram, kāds ir katra studenta ieguldījums paveiktajā;
** ir jābūt skaidram, ka katram studentam ir izpratne gan par savu, gan par kolēģa paveikto.

=== Kursa projekts #1 - 1.posms ===
=== Kursa projekts #1 - 1.posms ===
'''ALU''' n. ['''A'''rthritic '''L'''ogic '''U'''nit or (rare) '''A'''rithmetic '''L'''ogic '''U'''nit]<br>
'''ALU''' n. ['''A'''rthritic '''L'''ogic '''U'''nit or (rare) '''A'''rithmetic '''L'''ogic '''U'''nit]<br>
Line 4: Line 18:
Stan Kelly-Bootle, ''The Devil’s DP Dictionary'', 1981
Stan Kelly-Bootle, ''The Devil’s DP Dictionary'', 1981


* Aritmētiski loģiskais bloks (ALU) - [http://www.elsevierdirect.com/product.jsp?isbn=9780123706065 5.4, B.5, B.6]
* Aritmētiski loģiskais bloks (ALU) - [http://books.google.lv/books?id=1lD9LZRcIZ8C 5.4, B.5, B.6]
** ieejas signāli A(31:0), B(31:0), OPCODE(3:0)
** ieejas signāli A(31:0), B(31:0), OPCODE(3:0)
** izejas signāli RESULT(31:0), ZERO, OVERFLOW, CarryOut
** izejas signāli RESULT(31:0), ZERO, OVERFLOW, CarryOut
** operācijas AND(0000), OR(0001), ADD(0010), SUB(0110), SLT(0111), NOR(1100)
** operācijas AND(0000), OR(0001), ADD(0010), SUB(0110), SLT(0111), NOR(1100)
* Summators (Adder) - [http://www.elsevierdirect.com/product.jsp?isbn=9780123706065 5.3, B.6]
* Summators (Adder) - [http://books.google.lv/books?id=1lD9LZRcIZ8C 5.3, B.6]
** ieejas signāli A(31:0), B(31:0)
** ieejas signāli A(31:0), B(31:0)
** izejas signāli RESULT(31:0), OVERFLOW, CarryOut
** izejas signāli RESULT(31:0), OVERFLOW, CarryOut
* Reģistru fails (Register file) - [http://www.elsevierdirect.com/product.jsp?isbn=9780123706065 5.3, B.8]
* Reģistru fails (Register file) - [http://books.google.lv/books?id=1lD9LZRcIZ8C 5.3, B.8]
** ieejas signāli ReadRegister1(4:0), ReadRegister2(4:0), WriteRegister(4:0), WriteData(31:0), RegWrite
** ieejas signāli ReadRegister1(4:0), ReadRegister2(4:0), WriteRegister(4:0), WriteData(31:0), RegWrite
** izejas signāli ReadData1(31:0), ReadData2(31:0)
** izejas signāli ReadData1(31:0), ReadData2(31:0)
* Multipleksors (MUX) - [http://www.elsevierdirect.com/product.jsp?isbn=9780123706065 B.3]
* Multipleksors (MUX) - [http://books.google.lv/books?id=1lD9LZRcIZ8C B.3]
** ieejas signāli A(31:0), B(31:0), Select
** ieejas signāli A(31:0), B(31:0), Select
** izejas signāli C(31:0)
** izejas signāli C(31:0)
Line 21: Line 35:


=== Kursa projekts #1 - 2.posms ===
=== Kursa projekts #1 - 2.posms ===
'''MEMORY''' n.<br>
* Instrukciju atmiņa (Instruction memory)
Something that is remembered ''("search as he would, the memory was lost")''<br>
* PC reģistrs (Program counter)
The cognitive processes whereby past experience is remembered ''("he can do it from memory"; "he enjoyed remembering his father")''<br>
* Zīmes paplašināšana (Sign-extension)
The power of retaining and recalling past experience ''("he had a good memory when he was younger")''<br>
* Nobīde pa kreisi (Shift-left 2 32IN-32OUT)
An electronic memory device ''("a memory and the CPU form the central part of a computer to which peripherals are attached")''<br>
The area of cognitive psychology that studies memory processes ''("he taught a graduate course on learning and memory")''<br>
WordNet 3.0 © Princeton University 2006<br>

* Instrukciju atmiņa (Instruction memory) - [http://books.google.lv/books?id=1lD9LZRcIZ8C 5.3, B.8, B.9]
** ieejas signāli ReadAddress(31:0)
** izejas signāli Instruction(31:0)
* PC reģistrs (Program counter) - [http://books.google.lv/books?id=1lD9LZRcIZ8C 5.3, B.8]
** ieejas signāli WriteData(31:0)
** izejas signāli ReadData(31:0)
* Zīmes paplašināšana (Sign-extension) - [http://books.google.lv/books?id=1lD9LZRcIZ8C 5.3]
** ieejas signāli Input(15:0)
** izejas signāli Result(31:0)
* Nobīde pa kreisi (Shift-left 2 32IN-32OUT) - [http://books.google.lv/books?id=1lD9LZRcIZ8C 5.3]
** ieejas signāli Input(31:0)
** izejas signāli Result(31:0)
* Iesūtīšanas termiņš 24.10.2008 10:30
* Atrādīšanas termiņš 24.10.2008 14:10


=== Kursa projekts #1 - 3.posms ===
=== Kursa projekts #1 - 3.posms ===
'''Control is an Illusion'''<br>
* Datu atmiņa (Data memory)
Mark Horstman, [http://www.manager-tools.com/docs/Horstmans_Laws.pdf ''Law #4'']
* Aritmētiski loģiskā bloka kontrole (ALU control)
* Datu atmiņa (Data memory) - [http://books.google.lv/books?id=1lD9LZRcIZ8C 5.3, B.8, B.9]
* Kontrole (Control)
** ieejas signāli Address(31:0), WriteData(31:0), MemWrite, MemRead
* Nobīde pa kreisi (Shift-left 2 26IN-28OUT)
** izejas signāli ReadData(31:0)
* Aritmētiski loģiskā bloka kontrole (ALU control) - [http://books.google.lv/books?id=1lD9LZRcIZ8C 5.4, C.2]
** ieejas signāli ALUOp(1:0), Function(5:0)
** izejas signāli OPCODE(3:0)
* Kontrole (Control) - [http://books.google.lv/books?id=1lD9LZRcIZ8C 5.4, C.2, C.3]
** ieejas signāli Op(5:0)
** izejas signāli RegDst, Jump, Branch, MemRead, MemToReg, ALUOp(1:0), MemWrite, ALUSrc, RegWrite
* Nobīde pa kreisi (Shift-left 2 26IN-28OUT) - [http://books.google.lv/books?id=1lD9LZRcIZ8C 5.4]
** ieejas signāli Input(25:0)
** izejas signāli Result(27:0)
* Iesūtīšanas termiņš 07.11.2008 10:30
* Atrādīšanas termiņš 07.11.2008 14:10


=== Kursa projekts #1 - 4.posms ===
=== Kursa projekts #1 - 4.posms ===
* Integrācija
* Integrācija - [http://books.google.lv/books?id=1lD9LZRcIZ8C 5.4]
** [http://jupiter.cs.fmf.lu.lv/~kursi/dip/DataPath.1.00.gif Šeit] iespējams apskatīt ''DataPath'' BEZ Jump instrukcijas realizācijas
** [http://jupiter.cs.fmf.lu.lv/~kursi/dip/DataPath.1.01.gif Šeit] iespējams apskatīt ''DataPath'' AR Jump instrukcijas realizāciju (pievērst uzmanību neprecizitātei attēla labajā augšējā stūrī)
** [http://jupiter.cs.fmf.lu.lv/~kursi/dip/IMSIM.1.00.zip Šeit] iespējams apskatīt instrukciju atmiņas simulatoru
** Papildus nosacījumi:
*** Reģistru faila reģistrā #0 vienmēr atrodas vērtība 0
*** Reģistru faila reģistrā #1 vienmēr atrodas vērtība 1
*** Datu atmiņas adreses #28 biti(7:0) pievienoti LED(7:0)
*** PC reģistrā iespējams ierakstīt vērtību 0, nospiežot pogu ROT_CENTER
* Pārbaude
* Pārbaude
** Shēmai jabūt spējīgai iziet visas 3 izstrādes fāzes (drīkst būt Warning'i, nedrīkst būt Error'i):
*** ''Synthesize''
*** ''Implement Design''
*** ''Generate Programming File''
** Ja nepieciešams (ISE konstatē iekārtas resursu nepietiekamību), datu atmiņas apjomu var samazināt līdz 64 adresēm
* Lejupielāde uz Xilinx Spartan 3E platformas
* Lejupielāde uz Xilinx Spartan 3E platformas
* Testēšana ar kontrolpiemēriem
* Testēšana ar kontrolpiemēriem
** [http://jupiter.cs.fmf.lu.lv/~kursi/dip/Instrukcijas.1.00.pdf Šeit] iespējams apskatīt programmas sastādīšanai pieejamās instrukcijas
** [http://jupiter.cs.fmf.lu.lv/~kursi/dip/Programma.1.00.pdf Šeit] iespējams apskatīt programmas paraugu (paldies Jānim T. un Jānim B.)
** Piezīmes:
*** Instrukcijas NOR iekļaušana testa programmā nav obligāta (tas saistīts ar moduļa ''ALU control'' realizācijas atspoguļojumu grāmatā)
*** Iespējams, ka programmas paraugu vēl būs nepieciešams modificēt (ir versija, ka shēma var nekorekti izpildīt viena un tā paša reģistra lasīšanu un rakstīšanu vienā programmas darbības solī)
* Iesūtīšanas termiņš 12.12.2008 10:30
* Atrādīšanas termiņš 12.12.2008 14:10

Latest revision as of 19:46, 4 December 2008

Kursa projekts #1 - vientakts procesora projektēšana

  • Kursa projektu studenti veic grupās (1 grupa = 2 studenti).
  • Sadalīšanos grupās studenti organizē paši pēc brīvprātības principa.
  • Individuāls darbs pie kursa projekta nav paredzēts.
  • Kursa projekta izpilde var tikt veikta gan praktisko darbu laikā, izmantojot LU datorresursus, gan citā laikā, izmantojot citus studentiem pieejamos datorresursus.
  • Kursa projekts ir sadalīts 4 secīgos posmos.
  • Posma laikā veicamo darbu sadalījumu grupas ietvaros studenti organizē paši pēc brīvprātības principa.
  • Uzsākt nākošo posmu grupa var tikai tad, kad ir veiksmīgi nokārtojusi ieskaiti par iepriekšējā posmā paveikto.
  • Lai nokārtotu ieskaiti, ir jābūt izpildītiem sekojošiem nosacījumiem:
    • līdz kārtējās lekcijas sākumam uz e-pasta adresēm, kas ir minētas sadaļā Mājas darbu noformēšana un iesniegšana, ir iesūtīts saarhivēts ISE projekts;
    • kārtējo praktisko darbu laikā ir atrādīts ISE projekts, kurā ar testpiemēriem tiek prezentēta izveidotā funkcionalitāte;
    • ir jābūt skaidram, kāds ir katra studenta ieguldījums paveiktajā;
    • ir jābūt skaidram, ka katram studentam ir izpratne gan par savu, gan par kolēģa paveikto.

Kursa projekts #1 - 1.posms

ALU n. [Arthritic Logic Unit or (rare) Arithmetic Logic Unit]
A random-number generator supplied as standard with all computer systems.
Stan Kelly-Bootle, The Devil’s DP Dictionary, 1981

  • Aritmētiski loģiskais bloks (ALU) - 5.4, B.5, B.6
    • ieejas signāli A(31:0), B(31:0), OPCODE(3:0)
    • izejas signāli RESULT(31:0), ZERO, OVERFLOW, CarryOut
    • operācijas AND(0000), OR(0001), ADD(0010), SUB(0110), SLT(0111), NOR(1100)
  • Summators (Adder) - 5.3, B.6
    • ieejas signāli A(31:0), B(31:0)
    • izejas signāli RESULT(31:0), OVERFLOW, CarryOut
  • Reģistru fails (Register file) - 5.3, B.8
    • ieejas signāli ReadRegister1(4:0), ReadRegister2(4:0), WriteRegister(4:0), WriteData(31:0), RegWrite
    • izejas signāli ReadData1(31:0), ReadData2(31:0)
  • Multipleksors (MUX) - B.3
    • ieejas signāli A(31:0), B(31:0), Select
    • izejas signāli C(31:0)
  • Iesūtīšanas termiņš 17.10.2008 10:30
  • Atrādīšanas termiņš 17.10.2008 14:10

Kursa projekts #1 - 2.posms

MEMORY n.
Something that is remembered ("search as he would, the memory was lost")
The cognitive processes whereby past experience is remembered ("he can do it from memory"; "he enjoyed remembering his father")
The power of retaining and recalling past experience ("he had a good memory when he was younger")
An electronic memory device ("a memory and the CPU form the central part of a computer to which peripherals are attached")
The area of cognitive psychology that studies memory processes ("he taught a graduate course on learning and memory")
WordNet 3.0 © Princeton University 2006

  • Instrukciju atmiņa (Instruction memory) - 5.3, B.8, B.9
    • ieejas signāli ReadAddress(31:0)
    • izejas signāli Instruction(31:0)
  • PC reģistrs (Program counter) - 5.3, B.8
    • ieejas signāli WriteData(31:0)
    • izejas signāli ReadData(31:0)
  • Zīmes paplašināšana (Sign-extension) - 5.3
    • ieejas signāli Input(15:0)
    • izejas signāli Result(31:0)
  • Nobīde pa kreisi (Shift-left 2 32IN-32OUT) - 5.3
    • ieejas signāli Input(31:0)
    • izejas signāli Result(31:0)
  • Iesūtīšanas termiņš 24.10.2008 10:30
  • Atrādīšanas termiņš 24.10.2008 14:10

Kursa projekts #1 - 3.posms

Control is an Illusion
Mark Horstman, Law #4

  • Datu atmiņa (Data memory) - 5.3, B.8, B.9
    • ieejas signāli Address(31:0), WriteData(31:0), MemWrite, MemRead
    • izejas signāli ReadData(31:0)
  • Aritmētiski loģiskā bloka kontrole (ALU control) - 5.4, C.2
    • ieejas signāli ALUOp(1:0), Function(5:0)
    • izejas signāli OPCODE(3:0)
  • Kontrole (Control) - 5.4, C.2, C.3
    • ieejas signāli Op(5:0)
    • izejas signāli RegDst, Jump, Branch, MemRead, MemToReg, ALUOp(1:0), MemWrite, ALUSrc, RegWrite
  • Nobīde pa kreisi (Shift-left 2 26IN-28OUT) - 5.4
    • ieejas signāli Input(25:0)
    • izejas signāli Result(27:0)
  • Iesūtīšanas termiņš 07.11.2008 10:30
  • Atrādīšanas termiņš 07.11.2008 14:10

Kursa projekts #1 - 4.posms

  • Integrācija - 5.4
    • Šeit iespējams apskatīt DataPath BEZ Jump instrukcijas realizācijas
    • Šeit iespējams apskatīt DataPath AR Jump instrukcijas realizāciju (pievērst uzmanību neprecizitātei attēla labajā augšējā stūrī)
    • Šeit iespējams apskatīt instrukciju atmiņas simulatoru
    • Papildus nosacījumi:
      • Reģistru faila reģistrā #0 vienmēr atrodas vērtība 0
      • Reģistru faila reģistrā #1 vienmēr atrodas vērtība 1
      • Datu atmiņas adreses #28 biti(7:0) pievienoti LED(7:0)
      • PC reģistrā iespējams ierakstīt vērtību 0, nospiežot pogu ROT_CENTER
  • Pārbaude
    • Shēmai jabūt spējīgai iziet visas 3 izstrādes fāzes (drīkst būt Warning'i, nedrīkst būt Error'i):
      • Synthesize
      • Implement Design
      • Generate Programming File
    • Ja nepieciešams (ISE konstatē iekārtas resursu nepietiekamību), datu atmiņas apjomu var samazināt līdz 64 adresēm
  • Lejupielāde uz Xilinx Spartan 3E platformas
  • Testēšana ar kontrolpiemēriem
    • Šeit iespējams apskatīt programmas sastādīšanai pieejamās instrukcijas
    • Šeit iespējams apskatīt programmas paraugu (paldies Jānim T. un Jānim B.)
    • Piezīmes:
      • Instrukcijas NOR iekļaušana testa programmā nav obligāta (tas saistīts ar moduļa ALU control realizācijas atspoguļojumu grāmatā)
      • Iespējams, ka programmas paraugu vēl būs nepieciešams modificēt (ir versija, ka shēma var nekorekti izpildīt viena un tā paša reģistra lasīšanu un rakstīšanu vienā programmas darbības solī)
  • Iesūtīšanas termiņš 12.12.2008 10:30
  • Atrādīšanas termiņš 12.12.2008 14:10