LU-DIP-B:KP2

From DiLab
Jump to: navigation, search

Kursa projekts #2 - vienkārša kalkulatora projektēšana

  • Kursa projektu #2 studenti veic tajās pašās grupās, kādās ir sadalījušies kursa projekta #1 izpildei.
  • Kursa projekta laikā veicamo darbu sadalījumu grupas ietvaros studenti organizē paši, nepieciešamības gadījumos konsultējoties ar pasniedzējiem. Katra studenta lomai un ieguldījumam jābūt skaidri definētam. Aizstāvot projekta rezultātus gala eksāmenā tiks jautāts katram individuāli par viņa ieguldījumu un lomu projektā.
  • Kursa projekta izpilde var tikt veikta gan praktisko darbu un konsultāciju laikā, izmantojot LU datorresursus, gan citā laikā, izmantojot citus studentiem pieejamos datorresursus.
  • Projekta ieskaites forma: Jāizpilda un tiks vērtēti visi zemāk minētie punkti.
  1. Apraksts uz ne vairāk kā vienas lapas
  2. Plakāts kurā autori ataino sava darba rezultātus un īpašos risinājumus. Plakāts tiks demonstrēts kopējā pasākumā ar citu studentu darbiem un plakātiem sesijas pēdējā nedēļā.
  3. Kalkulatora demonstrācija uz aparatūras
  4. Projekta faili, kas saarhivēti un atsūtīti pa epastu pasniedzējiem.


  • Projekta specifikācija - Tehniskās prasības:
    • kalkulatoram nepieciešamas nodrošināt pamata aritmētiskās darbības:
      • saskaitīšanu (+) un
      • atņemšanu (-)
    • datu ievadiekārta realizējama uz Spartan 3E PS/2 portam pieslēgtas standarta datora klaviatūras bāzes. Tātad, lai izpildītu darbības, lietotājs uz klaviatūras ievada vienu skaitli, tad operācijas taustiņu, tad otru skaitli, tad Enter taustiņu lai uz ekrāna tiktu izvadīts rezultāts.
    • datu izvadiekārta realizējama uz Spartan 3E iebūvētā LCD displeja bāzes.
    • konstrukcijas realizācijā atļauts izmantot gan shēmu elementus, gan HDL valodas Verilog un VHDL
    • kalkulatoram jānodrošina lietotāja darbības ar heksadecimāliem skaitļiem. Starp citu, šos būtu vieglāk realizēt nekā decimālos skaitļus. Ja studenti vēlas papildus punktus, viņi drīkst realizēt arī decimālo sistēmu, saņemot +15% pie vērtējuma veiksmīga risinājuma gadījumā.
  • Šaubu gadījumā pieturieties pie principa: kalkulatora darbībai no lietotāja viedokļa jābūt tādai pat kā tipiskam kalkulatoram.


1. ps2_reader (PS/2 porta nolasītājs)

  • ieejas signāli ps2_data, clk, reset, ps2_clk
  • izejas signāli key_code(4:0), btn_down
  • sastāv no 2 citiem blokiem

1.1 PS2_CTRL (gatavs no PONG)

  • ieejas signāli Clk, Reset, PS2_Clk, PS2_Data, DoRead
  • izejas signāli Scan_Code[7:0], scan_ready, trigger

1.2 read_ps2 (gatavs no PONG)

  • ieejas signāli Clk, Reset, in_scan_code[7:0], in_trigger
  • izejas signāli key_code[4:0], data_ready, out_read


2. Calc (kalkulators)

  • ieejas signāli reset, clk, BTNDWN, DI[0:4]
  • izejas signāli DR, STATUS[0:3], DO[0:31]
  • sastāv no 2 citiem blokiem

2.1 Interpreter (klaviatūras ievades interpretators)

  • ieejas signāli reset, read_instr, DI[0:4], BTNDWN, clk, DO[0:31], OFL
  • izejas signāli fin_read_instr, instr[0:31], ready_DO, status[0:3]

2.2 CPU (procesors)

  • ieejas signāli clk, reset, fin_instr_mem, instr[0:31]
  • izejas signāli C[0:31], en_instr_mem, OFL


3. DO_to_SCREEN (konvertācija number2string)

  • ieejas signāli DO[0:31], STATUS[0:3]
  • izejas signāli SCREEN[0:255]


4. lcd_writer (izvade uz LCD displeja)

  • ieejas signāli clk, DR, screen[255:0]
  • izejas signāli lcd_data[3:0], lcd_control[2:0]


Šeit iespējams apskatīt PS/2 protokola dokumentāciju
Šeit iespējams apskatīt LCD displeja dokumentāciju
Šeit iespējams apskatīt kopējo kalkulatora blokshēmu


Atrādīšanas termiņš 23.01.2009 10:30 (eksāmena laikā)