{"id":20665194,"url":"https://github.com/martan03/inc-uart_rx","last_synced_at":"2026-03-11T01:31:30.205Z","repository":{"id":160439298,"uuid":"629530216","full_name":"Martan03/INC-UART_RX","owner":"Martan03","description":"First project for the INC subject","archived":false,"fork":false,"pushed_at":"2023-04-24T07:05:42.000Z","size":1247,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-15T02:15:43.626Z","etag":null,"topics":["logisim","receiver","uart","uart-rx","vhdl"],"latest_commit_sha":null,"homepage":"","language":"VHDL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Martan03.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-04-18T13:53:58.000Z","updated_at":"2023-10-05T21:17:41.000Z","dependencies_parsed_at":"2024-01-17T01:45:55.507Z","dependency_job_id":null,"html_url":"https://github.com/Martan03/INC-UART_RX","commit_stats":null,"previous_names":["martan03/inc-uart_rx"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Martan03/INC-UART_RX","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Martan03%2FINC-UART_RX","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Martan03%2FINC-UART_RX/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Martan03%2FINC-UART_RX/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Martan03%2FINC-UART_RX/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Martan03","download_url":"https://codeload.github.com/Martan03/INC-UART_RX/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Martan03%2FINC-UART_RX/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30366051,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T21:41:54.280Z","status":"ssl_error","status_checked_at":"2026-03-10T21:40:59.357Z","response_time":106,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["logisim","receiver","uart","uart-rx","vhdl"],"created_at":"2024-11-16T19:29:01.560Z","updated_at":"2026-03-11T01:31:30.120Z","avatar_url":"https://github.com/Martan03.png","language":"VHDL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Projekt INC - UART\n\n## První část projektu UART – Návrh obvodu\nNavrhněte obvod pro příjem datových slov po asynchronní sériové lince (UART_RX).\n\n- Vycházejte ze základních informací o fungování a zpracování asynchronní sériové\nkomunikace uvedených v následující kapitole.\n- Uvažujte vstupní tok dat v pevném formátu: jeden START bit, 8 bitů dat, jeden STOP bit,\nzasílaných rychlostí 9600 baudů za sekundu. Přijímací obvod bude pracovat na 16x vyšší\nfrekvenci (signál CLK) ve srovnání s přenosovou rychlostí jednotlivých datových bitů.\nVašim úkolem bude snímat datové bity uprostřed přenášeného intervalu (viz. obrázek 3).\n- Obvod UART_RX bude přijímat jednotlivé bity na vstupním datovém portu DIN, provede\njejich de-serializaci a výsledné 8-bitové slovo zapíše na datový port DOUT. Platnost\ndatového slova na portu DOUT potvrďte nastavením příznaku DOUT_VLD na úroveň\nlogické 1 po dobu jednoho taktu hodinového signálu CLK. Příklad časového diagramu\nukazujícího očekávaný průběh signálů na vstupně/výstupních portech komponenty\nUART_RX je znázorněn na obrázku 1.\n\n- Jednotlivé části datové cesty obvodu bude potřeba ovládat skrze konečný automat (Finite\nState Machine). Sestavte si nejprve graf přechodů tohoto automatu.\n- Při návrhu nezapomeňte ošetřit asynchronní vstup do synchronní sítě obvodu UART_RX\npro redukci možných metastabilních stavů.\n\nVolitelně vytvořte a odevzdejte technickou zprávu, která bude obsahovat:\n- Jméno, příjmení a login.\n- Schéma architektury navrženého obvodu UART_RX na úrovni RTL a její stručný popis.\n- Nákres grafu přechodů konečného automatu a jeho stručný popis.\n\nUkázku formátu a obsahu výstupní zprávy naleznete v příloze. Rozsah vaší zprávy z první\nčásti projektu by neměl překročit dvě strany formátu A4. Zprávu odevzdejte ve formátu PDF\njako soubor s názvem zprava.pdf skrze informační systém, termín pro první část projektu.\n\n**Před odevzdáním do informačního systému se prosím ujistěte, že finální podoba zprávy\nobsahuje všechny potřebné náležitosti. Zkontrolovanou verzi zprávy odevzdejte\nprostřednictvím informačního systému nejpozději do data uvedeného v informačním\nsystému u termínu pro první část projektu. Pozdější odevzdání nebude bráno v úvahu.**\n\n## Asynchronní sériová komunikace\nAsynchronní sériová komunikace se stala základním způsobem přenosu dat mezi počítači a\nperiferními zařízeními. V současné době se používá zejména v oblasti vestavěných systémů.\nPro přenos dat mezi dvěma uzly stačí při sériové komunikaci jeden datový vodič, po kterém\njsou postupně zasílány jednotlivé datové bity. Asynchronnost komunikace pak znamená, že\npřenášené bity nejsou synchronizovány žádným dodatečným signálem jako je např. hodinový\nsignál CLK. Přijímač je schopen rozpoznat příchozí bity a jejich synchronizaci na základě\npoužitého zakódování na datovém vodiči.\n\nKomunikační linka (vodič) je vždy před začátkem přenosu libovolného vícebitového slova\n(obvykle bajtu) nastavena na úroveň logické 1. Přenos vícebitového slova pak začíná tzv.\nSTART bitem s hodnotou logické 0. Odvysílání START bitu, tedy přechod datové linky z\nhodnoty logické 1 do 0, umožní přijímači spolehlivě identifikovat okamžik začátku přenosu.\n\nZa START bitem jsou následně odvysílány jednotlivé bity datového slova od významově\nnejnižšího bitu (LSB) po významově nejvyšší bit (MSB). Za posledním bitem datového slova\nnásleduje jeden nebo více tzv. STOP bitů, které jsou vždy nastaveny na úroveň logické 1.\n\nZa STOP bitem může začít přenos dalšího datového slova, začíná se opět START bitem.\nVšimněte si, že STOP bit předchozího datového slova v kombinaci se START bitem dalšího\nslova umožňují spolehlivou detekci začátku nového přenosu (přechod z log. 1 do 0).\n\nPříklad přenosu 8-bitového datového slova s jedním STOP bitem je znázorněn na obrázku 1.\nObrázek 2. Příklad sériového přenosu 8-bitového datového slova s jedním STOP bitem\n\nPro spolehlivé rozpoznání jednotlivých bitů přenášeného datového slova na straně přijímače\nje potřeba nejen identifikovat začátek přenosu (přechod z logické 1 do 0), ale také vědět na\njaké rychlosti komunikace probíhá. Vysílač i přijímač se proto musí nejprve nastavit na\nstejnou přenosovou rychlost.\n\nPřenosová rychlost se udává v počtu přenesených baudů za sekundu, přičemž jeden baud\nodpovídá v tomto případě jednomu bitu. Základní a také nejčastěji používanou přenosovou\nrychlostí je rychlost 9600 baudů za sekundu. Pokud uvažujeme přenos 8-bitových datových\nslov ohraničených jedním START bitem a alespoň jedním STOP bitem (celkem 10 bitů),\npotom jsme schopni na rychlosti 9600 baudů přenášet až 960 bajtů za sekundu (9600/10).\n\nAby přijímač spolehlivě identifikoval hodnoty (logické úrovně) přenášených datových bitů je\nnavíc doporučeno, aby tento obvod pracoval na 16x větší frekvenci, než je vybraná přenosová\nrychlost. Každý datový bit by následně měl být snímán uprostřed časového intervalu pro\npřenos bitů, jak je naznačeno na obrázku 2. Specifikace doporučuje při 16x větší vzorkovací\nfrekvenci snímat logickou úroveň vstupních dat v 7., 8. a 9. hodinovém cyklu a jako výsledný\nbit použít majoritu z těchto tří hodnot. Pro jednoduchost se však zde spokojme s hodnotou\nnasnímanou na konci 8. hodinového cyklu označenou jako MIDBIT.\n\nObrázek 3. Příklad vzorkování datového bitu uprostřed1\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmartan03%2Finc-uart_rx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmartan03%2Finc-uart_rx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmartan03%2Finc-uart_rx/lists"}