Bachelor's Thesis

Efficient methods for binary encoding of decimal digits

Final Thesis 2.11 MB Appendix 347.98 kB

Author of thesis: Daniel Dic

Acad. year: 2025/2026

Supervisor: Ing. Petr Petyovský, Ph.D.

Reviewer: Ing. Radovan Holek, CSc.

Abstract:

This bachelor’s thesis addresses efficient methods for encoding decimal digits in digital
systems. The theoretical part analyses the Binary Coded Decimal (BCD) representation
and its limitations, and the Chen–Ho and Densely Packed Decimal (DPD) space-saving
encodings, which form part of the IEEE 754-2008 standard. The practical part designs
a custom encoding scheme based on Chen–Ho principles and implements it in the VHDL
language. As a demonstration, a new laboratory task for the course Logické obvody
a systémy was designed: a 24-hour digital clock that stores the time state directly in
Chen–Ho encoded form instead of a BCD cascade. The design was synthesised in AMD
Xilinx Vivado for the Artix-7 FPGA (Basys 3) and functionally verified by simulation.
The comparison with the conventional BCD solution confirms a reduction in flip-flop
usage, while the combinational logic (LUT) usage remains comparable. The thesis also
includes complete teaching materials for the proposed laboratory task.

Keywords:

binary encoding of decimal digits, efficient encoding, Chen-Ho encoding, Densely Packed
Decimal, BCD code, encoder and decoder, combinational circuits, FPGA, Artix-7,
Basys 3, VHDL, digital clock, laboratory task

Date of defence

16.06.2026

Result of the defence

Defended (thesis was successfully defended)

znamkaCznamka

Grading

C

Process of defence

Student odprezentoval připravenou prezentaci a následně odpovídal na dva dotazy položené oponentem závěrečné práce. V následné rozpravě nad bakalářskou prací nebyly položeny žádné otázky.

Language of thesis

Slovak

Faculty

Department

Study programme

Automation and Measurement (BPC-AMT)

Composition of Committee

prof. Ing. Michal Prauzek, Ph.D. (předseda)
doc. Ing. Petr Beneš, Ph.D. (místopředseda)
doc. Ing. Jakub Arm, Ph.D. (člen)
Ing. Jiří Fialka, Ph.D. (člen)
Ing. Petr Petyovský, Ph.D. (člen)
Ing. Lukáš Pohl, Ph.D. (člen)

Supervisor’s report
Ing. Petr Petyovský, Ph.D.

Zadání bakalářské práce, které si student Daniel Dic zvolil, patří svým rozsahem mezi obtížnější. A to z důvodů, že student řešil toto zadání pouze v letním semestru tohoto akademického roku jako své nové zadání bak. práce, tj. bez rozpracování tohoto tématu v rámci své práce semestrální.

Cílem práce byla inovace sady existujících výukové úlohy pro kurz Logické obvody a systémy (BPC-LOS), který je na UAMT FEKT VUT vyučován v rámci bakalářského studijního programu. Zadání práce požadovalo v rámci inovace využití efektivních metod pro binární kódování desítkových číslic (Chen-Ho, DPD) pro studentem zvolené úlohy. Student měl dále vytvořit nová zadání pro jím modernizovanou sadu úloh, implementovat zdrojové texty v jazyce VHDL obsahující řešení pro FPGA a také neúplnou (Boilerplate) šablonu zdrojových textů, kterou dostanou studenti kurzu pro dokončení a otestování.

Přestože byl od počátku jasně patrný, zájem studenta o téma práce. V průběhu řešení bakalářské práce, student využíval možnosti nabízených konzultací v menší míře a pracoval tedy převážně samostatně, možná až příliš. Mám obavu, zda student nenabyl falešného dojmu, že již není co konzultovat a jeho další dokončení práce, je už jen a pouze v jeho režii. Situace se vyhrotila až do té míry, že ještě několik minut před závěrečným termínem odevzdání student v IS opravoval „omylem odevzdané“ elektronické přílohy obsahující kompletní řešení nejen jím realizovaných úloh, ale i všech ostatních úloh kurzu BPC-LOS, které tak bylo všem dostupné na otevřeném webu.

Jeho chování je o to víc matoucí jelikož, jsem studenta o tomto problému informoval týden před odevzdáním na poslední mnou vynucené konzultaci. Jeho schopnost aktivně a v předstihu plánovat své další kroky tak, aby předešel stresovým situacím pro sebe i ostatní proto považuji za skutečně velmi slabou.

Student věnoval řešení dostatečné množství času. Pracoval však nárazově a v závěru se dostal do obrovské časové tísně. Úroveň a rozsah textu práce se mu podařilo, až na poslední chvíli upravit tak, jak požaduje směrnice VUT a práce tedy není příliš rozsáhlá. Práce je vhodně doplněna dostatkem literárních odkazů. Práce studenta s literaturou je tedy na dobré úrovní.

Dosažené výsledky i formální zpracování práce tedy jednoznačně svědčí o bakalářských schopnostech studenta. Díky dosaženým výsledkům, úrovni zpracování textu i práci s literaturou lze na práci pohlížet jako na dobře zpracované dílo. Ovšem dovést tohoto studenta až před komisi SZZ, bylo pro mě v roli vedoucího velmi náročné, proto studentovi navrhuji pouze hodnocení stupněm: Dobře – C. (78) Points proposed by supervisor: 78

Grade proposed by supervisor: C

Reviewer’s report
Ing. Radovan Holek, CSc.

1) Bakalářská práce se zabývá metodami úsporného binárního kódování desítkových číslic v digitálních systémech. Teoretická část analyzuje standardní kódování BCD a jeho omezení z hlediska efektivity využití bitového prostoru a popisuje kódování Chen-Ho a Densely Packed Decimal (DPD), která jsou součástí normy IEEE 754-2008. Praktická část navrhuje vlastní 2-digit kódovací schéma inspirované principem Chen-Ho a realizuje enkodér a dekodér v jazyce VHDL pro FPGA Artix-7 (vývojová deska Digilent Basys 3). Jako demonstrační úloha jsou navrženy 24hodinové digitální hodiny uchovávající časový stav přímo v navrženém kódovém prostoru. Součástí práce jsou metodické podklady pro novou laboratorní úlohu předmětu Logické obvody a systémy.

2) Tooretický rozbor pokrývá BCD, Chen-Ho, DPD a doplňkové metody (Excess-3, Grayův kód, bikvinárnní kódování). Praktickou část tvoří kapitoly 1–3.  Autor implementoval a syntetizoval 7 variant dekodéru a 7 variant enkodéru v prostředí AMD Xilinx Vivado 2025.2. Implementaci DPD se v experimentální části nevěnoval, zdůvodnění uvádí v závěru práce.

3) Výsledky syntézy jsou sumarizovány v tabulkách a grafech. Výběr finální varianty na základě měřitelných kritérií (počet LUT a FF, rozšiřitelnost) je metodologicky korektní.
Návrhu a implementaci jsou věnované kapitoly 5–7. Architektura systému digitálních hodin je hierarchicky strukturovaná a odděluje sekvenční část (registry čítačů) od kombinační části (konverzní funkce). Timing analýza potvrdila splnění všech časových podmínek při frekvenci 100 MHz. Simulační ověření pomocí vizualizační knihovny pkg_bpc_los je funkční a zdokumentované.
Pedagogický výstup je v kapitole 4 a ). Příprava kompletní kostry projektu Vivado ve dvou verzích (žákovská / učitelská) včetně testbench s vizualizací a zadání laboratorní úlohy je jedním z pžadovaných výstupů bakalářské práce a prokazuje základní pochopení tématu.

4) Práce je psána ve slovenštině, což odpovídá národnosti autora. Text je srozumitelný a sazba provedená v systému LaTeX je kvalitní.

5) práce s literaturou  Seznam literatury čítá pouze 10 položek, z nichž 2 jsou normy IEEE, 1 uživatelský manuál nástroje Vivado a 1 blogový příspěvek

Bakalářská práce splňuje zadání a prokazuje, že student zvládl problematiku binárního kódování desítkových číslic, jazyk VHDL i práci s vývojovým prostředím AMD Xilinx Vivado. Praktická část je systematicky zpracovaná, výsledky syntézy jsou reprodukovatelné a didaktický výstup ve formě kompletních podkladů pro laboratorní úlohu splňuje zadání. Topics for thesis defence:
  1. 1) Autor označuje navržené kódování jako "2-digit Chen-Ho". V čem se konkrétní implementace liší od originálního Chen-Ho kódování (Chen & Ho, 1975) a jakým způsobem by bylo možné navrženou 2-digit variantu rozšířit na plnou 3-digit verzi?
  2. 2) Naměřená úspora klopných obvodů oproti BCD kaskádě činí 9 FF z celkových 58 (přibližně 16 %). Za jakých podmínek nebo pro jakou třídu aplikací by tato úspora byla prakticky relevantní z hlediska návrhu reálného systému?
Points proposed by reviewer: 76

Grade proposed by reviewer: C

Responsibility: Mgr. et Mgr. Hana Odstrčilová