]> jspc29.x-matter.uni-frankfurt.de Git - trb3.git/commitdiff
debugging of mupix unpacker.
authorTobias Weber <toweber86@gmail.com>
Mon, 23 Jul 2018 19:58:23 +0000 (21:58 +0200)
committerTobias Weber <toweber86@gmail.com>
Mon, 23 Jul 2018 19:58:23 +0000 (21:58 +0200)
mupix/Mupix8/sources/Datapath/DataWidthConversion.vhd
mupix/Mupix8/sources/Datapath/MuPixDataLink_new.vhd
mupix/Mupix8/sources/Datapath/MuPixUnpacker.vhd
mupix/Mupix8/sources/Simulation/8b10_dec.vhd
mupix/Mupix8/tb/MupixUnpackerTest.vhd [new file with mode: 0644]

index 0591b46d5cbbf0eb39fbbbe0857d00c745397c50..a78359237914e70af796c24b05050fe11818005c 100644 (file)
@@ -1,7 +1,8 @@
 -------------------------------------------------------------------------------------------
 -- converts the 40 bit input data of the mupix into
 -- 32 bit portions + padding of the last word for readout with the TRB
--- TODO: after adding the hit time sorter the data width conversion should be moved there
+-- TODO: move this after circular buffer and implement new slow control readout
+--       this should make extra bonadry word unneccessary
 -- T. Weber
 -------------------------------------------------------------------------------------------
 library ieee;
@@ -48,7 +49,7 @@ architecture rtl of DataWidthConversion is
   type counter_array is array (0 to 1) of integer range 0 to 4;
   signal wordstosend                          : counter_array                := (0, 0);
   signal fifo_wrcnt_reg                       : std_logic_vector(9 downto 0) := (others => '1');
-  signal pause_cnt_i                          : integer range 0 to         := 0;
+  signal pause_cnt_i                          : integer range 0 to 24        := 0;
   signal readenable_cnt_i                     : integer range 0 to 4         := 0;
   signal fill_index                           : integer range 0 to 1         := 0;
   signal fill_cnt                             : integer range 0 to 4         := 0;
@@ -81,7 +82,7 @@ begin  -- architecture rtl
               readenable_cnt_i        <= 1;
               wordstosend(fill_index) <= 4;
               pause_cnt_i             <= 0;
-            elsif pause_cnt_i = 6 then
+            elsif pause_cnt_i = 23 then
               pause_cnt_i    <= 0;
               fifo_wrcnt_reg <= fifo_wrcnt;
               if fifo_wrcnt = fifo_wrcnt_reg and fifo_empty = '0' then
@@ -94,6 +95,7 @@ begin  -- architecture rtl
               fifo_read_fsm           <= idle;
               wordstosend(fill_index) <= 0;
             end if;
+            
           when waitfifo =>
             fifo_wrcnt_reg <= (others => '1');
             fifo_read_fsm  <= reading;
@@ -101,6 +103,7 @@ begin  -- architecture rtl
               readenable_cnt_i <= 2;
               fifo_rden        <= '1';
             end if;
+            
           when reading =>
             if readenable_cnt_i < wordstosend(fill_index) then
               readenable_cnt_i <= readenable_cnt_i + 1;
@@ -153,12 +156,16 @@ begin  -- architecture rtl
               start_sending_accpted <= '1';
               writing_fsm           <= writing;
               wordssend             <= 0;
+              -- extra bondary word, remove for testbench
+              buff_wren_i <= '1';
+              dataout_i   <= x"F0F0F0F0";
               if read_index = 1 then
                 read_index <= 0;
               else
                 read_index <= read_index + 1;
               end if;
             end if;
+            
           when writing =>
             case wordssend is
               when 0 =>
index 22a71ccbc70c16baa570db2633205185d306dc54..29cc9f00aa015709d194bb0a483ac4af7bc5477e 100644 (file)
@@ -221,8 +221,6 @@ architecture rtl of MupixDataLinkWithUnpacker is
       valid             : in  std_logic;
       hit_out           : out std_logic_vector(g_hitsize - 1 downto 0);
       hit_enable        : out std_logic;
-      coarsecounter     : out std_logic_vector(g_countersize - 1 downto 0);
-      counter_enable    : out std_logic;
       link_flag         : out std_logic;
       errorcounter_gray : out std_logic_vector(31 downto 0);
       errorcounter      : out std_logic_vector(31 downto 0));
@@ -527,8 +525,6 @@ begin
         valid             => unpacker_valid_i(j),
         hit_out           => fifo_data_ii((j + 1)*c_mupixhitsize - 1 downto j*c_mupixhitsize),
         hit_enable        => fifo_wren_i(j),
-        coarsecounter     => open,
-        counter_enable    => open,
         link_flag         => open,
         errorcounter_gray => unpacker_error_counter(j),
         errorcounter      => open);
index 6ce33e1d003ed4d4be25dc45ca4e8e712125640d..96a25e077d52762a5ba1a4b6d53a831063ae4627 100644 (file)
@@ -23,8 +23,6 @@ entity MupixUnpacker is
     valid             : in  std_logic;  -- incoming data valid
     hit_out           : out std_logic_vector(g_hitsize - 1 downto 0);  -- mupix 8 word output
     hit_enable        : out std_logic;  -- new hit word
-    coarsecounter     : out std_logic_vector(g_countersize - 1 downto 0);  --coarsecounter output
-    counter_enable    : out std_logic;  -- new counter value
     link_flag         : out std_logic;  -- link flag
     errorcounter_gray : out std_logic_vector(31 downto 0);  -- error counter gray code
     errorcounter      : out std_logic_vector(31 downto 0));  -- error counter
@@ -35,13 +33,13 @@ architecture RTL of MupixUnpacker is
   type unpacker_fsm_type is (idle, receive_err, counter, link, data);
   signal unpacker_state : unpacker_fsm_type := idle;
 
-  signal data_i         : std_logic_vector(31 downto 0);
-  signal errorcounter_i : unsigned(31 downto 0);
-  signal link_i         : std_logic_vector(7 downto 0);
-  signal link_reg       : std_logic_vector(7 downto 0);
+  signal data_i         : std_logic_vector(31 downto 0) := (others => '0');
+  signal errorcounter_i : unsigned(31 downto 0) := (others => '0');
+  signal link_i         : std_logic_vector(7 downto 0) := (others => '0');
+  signal link_reg       : std_logic_vector(7 downto 0) := (others => '0');
   signal link_toggle    : std_logic;
   signal data_mode      : std_logic;
-  signal cnt4           : unsigned(1 downto 0);
+  signal cnt4           : unsigned(1 downto 0) := (others => '0');
   signal counter_seen   : std_logic;
   signal coarse_reg     : std_logic;
   signal hit_reg        : std_logic;
@@ -78,13 +76,14 @@ begin
 
         hit_enable     <= '0';
         hit_out        <= (others => '0');
-        coarsecounter  <= (others => '0');
-        counter_enable <= '0';
+        data_i         <= (others => '0');
         link_flag      <= '0';
         link_flag_reg  <= '0';
 
         link_i      <= (others => '0');
         link_reg    <= (others => '0');
+        hit_reg     <= '0';
+        coarse_reg  <= '0';
         link_toggle <= '0';
 
         errorcounter_i <= (others => '0');
@@ -102,15 +101,13 @@ begin
         hit_reg        <= '0';
         inc_en_i       <= '0';
         hit_enable     <= hit_reg or coarse_reg;
-        counter_enable <= coarse_reg;
         link_flag      <= link_flag_reg;
 
-        coarsecounter <= data_i(7 downto 0) & data_i(31 downto 8);
         if coarse_reg = '1' then
-          hit_out <= data_i(31 downto 8) & link_i(3 downto 0) & x"3" & data_i(7 downto 0);
-        -- binary counter & link & x"3" & gray counter
+          hit_out <= x"3" & link_i(3 downto 0) & data_i(31 downto 0);
+        -- x"3" & link & binary counter
         elsif hit_reg = '1' then
-          hit_out <= link_i & data_i(7 downto 0) & data_i(31 downto 24) & data_i(23 downto 18) & data_i(17 downto 8);
+          hit_out <= link_i & data_i(7 downto 0) & data_i(15 downto 8) & data_i(21 downto 16) & data_i(31 downto 22);
         -- Link & Row & Col & Charge & TS
         end if;
 
@@ -176,16 +173,16 @@ begin
               end if;
 
             when data =>
-              if komma = '1' then
+              if komma = '0' then
                 cnt4 <= cnt4 + 1;
                 if cnt4 = "11" then
                   hit_reg        <= '1';
                   unpacker_state <= idle;
-                elsif komma = '1' and data_in = k28_5 then
-                  unpacker_state <= idle;
-                else
-                  unpacker_state <= receive_err;
                 end if;
+              elsif komma = '1' and data_in = k28_5 then
+                unpacker_state <= idle;
+              else
+                unpacker_state <= receive_err;
               end if;
 
             when receive_err =>
index b239e921b9c959bd3be993f8db5db0813b58dc76..a3e5b8262e3a8a539b627df6e65d89f87f17f71c 100644 (file)
-
-
-
-
-
-
-<!DOCTYPE html>
-<html lang="en">
-  <head>
-    <meta charset="utf-8">
-  <link rel="dns-prefetch" href="https://assets-cdn.github.com">
-  <link rel="dns-prefetch" href="https://avatars0.githubusercontent.com">
-  <link rel="dns-prefetch" href="https://avatars1.githubusercontent.com">
-  <link rel="dns-prefetch" href="https://avatars2.githubusercontent.com">
-  <link rel="dns-prefetch" href="https://avatars3.githubusercontent.com">
-  <link rel="dns-prefetch" href="https://github-cloud.s3.amazonaws.com">
-  <link rel="dns-prefetch" href="https://user-images.githubusercontent.com/">
-
-
-
-  <link crossorigin="anonymous" media="all" integrity="sha512-pCRDtdb3GlUU48h+oRJVA8f0GddrLnU97wB7mHQ7q6c40vMbMMZsFdk0IMhkUFRqw1M/y4EkWxtaKwfeFezOkQ==" rel="stylesheet" href="https://assets-cdn.github.com/assets/frameworks-73f533b7cc08a9d040e601cfd38fa585.css" />
-  <link crossorigin="anonymous" media="all" integrity="sha512-3W1eT07tG5hp/q/hjhjvYx+rtDz8lUNIvdHSl85T3T4H3Gv8/xHiTN8aL0zm4HgX1x61wHWDubeNd3Lu+XBfJQ==" rel="stylesheet" href="https://assets-cdn.github.com/assets/github-0f614118f79c0aa03eda43a2a8e1f504.css" />
-  
-  
-  <link crossorigin="anonymous" media="all" integrity="sha512-1Q2L3mMZmUTERt299izQNP+0f6Jdb17SoRm/kKESblBKU4mRZHembOETNbqWfJqrr+UvzmU6Mt6iJ6VvP4oJ2g==" rel="stylesheet" href="https://assets-cdn.github.com/assets/site-4139b251192ad0112098c9811ce21d37.css" />
-  
-
-  <meta name="viewport" content="width=device-width">
-  
-  <title>8b10b_encdec/8b10_dec.vhd at master · freecores/8b10b_encdec · GitHub</title>
-    <meta name="description" content="GitHub is where people build software. More than 28 million people use GitHub to discover, fork, and contribute to over 85 million projects.">
-    <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub">
-  <link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub">
-  <meta property="fb:app_id" content="1401488693436528">
-
-    
-    <meta property="og:image" content="https://avatars3.githubusercontent.com/u/8184025?s=400&amp;v=4" /><meta property="og:site_name" content="GitHub" /><meta property="og:type" content="object" /><meta property="og:title" content="freecores/8b10b_encdec" /><meta property="og:url" content="https://github.com/freecores/8b10b_encdec" /><meta property="og:description" content="8b10b_encdec - 8b10b Encoder/Decoder" />
-
-  <link rel="assets" href="https://assets-cdn.github.com/">
-  
-  <meta name="pjax-timeout" content="1000">
-  
-  <meta name="request-id" content="DAE0:1648:6484E76:CEF6131:5B47651F" data-pjax-transient>
-
-
-  
-
-  <meta name="selected-link" value="repo_source" data-pjax-transient>
-
-    <meta name="google-site-verification" content="KT5gs8h0wvaagLKAVWq8bbeNwnZZK1r1XQysX3xurLU">
-  <meta name="google-site-verification" content="ZzhVyEFwb7w3e0-uOTltm8Jsck2F5StVihD0exw2fsA">
-  <meta name="google-site-verification" content="GXs5KoUUkNCoaAZn7wPN-t01Pywp9M3sEjnt_3_ZWPc">
-    <meta name="google-analytics" content="UA-3769691-2">
-
-<meta name="octolytics-host" content="collector.githubapp.com" /><meta name="octolytics-app-id" content="github" /><meta name="octolytics-event-url" content="https://collector.githubapp.com/github-external/browser_event" /><meta name="octolytics-dimension-request_id" content="DAE0:1648:6484E76:CEF6131:5B47651F" /><meta name="octolytics-dimension-region_edge" content="iad" /><meta name="octolytics-dimension-region_render" content="iad" />
-<meta name="analytics-location" content="/&lt;user-name&gt;/&lt;repo-name&gt;/blob/show" data-pjax-transient="true" />
-
-
-
-
-<meta class="js-ga-set" name="dimension1" content="Logged Out">
-
-
-  
-
-      <meta name="hostname" content="github.com">
-    <meta name="user-login" content="">
-
-      <meta name="expected-hostname" content="github.com">
-    <meta name="js-proxy-site-detection-payload" content="NWZkNTUyOTE1MDZjNDdkYjA1MGI0YzM0MDNhM2M0OTVkOWIzMWU3OTAyNThmYTVlMmIyOGU5YmJmNzljNTBmZHx7InJlbW90ZV9hZGRyZXNzIjoiMTM0LjE0Ny4xNTIuMTciLCJyZXF1ZXN0X2lkIjoiREFFMDoxNjQ4OjY0ODRFNzY6Q0VGNjEzMTo1QjQ3NjUxRiIsInRpbWVzdGFtcCI6MTUzMTQwNTU5OSwiaG9zdCI6ImdpdGh1Yi5jb20ifQ==">
-
-    <meta name="enabled-features" content="UNIVERSE_BANNER,FREE_TRIALS,MARKETPLACE_INSIGHTS,MARKETPLACE_SEARCH,MARKETPLACE_INSIGHTS_CONVERSION_PERCENTAGES">
-
-  <meta name="html-safe-nonce" content="c3bd033a64542f9fd8a44c7b3ad2a557fdf57e8d">
-
-  <meta http-equiv="x-pjax-version" content="f5fffe604abff2a90544f3b46d17c628">
-  
-
-      <link href="https://github.com/freecores/8b10b_encdec/commits/master.atom" rel="alternate" title="Recent Commits to 8b10b_encdec:master" type="application/atom+xml">
-
-  <meta name="description" content="8b10b_encdec - 8b10b Encoder/Decoder">
-  <meta name="go-import" content="github.com/freecores/8b10b_encdec git https://github.com/freecores/8b10b_encdec.git">
-
-  <meta name="octolytics-dimension-user_id" content="8184025" /><meta name="octolytics-dimension-user_login" content="freecores" /><meta name="octolytics-dimension-repository_id" content="21916884" /><meta name="octolytics-dimension-repository_nwo" content="freecores/8b10b_encdec" /><meta name="octolytics-dimension-repository_public" content="true" /><meta name="octolytics-dimension-repository_is_fork" content="false" /><meta name="octolytics-dimension-repository_network_root_id" content="21916884" /><meta name="octolytics-dimension-repository_network_root_nwo" content="freecores/8b10b_encdec" /><meta name="octolytics-dimension-repository_explore_github_marketplace_ci_cta_shown" content="false" />
-
-
-    <link rel="canonical" href="https://github.com/freecores/8b10b_encdec/blob/master/8b10_dec.vhd" data-pjax-transient>
-
-
-  <meta name="browser-stats-url" content="https://api.github.com/_private/browser/stats">
-
-  <meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors">
-
-  <link rel="mask-icon" href="https://assets-cdn.github.com/pinned-octocat.svg" color="#000000">
-  <link rel="icon" type="image/x-icon" class="js-site-favicon" href="https://assets-cdn.github.com/favicon.ico">
-
-<meta name="theme-color" content="#1e2327">
-
-
-  <meta name="u2f-support" content="true">
-
-<link rel="manifest" href="/manifest.json" crossOrigin="use-credentials">
-
-  </head>
-
-  <body class="logged-out env-production page-blob">
-    
-
-  <div class="position-relative js-header-wrapper ">
-    <a href="#start-of-content" tabindex="1" class="px-2 py-4 bg-blue text-white show-on-focus js-skip-to-content">Skip to content</a>
-    <div id="js-pjax-loader-bar" class="pjax-loader-bar"><div class="progress"></div></div>
-
+-------------------------------------------------------------------------------
+--
+-- Title       : 8b/10b Decoder
+-- Design      : 10-bit to 8-bit Decoder
+-- Project     : 8000 - 8b10b_encdec
+-- Author      : Ken Boyette
+-- Company     : Critia Computer, Inc.
+--
+-------------------------------------------------------------------------------
+--
+-- File                        : 8b10b_dec.vhd
+-- Version             : 1.0
+-- Generated   : 09.27.2006
+-- By                  : Itf2Vhdl ver. 1.20
+--
+-------------------------------------------------------------------------------
+--
+-- Description :
+--     This module provides 10-bit to 9-bit encoding.
+--     It accepts 10-bit encoded parallel data input and generates 8-bit decoded 
+--     data output in accordance with the 8b/10b standard method.  This method was
+--     described in the 1983 IBM publication "A DC-Balanced, Partitioned-Block, 
+--     8B/10B Transmission Code" by A.X. Widmer and P.A. Franaszek.  The method
+--     WAS granted a U.S. Patent #4,486,739 in 1984; now expired.
+--
+--             The parallel 10-bit Binary input represent 1024 possible values, called
+--             characters - only 268 of which are valid.
+--
+--             The     input is a 10-bit encoded character whose bits are identified as:
+--                     AI, BI, CI, DI, EI, II, FI, GI, HI, JI (Least Significant to Most)
+--
+--             In addition to 256 data output characters, there are 12 special control
+--             or K, characters defined for command and synchronization use.
+--
+--             The eight data output bits are identified as:
+--                     HI, GI, FI, EI, DI, CI, BI, AI (Most Significant to Least)
+--
+--             The output, KO, is used to indicate the output value is one of the
+--             control characters.
+--
+--             All inputs and outputs are synchronous with an externally supplied
+--             byte rate clock BYTECLK.
+--             The encoded output is valid one clock after the input.
+--             There is a reset input, RESET, to reset the logic.  The next rising
+--             BYTECLK after RESET is deasserted latches valid input data.
+--
+--             Note: This VHDL structure closely follows the discrete logic defined
+--             in the original article and the subsequent patent.  The Figures 
+--             referenced are those in the patent.
+-------------------------------------------------------------------------------
+--     This program is licensed under the GPL
+-------------------------------------------------------------------------------
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.all;
+
+entity dec_8b10b is    
+    port(
+               RESET : in std_logic ;  -- Global asynchronous reset (AH) 
+               RBYTECLK : in std_logic ;       -- Master synchronous receive byte clock
+               input : in std_logic_vector(9 downto 0); -- Encoded input (LS..MS)              
+               KO : out std_logic ;    -- Control (K) character indicator (AH)
+               output : out std_logic_vector(7 downto 0)       -- Decoded out (MS..LS)
+           );
+end dec_8b10b;
+
+architecture behavioral of dec_8b10b is
+
+-- Signals to tie things together
+       signal ANEB, CNED, EEI, P13, P22, P31 : std_logic ;     -- Figure 10 Signals
+       signal IKA, IKB, IKC : std_logic ;      -- Figure 11 Signals
+       signal XA, XB, XC, XD, XE : std_logic ; -- Figure 12 Signals    
+       signal OR121, OR122, OR123, OR124, OR125, OR126, OR127 : std_logic ;
+       signal XF, XG, XH : std_logic ; -- Figure 13 Signals
+       signal OR131, OR132, OR133, OR134, IOR134 : std_logic ;
+       signal AI, BI, CI, DI, EI, II, FI, GI, HI, JI : std_logic;
+       signal HO, GO, FO, EO, DO, CO, BO, AO : std_logic;
+
+begin
     
+    AI <= input(0);
+    BI <= input(1);
+    CI <= input(2);
+    DI <= input(3);
+    EI <= input(4);
+    II <= input(5);
+    FI <= input(6);
+    GI <= input(7);
+    HI <= input(8);
+    JI <= input(9);
     
+    output <= HO & GO & FO & EO & DO & CO & BO & AO;
     
-
-
-
-        
-
-
-  <header class="Header header-logged-out  position-relative f4 py-3" role="banner" >
-    <div class="container-lg d-flex px-3">
-      <div class="d-flex flex-justify-between flex-items-center">
-        <a class="header-logo-invertocat my-0" href="https://github.com/" aria-label="Homepage" data-ga-click="(Logged out) Header, go to homepage, icon:logo-wordmark; experiment:site_header_dropdowns; group:control">
-          <svg height="32" class="octicon octicon-mark-github" viewBox="0 0 16 16" version="1.1" width="32" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"/></svg>
-        </a>
-
-      </div>
-
-      <div class="HeaderMenu d-flex flex-justify-between flex-auto">
-          <nav class="mt-0">
-            <ul class="d-flex list-style-none">
-                <li class="ml-2">
-                  <a class="js-selected-navigation-item HeaderNavlink px-0 py-2 m-0" data-ga-click="Header, click, Nav menu - item:features; experiment:site_header_dropdowns; group:control" data-selected-links="/features /features/project-management /features/code-review /features/project-management /features/integrations /features" href="/features">
-                    Features
-</a>                </li>
-                <li class="ml-4">
-                  <a class="js-selected-navigation-item HeaderNavlink px-0 py-2 m-0" data-ga-click="Header, click, Nav menu - item:business; experiment:site_header_dropdowns; group:control" data-selected-links="/business /business/security /business/customers /business" href="/business">
-                    Business
-</a>                </li>
-
-                <li class="ml-4">
-                  <a class="js-selected-navigation-item HeaderNavlink px-0 py-2 m-0" data-ga-click="Header, click, Nav menu - item:explore; experiment:site_header_dropdowns; group:control" data-selected-links="/explore /trending /trending/developers /integrations /integrations/feature/code /integrations/feature/collaborate /integrations/feature/ship showcases showcases_search showcases_landing /explore" href="/explore">
-                    Explore
-</a>                </li>
-
-                <li class="ml-4">
-                      <a class="js-selected-navigation-item HeaderNavlink px-0 py-2 m-0" data-ga-click="Header, click, Nav menu - item:marketplace; experiment:site_header_dropdowns; group:control" data-selected-links=" /marketplace" href="/marketplace">
-                        Marketplace
-</a>                </li>
-                <li class="ml-4">
-                  <a class="js-selected-navigation-item HeaderNavlink px-0 py-2 m-0" data-ga-click="Header, click, Nav menu - item:pricing; experiment:site_header_dropdowns; group:control" data-selected-links="/pricing /pricing/developer /pricing/team /pricing/business-hosted /pricing/business-enterprise /pricing" href="/pricing">
-                    Pricing
-</a>                </li>
-            </ul>
-          </nav>
-
-        <div class="d-flex">
-            <div class="d-lg-flex flex-items-center mr-3">
-              <div class="header-search scoped-search site-scoped-search js-site-search position-relative js-jump-to"
-  role="search combobox"
-  aria-owns="jump-to-results"
-  aria-label="Search or jump to"
-  aria-haspopup="listbox"
-  aria-expanded="true"
->
-  <div class="position-relative">
-    <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="js-site-search-form" data-scope-type="Repository" data-scope-id="21916884" data-scoped-search-url="/freecores/8b10b_encdec/search" data-unscoped-search-url="/search" action="/freecores/8b10b_encdec/search" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="&#x2713;" />
-      <label class="form-control header-search-wrapper header-search-wrapper-jump-to position-relative d-flex flex-justify-between flex-items-center js-chromeless-input-container">
-        <input type="text"
-          class="form-control header-search-input jump-to-field js-jump-to-field js-site-search-focus js-site-search-field is-clearable"
-          data-hotkey="s,/"
-          name="q"
-          value=""
-          placeholder="Search"
-          data-unscoped-placeholder="Search GitHub"
-          data-scoped-placeholder="Search"
-          autocapitalize="off"
-          aria-autocomplete="list"
-          aria-controls="jump-to-results"
-          data-jump-to-suggestions-path="/_graphql/GetSuggestedNavigationDestinations#csrf-token=wTlk1bW3333CIBnJ4ve+4GCECUVBVk0Bd96KQetq04UhmZytZAWptwW5YrfsIsMl96JNYgrYoUqUI4F0CujIQw=="
-          spellcheck="false"
-          autocomplete="off"
-          >
-          <input type="hidden" class="js-site-search-type-field" name="type" >
-            <img src="https://assets-cdn.github.com/images/search-shortcut-hint.svg" alt="" class=" mr-2 header-search-key-slash">
-
-            <div class="Box position-absolute overflow-hidden d-none jump-to-suggestions js-jump-to-suggestions-container">
-              <ul class="d-none js-jump-to-suggestions-template-container">
-                <li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item">
-                  <a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center p-2 jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open" href="">
-                    <div class="jump-to-octicon js-jump-to-octicon mr-2 text-center d-none"></div>
-                    <img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar" alt="" aria-label="Team" src="" width="28" height="28">
-
-                    <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden no-wrap css-truncate css-truncate-target">
-                    </div>
-
-                    <div class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none js-jump-to-badge-search">
-                      <span class="js-jump-to-badge-search-text-default d-none" aria-label="in this repository">
-                        In this repository
-                      </span>
-                      <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">
-                        All GitHub
-                      </span>
-                      <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span>
-                    </div>
-
-                    <div aria-hidden="true" class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
-                      Jump to
-                      <span class="d-inline-block ml-1 v-align-middle">↵</span>
-                    </div>
-                  </a>
-                </li>
-                <svg height="16" width="16" class="octicon octicon-repo flex-shrink-0 js-jump-to-repo-octicon-template" title="Repository" aria-label="Repository" viewBox="0 0 12 16" version="1.1" role="img"><path fill-rule="evenodd" d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z"/></svg>
-                <svg height="16" width="16" class="octicon octicon-project flex-shrink-0 js-jump-to-project-octicon-template" title="Project" aria-label="Project" viewBox="0 0 15 16" version="1.1" role="img"><path fill-rule="evenodd" d="M10 12h3V2h-3v10zm-4-2h3V2H6v8zm-4 4h3V2H2v12zm-1 1h13V1H1v14zM14 0H1a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h13a1 1 0 0 0 1-1V1a1 1 0 0 0-1-1z"/></svg>
-                <svg height="16" width="16" class="octicon octicon-search flex-shrink-0 js-jump-to-search-octicon-template" title="Search" aria-label="Search" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M15.7 13.3l-3.81-3.83A5.93 5.93 0 0 0 13 6c0-3.31-2.69-6-6-6S1 2.69 1 6s2.69 6 6 6c1.3 0 2.48-.41 3.47-1.11l3.83 3.81c.19.2.45.3.7.3.25 0 .52-.09.7-.3a.996.996 0 0 0 0-1.41v.01zM7 10.7c-2.59 0-4.7-2.11-4.7-4.7 0-2.59 2.11-4.7 4.7-4.7 2.59 0 4.7 2.11 4.7 4.7 0 2.59-2.11 4.7-4.7 4.7z"/></svg>
-              </ul>
-              <ul class="d-none js-jump-to-no-results-template-container">
-                <li class="d-flex flex-justify-center flex-items-center p-3 f5 d-none">
-                  <span class="text-gray">No suggested jump to results</span>
-                </li>
-              </ul>
-
-              <ul id="jump-to-results" class="js-navigation-container jump-to-suggestions-results-container js-jump-to-suggestions-results-container" >
-                <li class="d-flex flex-justify-center flex-items-center p-0 f5">
-                  <img src="https://assets-cdn.github.com/images/spinners/octocat-spinner-128.gif" alt="Octocat Spinner Icon" class="m-2" width="28">
-                </li>
-              </ul>
-            </div>
-      </label>
-</form>  </div>
-</div>
-
-            </div>
-
-          <span class="d-inline-block">
-              <div class="HeaderNavlink px-0 py-2 m-0">
-                <a class="text-bold text-white no-underline" href="/login?return_to=%2Ffreecores%2F8b10b_encdec%2Fblob%2Fmaster%2F8b10_dec.vhd" data-ga-click="(Logged out) Header, clicked Sign in, text:sign-in; experiment:site_header_dropdowns; group:control">Sign in</a>
-                  <span class="text-gray">or</span>
-                  <a class="text-bold text-white no-underline" href="/join?source=header-repo" data-ga-click="(Logged out) Header, clicked Sign up, text:sign-up; experiment:site_header_dropdowns; group:control">Sign up</a>
-              </div>
-          </span>
-        </div>
-      </div>
-    </div>
-  </header>
-
-  </div>
-
-  <div id="start-of-content" class="show-on-focus"></div>
-
-    <div id="js-flash-container">
-</div>
-
-
-
-  <div role="main" class="application-main ">
-        <div itemscope itemtype="http://schema.org/SoftwareSourceCode" class="">
-    <div id="js-repo-pjax-container" data-pjax-container >
-      
-
-
-
-
-
-  
-
-
-
-  <div class="pagehead repohead instapaper_ignore readability-menu experiment-repo-nav  ">
-    <div class="repohead-details-container clearfix container">
-
-      <ul class="pagehead-actions">
-  <li>
-      <a href="/login?return_to=%2Ffreecores%2F8b10b_encdec"
-    class="btn btn-sm btn-with-count tooltipped tooltipped-n"
-    aria-label="You must be signed in to watch a repository" rel="nofollow">
-    <svg class="octicon octicon-eye" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.06 2C3 2 0 8 0 8s3 6 8.06 6C13 14 16 8 16 8s-3-6-7.94-6zM8 12c-2.2 0-4-1.78-4-4 0-2.2 1.8-4 4-4 2.22 0 4 1.8 4 4 0 2.22-1.78 4-4 4zm2-4c0 1.11-.89 2-2 2-1.11 0-2-.89-2-2 0-1.11.89-2 2-2 1.11 0 2 .89 2 2z"/></svg>
-    Watch
-  </a>
-  <a class="social-count" href="/freecores/8b10b_encdec/watchers"
-     aria-label="1 user is watching this repository">
-    1
-  </a>
-
-  </li>
-
-  <li>
-      <a href="/login?return_to=%2Ffreecores%2F8b10b_encdec"
-    class="btn btn-sm btn-with-count tooltipped tooltipped-n"
-    aria-label="You must be signed in to star a repository" rel="nofollow">
-    <svg class="octicon octicon-star" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14 6l-4.9-.64L7 1 4.9 5.36 0 6l3.6 3.26L2.67 14 7 11.67 11.33 14l-.93-4.74L14 6z"/></svg>
-    Star
-  </a>
-
-    <a class="social-count js-social-count" href="/freecores/8b10b_encdec/stargazers"
-      aria-label="0 users starred this repository">
-      0
-    </a>
-
-  </li>
-
-  <li>
-      <a href="/login?return_to=%2Ffreecores%2F8b10b_encdec"
-        class="btn btn-sm btn-with-count tooltipped tooltipped-n"
-        aria-label="You must be signed in to fork a repository" rel="nofollow">
-        <svg class="octicon octicon-repo-forked" viewBox="0 0 10 16" version="1.1" width="10" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 1a1.993 1.993 0 0 0-1 3.72V6L5 8 3 6V4.72A1.993 1.993 0 0 0 2 1a1.993 1.993 0 0 0-1 3.72V6.5l3 3v1.78A1.993 1.993 0 0 0 5 15a1.993 1.993 0 0 0 1-3.72V9.5l3-3V4.72A1.993 1.993 0 0 0 8 1zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm3 10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm3-10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"/></svg>
-        Fork
-      </a>
-
-    <a href="/freecores/8b10b_encdec/network" class="social-count"
-       aria-label="0 users forked this repository">
-      0
-    </a>
-  </li>
-</ul>
-
-      <h1 class="public ">
-  <svg class="octicon octicon-repo" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z"/></svg>
-  <span class="author" itemprop="author"><a class="url fn" rel="author" href="/freecores">freecores</a></span><!--
---><span class="path-divider">/</span><!--
---><strong itemprop="name"><a data-pjax="#js-repo-pjax-container" href="/freecores/8b10b_encdec">8b10b_encdec</a></strong>
-
-</h1>
-
-    </div>
-    
-<nav class="reponav js-repo-nav js-sidenav-container-pjax container"
-     itemscope
-     itemtype="http://schema.org/BreadcrumbList"
-     role="navigation"
-     data-pjax="#js-repo-pjax-container">
-
-  <span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
-    <a class="js-selected-navigation-item selected reponav-item" itemprop="url" data-hotkey="g c" data-selected-links="repo_source repo_downloads repo_commits repo_releases repo_tags repo_branches repo_packages /freecores/8b10b_encdec" href="/freecores/8b10b_encdec">
-      <svg class="octicon octicon-code" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M9.5 3L8 4.5 11.5 8 8 11.5 9.5 13 14 8 9.5 3zm-5 0L0 8l4.5 5L6 11.5 2.5 8 6 4.5 4.5 3z"/></svg>
-      <span itemprop="name">Code</span>
-      <meta itemprop="position" content="1">
-</a>  </span>
-
-    <span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
-      <a itemprop="url" data-hotkey="g i" class="js-selected-navigation-item reponav-item" data-selected-links="repo_issues repo_labels repo_milestones /freecores/8b10b_encdec/issues" href="/freecores/8b10b_encdec/issues">
-        <svg class="octicon octicon-issue-opened" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"/></svg>
-        <span itemprop="name">Issues</span>
-        <span class="Counter">0</span>
-        <meta itemprop="position" content="2">
-</a>    </span>
-
-  <span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
-    <a data-hotkey="g p" itemprop="url" class="js-selected-navigation-item reponav-item" data-selected-links="repo_pulls checks /freecores/8b10b_encdec/pulls" href="/freecores/8b10b_encdec/pulls">
-      <svg class="octicon octicon-git-pull-request" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M11 11.28V5c-.03-.78-.34-1.47-.94-2.06C9.46 2.35 8.78 2.03 8 2H7V0L4 3l3 3V4h1c.27.02.48.11.69.31.21.2.3.42.31.69v6.28A1.993 1.993 0 0 0 10 15a1.993 1.993 0 0 0 1-3.72zm-1 2.92c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zM4 3c0-1.11-.89-2-2-2a1.993 1.993 0 0 0-1 3.72v6.56A1.993 1.993 0 0 0 2 15a1.993 1.993 0 0 0 1-3.72V4.72c.59-.34 1-.98 1-1.72zm-.8 10c0 .66-.55 1.2-1.2 1.2-.65 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"/></svg>
-      <span itemprop="name">Pull requests</span>
-      <span class="Counter">0</span>
-      <meta itemprop="position" content="3">
-</a>  </span>
-
-    <a data-hotkey="g b" class="js-selected-navigation-item reponav-item" data-selected-links="repo_projects new_repo_project repo_project /freecores/8b10b_encdec/projects" href="/freecores/8b10b_encdec/projects">
-      <svg class="octicon octicon-project" viewBox="0 0 15 16" version="1.1" width="15" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10 12h3V2h-3v10zm-4-2h3V2H6v8zm-4 4h3V2H2v12zm-1 1h13V1H1v14zM14 0H1a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h13a1 1 0 0 0 1-1V1a1 1 0 0 0-1-1z"/></svg>
-      Projects
-      <span class="Counter" >0</span>
-</a>
-
-
-  <a class="js-selected-navigation-item reponav-item" data-selected-links="repo_graphs repo_contributors dependency_graph pulse /freecores/8b10b_encdec/pulse" href="/freecores/8b10b_encdec/pulse">
-    <svg class="octicon octicon-graph" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M16 14v1H0V0h1v14h15zM5 13H3V8h2v5zm4 0H7V3h2v10zm4 0h-2V6h2v7z"/></svg>
-    Insights
-</a>
-
-</nav>
-
-
-  </div>
-
-<div class="container new-discussion-timeline experiment-repo-nav  ">
-  <div class="repository-content ">
-
-    
-  <a class="d-none js-permalink-shortcut" data-hotkey="y" href="/freecores/8b10b_encdec/blob/e55026d593f902add7c543cb1f7fd35ab95dabe2/8b10_dec.vhd">Permalink</a>
-
-  <!-- blob contrib key: blob_contributors:v21:e604417dfaf8c4f96462292efd0f7137 -->
-
-      <div class="signup-prompt-bg rounded-1">
-      <div class="signup-prompt p-4 text-center mb-4 rounded-1">
-        <div class="position-relative">
-          <!-- '"` --><!-- </textarea></xmp> --></option></form><form action="/site/dismiss_signup_prompt" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="authenticity_token" value="wpiR/5KOEndh/zCteh6oDlDG7o+OPHXTNynL3LipJS0pIN5pn/gIUy73RWSNlcTzMGbyuAsnCVJ1zxcIa9fwPg==" />
-            <button type="submit" class="position-absolute top-0 right-0 btn-link link-gray" data-ga-click="(Logged out) Sign up prompt, clicked Dismiss, text:dismiss">
-              Dismiss
-            </button>
-</form>          <h3 class="pt-2">Join GitHub today</h3>
-          <p class="col-6 mx-auto">GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.</p>
-          <a class="btn btn-primary" href="/join?source=prompt-blob-show" data-ga-click="(Logged out) Sign up prompt, clicked Sign up, text:sign-up">Sign up</a>
-        </div>
-      </div>
-    </div>
-
-
-  <div class="file-navigation">
-    
-<div class="select-menu branch-select-menu js-menu-container js-select-menu float-left">
-  <button class=" btn btn-sm select-menu-button js-menu-target css-truncate" data-hotkey="w"
-    
-    type="button" aria-label="Switch branches or tags" aria-expanded="false" aria-haspopup="true">
-      <i>Branch:</i>
-      <span class="js-select-button css-truncate-target">master</span>
-  </button>
-
-  <div class="select-menu-modal-holder js-menu-content js-navigation-container" data-pjax>
-
-    <div class="select-menu-modal">
-      <div class="select-menu-header">
-        <svg class="octicon octicon-x js-menu-close" role="img" aria-label="Close" viewBox="0 0 12 16" version="1.1" width="12" height="16"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z"/></svg>
-        <span class="select-menu-title">Switch branches/tags</span>
-      </div>
-
-      <div class="select-menu-filters">
-        <div class="select-menu-text-filter">
-          <input type="text" aria-label="Filter branches/tags" id="context-commitish-filter-field" class="form-control js-filterable-field js-navigation-enable" placeholder="Filter branches/tags">
-        </div>
-        <div class="select-menu-tabs">
-          <ul>
-            <li class="select-menu-tab">
-              <a href="#" data-tab-filter="branches" data-filter-placeholder="Filter branches/tags" class="js-select-menu-tab" role="tab">Branches</a>
-            </li>
-            <li class="select-menu-tab">
-              <a href="#" data-tab-filter="tags" data-filter-placeholder="Find a tag…" class="js-select-menu-tab" role="tab">Tags</a>
-            </li>
-          </ul>
-        </div>
-      </div>
-
-      <div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket" data-tab-filter="branches" role="menu">
-
-        <div data-filterable-for="context-commitish-filter-field" data-filterable-type="substring">
-
-
-            <a class="select-menu-item js-navigation-item js-navigation-open selected"
-               href="/freecores/8b10b_encdec/blob/master/8b10_dec.vhd"
-               data-name="master"
-               data-skip-pjax="true"
-               rel="nofollow">
-              <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5L12 5z"/></svg>
-              <span class="select-menu-item-text css-truncate-target js-select-menu-filter-text">
-                master
-              </span>
-            </a>
-        </div>
-
-          <div class="select-menu-no-results">Nothing to show</div>
-      </div>
-
-      <div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket" data-tab-filter="tags">
-        <div data-filterable-for="context-commitish-filter-field" data-filterable-type="substring">
-
-
-        </div>
-
-        <div class="select-menu-no-results">Nothing to show</div>
-      </div>
-
-    </div>
-  </div>
-</div>
-
-    <div class="BtnGroup float-right">
-      <a href="/freecores/8b10b_encdec/find/master"
-            class="js-pjax-capture-input btn btn-sm BtnGroup-item"
-            data-pjax
-            data-hotkey="t">
-        Find file
-      </a>
-      <clipboard-copy for="blob-path" class="btn btn-sm BtnGroup-item">
-        Copy path
-      </clipboard-copy>
-    </div>
-    <div id="blob-path" class="breadcrumb">
-      <span class="repo-root js-repo-root"><span class="js-path-segment"><a data-pjax="true" href="/freecores/8b10b_encdec"><span>8b10b_encdec</span></a></span></span><span class="separator">/</span><strong class="final-path">8b10_dec.vhd</strong>
-    </div>
-  </div>
-
-
-  <include-fragment src="/freecores/8b10b_encdec/contributors/master/8b10_dec.vhd" class="commit-tease commit-loader">
-    <div>
-      Fetching contributors&hellip;
-    </div>
-
-    <div class="commit-tease-contributors">
-        <img alt="" class="loader-loading float-left" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32-EAF2F5.gif" width="16" height="16" />
-      <span class="loader-error">Cannot retrieve contributors at this time</span>
-    </div>
-</include-fragment>
-
-
-  <div class="file">
-    <div class="file-header">
-  <div class="file-actions">
-
-    <div class="BtnGroup">
-      <a id="raw-url" class="btn btn-sm BtnGroup-item" href="/freecores/8b10b_encdec/raw/master/8b10_dec.vhd">Raw</a>
-        <a class="btn btn-sm js-update-url-with-hash BtnGroup-item" data-hotkey="b" href="/freecores/8b10b_encdec/blame/master/8b10_dec.vhd">Blame</a>
-      <a rel="nofollow" class="btn btn-sm BtnGroup-item" href="/freecores/8b10b_encdec/commits/master/8b10_dec.vhd">History</a>
-    </div>
-
-
-        <button type="button" class="btn-octicon disabled tooltipped tooltipped-nw"
-          aria-label="You must be signed in to make or propose changes">
-          <svg class="octicon octicon-pencil" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M0 12v3h3l8-8-3-3-8 8zm3 2H1v-2h1v1h1v1zm10.3-9.3L12 6 9 3l1.3-1.3a.996.996 0 0 1 1.41 0l1.59 1.59c.39.39.39 1.02 0 1.41z"/></svg>
-        </button>
-        <button type="button" class="btn-octicon btn-octicon-danger disabled tooltipped tooltipped-nw"
-          aria-label="You must be signed in to make or propose changes">
-          <svg class="octicon octicon-trashcan" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M11 2H9c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1H2c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1v9c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V5c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm-1 12H3V5h1v8h1V5h1v8h1V5h1v8h1V5h1v9zm1-10H2V3h9v1z"/></svg>
-        </button>
-  </div>
-
-  <div class="file-info">
-      225 lines (201 sloc)
-      <span class="file-info-divider"></span>
-    6.51 KB
-  </div>
-</div>
-
-    
-
-  <div itemprop="text" class="blob-wrapper data type-vhdl">
-      <table class="highlight tab-size js-file-line-container" data-tab-size="8">
-      <tr>
-        <td id="L1" class="blob-num js-line-number" data-line-number="1"></td>
-        <td id="LC1" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span>-----------------------------------------------------------------------------</span></td>
-      </tr>
-      <tr>
-        <td id="L2" class="blob-num js-line-number" data-line-number="2"></td>
-        <td id="LC2" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span></span></td>
-      </tr>
-      <tr>
-        <td id="L3" class="blob-num js-line-number" data-line-number="3"></td>
-        <td id="LC3" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span> Title      : 8b/10b Decoder</span></td>
-      </tr>
-      <tr>
-        <td id="L4" class="blob-num js-line-number" data-line-number="4"></td>
-        <td id="LC4" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span> Design     : 10-bit to 8-bit Decoder</span></td>
-      </tr>
-      <tr>
-        <td id="L5" class="blob-num js-line-number" data-line-number="5"></td>
-        <td id="LC5" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span> Project    : 8000 - 8b10b_encdec</span></td>
-      </tr>
-      <tr>
-        <td id="L6" class="blob-num js-line-number" data-line-number="6"></td>
-        <td id="LC6" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span> Author     : Ken Boyette</span></td>
-      </tr>
-      <tr>
-        <td id="L7" class="blob-num js-line-number" data-line-number="7"></td>
-        <td id="LC7" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span> Company    : Critia Computer, Inc.</span></td>
-      </tr>
-      <tr>
-        <td id="L8" class="blob-num js-line-number" data-line-number="8"></td>
-        <td id="LC8" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span></span></td>
-      </tr>
-      <tr>
-        <td id="L9" class="blob-num js-line-number" data-line-number="9"></td>
-        <td id="LC9" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span>-----------------------------------------------------------------------------</span></td>
-      </tr>
-      <tr>
-        <td id="L10" class="blob-num js-line-number" data-line-number="10"></td>
-        <td id="LC10" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span></span></td>
-      </tr>
-      <tr>
-        <td id="L11" class="blob-num js-line-number" data-line-number="11"></td>
-        <td id="LC11" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span> File                      : 8b10b_dec.vhd</span></td>
-      </tr>
-      <tr>
-        <td id="L12" class="blob-num js-line-number" data-line-number="12"></td>
-        <td id="LC12" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span> Version           : 1.0</span></td>
-      </tr>
-      <tr>
-        <td id="L13" class="blob-num js-line-number" data-line-number="13"></td>
-        <td id="LC13" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span> Generated : 09.27.2006</span></td>
-      </tr>
-      <tr>
-        <td id="L14" class="blob-num js-line-number" data-line-number="14"></td>
-        <td id="LC14" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span> By                        : Itf2Vhdl ver. 1.20</span></td>
-      </tr>
-      <tr>
-        <td id="L15" class="blob-num js-line-number" data-line-number="15"></td>
-        <td id="LC15" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span></span></td>
-      </tr>
-      <tr>
-        <td id="L16" class="blob-num js-line-number" data-line-number="16"></td>
-        <td id="LC16" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span>-----------------------------------------------------------------------------</span></td>
-      </tr>
-      <tr>
-        <td id="L17" class="blob-num js-line-number" data-line-number="17"></td>
-        <td id="LC17" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span></span></td>
-      </tr>
-      <tr>
-        <td id="L18" class="blob-num js-line-number" data-line-number="18"></td>
-        <td id="LC18" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span> Description :</span></td>
-      </tr>
-      <tr>
-        <td id="L19" class="blob-num js-line-number" data-line-number="19"></td>
-        <td id="LC19" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span>   This module provides 10-bit to 9-bit encoding.</span></td>
-      </tr>
-      <tr>
-        <td id="L20" class="blob-num js-line-number" data-line-number="20"></td>
-        <td id="LC20" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span>   It accepts 10-bit encoded parallel data input and generates 8-bit decoded </span></td>
-      </tr>
-      <tr>
-        <td id="L21" class="blob-num js-line-number" data-line-number="21"></td>
-        <td id="LC21" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span>   data output in accordance with the 8b/10b standard method.  This method was</span></td>
-      </tr>
-      <tr>
-        <td id="L22" class="blob-num js-line-number" data-line-number="22"></td>
-        <td id="LC22" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span>   described in the 1983 IBM publication &quot;A DC-Balanced, Partitioned-Block, </span></td>
-      </tr>
-      <tr>
-        <td id="L23" class="blob-num js-line-number" data-line-number="23"></td>
-        <td id="LC23" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span>   8B/10B Transmission Code&quot; by A.X. Widmer and P.A. Franaszek.  The method</span></td>
-      </tr>
-      <tr>
-        <td id="L24" class="blob-num js-line-number" data-line-number="24"></td>
-        <td id="LC24" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span>   WAS granted a U.S. Patent #4,486,739 in 1984; now expired.</span></td>
-      </tr>
-      <tr>
-        <td id="L25" class="blob-num js-line-number" data-line-number="25"></td>
-        <td id="LC25" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span></span></td>
-      </tr>
-      <tr>
-        <td id="L26" class="blob-num js-line-number" data-line-number="26"></td>
-        <td id="LC26" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span>           The parallel 10-bit Binary input represent 1024 possible values, called</span></td>
-      </tr>
-      <tr>
-        <td id="L27" class="blob-num js-line-number" data-line-number="27"></td>
-        <td id="LC27" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span>           characters - only 268 of which are valid.</span></td>
-      </tr>
-      <tr>
-        <td id="L28" class="blob-num js-line-number" data-line-number="28"></td>
-        <td id="LC28" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span></span></td>
-      </tr>
-      <tr>
-        <td id="L29" class="blob-num js-line-number" data-line-number="29"></td>
-        <td id="LC29" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span>           The     input is a 10-bit encoded character whose bits are identified as:</span></td>
-      </tr>
-      <tr>
-        <td id="L30" class="blob-num js-line-number" data-line-number="30"></td>
-        <td id="LC30" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span>                   AI, BI, CI, DI, EI, II, FI, GI, HI, JI (Least Significant to Most)</span></td>
-      </tr>
-      <tr>
-        <td id="L31" class="blob-num js-line-number" data-line-number="31"></td>
-        <td id="LC31" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span></span></td>
-      </tr>
-      <tr>
-        <td id="L32" class="blob-num js-line-number" data-line-number="32"></td>
-        <td id="LC32" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span>           In addition to 256 data output characters, there are 12 special control</span></td>
-      </tr>
-      <tr>
-        <td id="L33" class="blob-num js-line-number" data-line-number="33"></td>
-        <td id="LC33" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span>           or K, characters defined for command and synchronization use.</span></td>
-      </tr>
-      <tr>
-        <td id="L34" class="blob-num js-line-number" data-line-number="34"></td>
-        <td id="LC34" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span></span></td>
-      </tr>
-      <tr>
-        <td id="L35" class="blob-num js-line-number" data-line-number="35"></td>
-        <td id="LC35" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span>           The eight data output bits are identified as:</span></td>
-      </tr>
-      <tr>
-        <td id="L36" class="blob-num js-line-number" data-line-number="36"></td>
-        <td id="LC36" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span>                   HI, GI, FI, EI, DI, CI, BI, AI (Most Significant to Least)</span></td>
-      </tr>
-      <tr>
-        <td id="L37" class="blob-num js-line-number" data-line-number="37"></td>
-        <td id="LC37" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span></span></td>
-      </tr>
-      <tr>
-        <td id="L38" class="blob-num js-line-number" data-line-number="38"></td>
-        <td id="LC38" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span>           The output, KO, is used to indicate the output value is one of the</span></td>
-      </tr>
-      <tr>
-        <td id="L39" class="blob-num js-line-number" data-line-number="39"></td>
-        <td id="LC39" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span>           control characters.</span></td>
-      </tr>
-      <tr>
-        <td id="L40" class="blob-num js-line-number" data-line-number="40"></td>
-        <td id="LC40" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span></span></td>
-      </tr>
-      <tr>
-        <td id="L41" class="blob-num js-line-number" data-line-number="41"></td>
-        <td id="LC41" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span>           All inputs and outputs are synchronous with an externally supplied</span></td>
-      </tr>
-      <tr>
-        <td id="L42" class="blob-num js-line-number" data-line-number="42"></td>
-        <td id="LC42" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span>           byte rate clock BYTECLK.</span></td>
-      </tr>
-      <tr>
-        <td id="L43" class="blob-num js-line-number" data-line-number="43"></td>
-        <td id="LC43" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span>           The encoded output is valid one clock after the input.</span></td>
-      </tr>
-      <tr>
-        <td id="L44" class="blob-num js-line-number" data-line-number="44"></td>
-        <td id="LC44" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span>           There is a reset input, RESET, to reset the logic.  The next rising</span></td>
-      </tr>
-      <tr>
-        <td id="L45" class="blob-num js-line-number" data-line-number="45"></td>
-        <td id="LC45" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span>           BYTECLK after RESET is deasserted latches valid input data.</span></td>
-      </tr>
-      <tr>
-        <td id="L46" class="blob-num js-line-number" data-line-number="46"></td>
-        <td id="LC46" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span></span></td>
-      </tr>
-      <tr>
-        <td id="L47" class="blob-num js-line-number" data-line-number="47"></td>
-        <td id="LC47" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span>           Note: This VHDL structure closely follows the discrete logic defined</span></td>
-      </tr>
-      <tr>
-        <td id="L48" class="blob-num js-line-number" data-line-number="48"></td>
-        <td id="LC48" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span>           in the original article and the subsequent patent.  The Figures </span></td>
-      </tr>
-      <tr>
-        <td id="L49" class="blob-num js-line-number" data-line-number="49"></td>
-        <td id="LC49" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span>           referenced are those in the patent.</span></td>
-      </tr>
-      <tr>
-        <td id="L50" class="blob-num js-line-number" data-line-number="50"></td>
-        <td id="LC50" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span>-----------------------------------------------------------------------------</span></td>
-      </tr>
-      <tr>
-        <td id="L51" class="blob-num js-line-number" data-line-number="51"></td>
-        <td id="LC51" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span>   This program is licensed under the GPL</span></td>
-      </tr>
-      <tr>
-        <td id="L52" class="blob-num js-line-number" data-line-number="52"></td>
-        <td id="LC52" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span>-----------------------------------------------------------------------------</span></td>
-      </tr>
-      <tr>
-        <td id="L53" class="blob-num js-line-number" data-line-number="53"></td>
-        <td id="LC53" class="blob-code blob-code-inner js-file-line">
-</td>
-      </tr>
-      <tr>
-        <td id="L54" class="blob-num js-line-number" data-line-number="54"></td>
-        <td id="LC54" class="blob-code blob-code-inner js-file-line"><span class="pl-k">library</span> IEEE;</td>
-      </tr>
-      <tr>
-        <td id="L55" class="blob-num js-line-number" data-line-number="55"></td>
-        <td id="LC55" class="blob-code blob-code-inner js-file-line"><span class="pl-k">use</span> IEEE.STD_LOGIC_1164.<span class="pl-k">all</span>;</td>
-      </tr>
-      <tr>
-        <td id="L56" class="blob-num js-line-number" data-line-number="56"></td>
-        <td id="LC56" class="blob-code blob-code-inner js-file-line">
-</td>
-      </tr>
-      <tr>
-        <td id="L57" class="blob-num js-line-number" data-line-number="57"></td>
-        <td id="LC57" class="blob-code blob-code-inner js-file-line"><span class="pl-k">entity</span> <span class="pl-en">dec_8b10b</span> <span class="pl-k">is</span>        </td>
-      </tr>
-      <tr>
-        <td id="L58" class="blob-num js-line-number" data-line-number="58"></td>
-        <td id="LC58" class="blob-code blob-code-inner js-file-line">    <span class="pl-k">port</span>(</td>
-      </tr>
-      <tr>
-        <td id="L59" class="blob-num js-line-number" data-line-number="59"></td>
-        <td id="LC59" class="blob-code blob-code-inner js-file-line">          RESET : <span class="pl-k">in</span> <span class="pl-c1">std_logic</span> ;     <span class="pl-c"><span class="pl-c">--</span> Global asynchronous reset (AH) </span></td>
-      </tr>
-      <tr>
-        <td id="L60" class="blob-num js-line-number" data-line-number="60"></td>
-        <td id="LC60" class="blob-code blob-code-inner js-file-line">          RBYTECLK : <span class="pl-k">in</span> <span class="pl-c1">std_logic</span> ;  <span class="pl-c"><span class="pl-c">--</span> Master synchronous receive byte clock</span></td>
-      </tr>
-      <tr>
-        <td id="L61" class="blob-num js-line-number" data-line-number="61"></td>
-        <td id="LC61" class="blob-code blob-code-inner js-file-line">          AI, BI, CI, DI, EI, II : <span class="pl-k">in</span> <span class="pl-c1">std_logic</span> ;</td>
-      </tr>
-      <tr>
-        <td id="L62" class="blob-num js-line-number" data-line-number="62"></td>
-        <td id="LC62" class="blob-code blob-code-inner js-file-line">          FI, GI, HI, JI : <span class="pl-k">in</span> <span class="pl-c1">std_logic</span> ; <span class="pl-c"><span class="pl-c">--</span> Encoded input (LS..MS)             </span></td>
-      </tr>
-      <tr>
-        <td id="L63" class="blob-num js-line-number" data-line-number="63"></td>
-        <td id="LC63" class="blob-code blob-code-inner js-file-line">          KO : <span class="pl-k">out</span> <span class="pl-c1">std_logic</span> ;       <span class="pl-c"><span class="pl-c">--</span> Control (K) character indicator (AH)</span></td>
-      </tr>
-      <tr>
-        <td id="L64" class="blob-num js-line-number" data-line-number="64"></td>
-        <td id="LC64" class="blob-code blob-code-inner js-file-line">          HO, GO, FO, EO, DO, CO, BO, AO : <span class="pl-k">out</span> <span class="pl-c1">std_logic</span>     <span class="pl-c"><span class="pl-c">--</span> Decoded out (MS..LS)</span></td>
-      </tr>
-      <tr>
-        <td id="L65" class="blob-num js-line-number" data-line-number="65"></td>
-        <td id="LC65" class="blob-code blob-code-inner js-file-line">      );</td>
-      </tr>
-      <tr>
-        <td id="L66" class="blob-num js-line-number" data-line-number="66"></td>
-        <td id="LC66" class="blob-code blob-code-inner js-file-line"><span class="pl-k">end</span> <span class="pl-en">dec_8b10b</span>;</td>
-      </tr>
-      <tr>
-        <td id="L67" class="blob-num js-line-number" data-line-number="67"></td>
-        <td id="LC67" class="blob-code blob-code-inner js-file-line">
-</td>
-      </tr>
-      <tr>
-        <td id="L68" class="blob-num js-line-number" data-line-number="68"></td>
-        <td id="LC68" class="blob-code blob-code-inner js-file-line"><span class="pl-k">architecture</span> <span class="pl-en">behavioral</span> <span class="pl-k">of</span> <span class="pl-en">dec_8b10b</span> <span class="pl-k">is</span></td>
-      </tr>
-      <tr>
-        <td id="L69" class="blob-num js-line-number" data-line-number="69"></td>
-        <td id="LC69" class="blob-code blob-code-inner js-file-line">
-</td>
-      </tr>
-      <tr>
-        <td id="L70" class="blob-num js-line-number" data-line-number="70"></td>
-        <td id="LC70" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">--</span> Signals to tie things together</span></td>
-      </tr>
-      <tr>
-        <td id="L71" class="blob-num js-line-number" data-line-number="71"></td>
-        <td id="LC71" class="blob-code blob-code-inner js-file-line">  <span class="pl-k">signal</span> ANEB, CNED, EEI, P13, P22, P31 : <span class="pl-c1">std_logic</span> ;        <span class="pl-c"><span class="pl-c">--</span> Figure 10 Signals</span></td>
-      </tr>
-      <tr>
-        <td id="L72" class="blob-num js-line-number" data-line-number="72"></td>
-        <td id="LC72" class="blob-code blob-code-inner js-file-line">  <span class="pl-k">signal</span> IKA, IKB, IKC : <span class="pl-c1">std_logic</span> ; <span class="pl-c"><span class="pl-c">--</span> Figure 11 Signals</span></td>
-      </tr>
-      <tr>
-        <td id="L73" class="blob-num js-line-number" data-line-number="73"></td>
-        <td id="LC73" class="blob-code blob-code-inner js-file-line">  <span class="pl-k">signal</span> XA, XB, XC, XD, XE : <span class="pl-c1">std_logic</span> ;    <span class="pl-c"><span class="pl-c">--</span> Figure 12 Signals       </span></td>
-      </tr>
-      <tr>
-        <td id="L74" class="blob-num js-line-number" data-line-number="74"></td>
-        <td id="LC74" class="blob-code blob-code-inner js-file-line">  <span class="pl-k">signal</span> OR121, OR122, OR123, OR124, OR125, OR126, OR127 : <span class="pl-c1">std_logic</span> ;</td>
-      </tr>
-      <tr>
-        <td id="L75" class="blob-num js-line-number" data-line-number="75"></td>
-        <td id="LC75" class="blob-code blob-code-inner js-file-line">  <span class="pl-k">signal</span> XF, XG, XH : <span class="pl-c1">std_logic</span> ;    <span class="pl-c"><span class="pl-c">--</span> Figure 13 Signals</span></td>
-      </tr>
-      <tr>
-        <td id="L76" class="blob-num js-line-number" data-line-number="76"></td>
-        <td id="LC76" class="blob-code blob-code-inner js-file-line">  <span class="pl-k">signal</span> OR131, OR132, OR133, OR134, IOR134 : <span class="pl-c1">std_logic</span> ;</td>
-      </tr>
-      <tr>
-        <td id="L77" class="blob-num js-line-number" data-line-number="77"></td>
-        <td id="LC77" class="blob-code blob-code-inner js-file-line">
-</td>
-      </tr>
-      <tr>
-        <td id="L78" class="blob-num js-line-number" data-line-number="78"></td>
-        <td id="LC78" class="blob-code blob-code-inner js-file-line"><span class="pl-k">begin</span></td>
-      </tr>
-      <tr>
-        <td id="L79" class="blob-num js-line-number" data-line-number="79"></td>
-        <td id="LC79" class="blob-code blob-code-inner js-file-line">
-</td>
-      </tr>
-      <tr>
-        <td id="L80" class="blob-num js-line-number" data-line-number="80"></td>
-        <td id="LC80" class="blob-code blob-code-inner js-file-line">  <span class="pl-c"><span class="pl-c">--</span></span></td>
-      </tr>
-      <tr>
-        <td id="L81" class="blob-num js-line-number" data-line-number="81"></td>
-        <td id="LC81" class="blob-code blob-code-inner js-file-line">  <span class="pl-c"><span class="pl-c">--</span> 6b Input Function (Reference: Figure 10)</span></td>
-      </tr>
-      <tr>
-        <td id="L82" class="blob-num js-line-number" data-line-number="82"></td>
-        <td id="LC82" class="blob-code blob-code-inner js-file-line">  <span class="pl-c"><span class="pl-c">--</span></span></td>
-      </tr>
-      <tr>
-        <td id="L83" class="blob-num js-line-number" data-line-number="83"></td>
-        <td id="LC83" class="blob-code blob-code-inner js-file-line">  </td>
-      </tr>
-      <tr>
-        <td id="L84" class="blob-num js-line-number" data-line-number="84"></td>
-        <td id="LC84" class="blob-code blob-code-inner js-file-line">  <span class="pl-c"><span class="pl-c">--</span> One 1 and three 0&#39;s</span></td>
-      </tr>
-      <tr>
-        <td id="L85" class="blob-num js-line-number" data-line-number="85"></td>
-        <td id="LC85" class="blob-code blob-code-inner js-file-line">  P13 <span class="pl-k">&lt;=</span>     (ANEB <span class="pl-k">and</span> (<span class="pl-k">not</span> CI <span class="pl-k">and</span> <span class="pl-k">not</span> DI))</td>
-      </tr>
-      <tr>
-        <td id="L86" class="blob-num js-line-number" data-line-number="86"></td>
-        <td id="LC86" class="blob-code blob-code-inner js-file-line">                  <span class="pl-k">or</span> (CNED <span class="pl-k">and</span> (<span class="pl-k">not</span> AI <span class="pl-k">and</span> <span class="pl-k">not</span> BI)) ;</td>
-      </tr>
-      <tr>
-        <td id="L87" class="blob-num js-line-number" data-line-number="87"></td>
-        <td id="LC87" class="blob-code blob-code-inner js-file-line">  <span class="pl-c"><span class="pl-c">--</span> Three 1&#39;s and one 0         </span></td>
-      </tr>
-      <tr>
-        <td id="L88" class="blob-num js-line-number" data-line-number="88"></td>
-        <td id="LC88" class="blob-code blob-code-inner js-file-line">  P31 <span class="pl-k">&lt;=</span>     (ANEB <span class="pl-k">and</span> CI <span class="pl-k">and</span> DI)</td>
-      </tr>
-      <tr>
-        <td id="L89" class="blob-num js-line-number" data-line-number="89"></td>
-        <td id="LC89" class="blob-code blob-code-inner js-file-line">                  <span class="pl-k">or</span> (CNED <span class="pl-k">and</span> AI <span class="pl-k">and</span> BI) ;</td>
-      </tr>
-      <tr>
-        <td id="L90" class="blob-num js-line-number" data-line-number="90"></td>
-        <td id="LC90" class="blob-code blob-code-inner js-file-line">  <span class="pl-c"><span class="pl-c">--</span> Two 1&#39;s and two 0&#39;s</span></td>
-      </tr>
-      <tr>
-        <td id="L91" class="blob-num js-line-number" data-line-number="91"></td>
-        <td id="LC91" class="blob-code blob-code-inner js-file-line">  P22 <span class="pl-k">&lt;=</span>     (AI <span class="pl-k">and</span> BI <span class="pl-k">and</span> (<span class="pl-k">not</span> CI <span class="pl-k">and</span> <span class="pl-k">not</span> DI))</td>
-      </tr>
-      <tr>
-        <td id="L92" class="blob-num js-line-number" data-line-number="92"></td>
-        <td id="LC92" class="blob-code blob-code-inner js-file-line">                  <span class="pl-k">or</span> (CI <span class="pl-k">and</span> DI <span class="pl-k">and</span> (<span class="pl-k">not</span> AI <span class="pl-k">and</span> <span class="pl-k">not</span> BI))</td>
-      </tr>
-      <tr>
-        <td id="L93" class="blob-num js-line-number" data-line-number="93"></td>
-        <td id="LC93" class="blob-code blob-code-inner js-file-line">                  <span class="pl-k">or</span> (ANEB <span class="pl-k">and</span> CNED) ;</td>
-      </tr>
-      <tr>
-        <td id="L94" class="blob-num js-line-number" data-line-number="94"></td>
-        <td id="LC94" class="blob-code blob-code-inner js-file-line">                  </td>
-      </tr>
-      <tr>
-        <td id="L95" class="blob-num js-line-number" data-line-number="95"></td>
-        <td id="LC95" class="blob-code blob-code-inner js-file-line">  <span class="pl-c"><span class="pl-c">--</span> Intermediate term for &quot;AI is Not Equal to BI&quot;</span></td>
-      </tr>
-      <tr>
-        <td id="L96" class="blob-num js-line-number" data-line-number="96"></td>
-        <td id="LC96" class="blob-code blob-code-inner js-file-line">  ANEB <span class="pl-k">&lt;=</span>  AI <span class="pl-k">xor</span>  BI ;</td>
-      </tr>
-      <tr>
-        <td id="L97" class="blob-num js-line-number" data-line-number="97"></td>
-        <td id="LC97" class="blob-code blob-code-inner js-file-line">  </td>
-      </tr>
-      <tr>
-        <td id="L98" class="blob-num js-line-number" data-line-number="98"></td>
-        <td id="LC98" class="blob-code blob-code-inner js-file-line">  <span class="pl-c"><span class="pl-c">--</span> Intermediate term for &quot;CI is Not Equal to DI&quot;</span></td>
-      </tr>
-      <tr>
-        <td id="L99" class="blob-num js-line-number" data-line-number="99"></td>
-        <td id="LC99" class="blob-code blob-code-inner js-file-line">  CNED <span class="pl-k">&lt;=</span>  CI <span class="pl-k">xor</span>  DI ;</td>
-      </tr>
-      <tr>
-        <td id="L100" class="blob-num js-line-number" data-line-number="100"></td>
-        <td id="LC100" class="blob-code blob-code-inner js-file-line"> </td>
-      </tr>
-      <tr>
-        <td id="L101" class="blob-num js-line-number" data-line-number="101"></td>
-        <td id="LC101" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">--</span> Intermediate term for &quot;E is Equal to I&quot;</span></td>
-      </tr>
-      <tr>
-        <td id="L102" class="blob-num js-line-number" data-line-number="102"></td>
-        <td id="LC102" class="blob-code blob-code-inner js-file-line"> EEI <span class="pl-k">&lt;=</span> EI <span class="pl-k">xnor</span> II ;</td>
-      </tr>
-      <tr>
-        <td id="L103" class="blob-num js-line-number" data-line-number="103"></td>
-        <td id="LC103" class="blob-code blob-code-inner js-file-line"> </td>
-      </tr>
-      <tr>
-        <td id="L104" class="blob-num js-line-number" data-line-number="104"></td>
-        <td id="LC104" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">--</span></span></td>
-      </tr>
-      <tr>
-        <td id="L105" class="blob-num js-line-number" data-line-number="105"></td>
-        <td id="LC105" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">--</span> K Decoder - Figure 11</span></td>
-      </tr>
-      <tr>
-        <td id="L106" class="blob-num js-line-number" data-line-number="106"></td>
-        <td id="LC106" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">--</span></span></td>
-      </tr>
-      <tr>
-        <td id="L107" class="blob-num js-line-number" data-line-number="107"></td>
-        <td id="LC107" class="blob-code blob-code-inner js-file-line"> </td>
-      </tr>
-      <tr>
-        <td id="L108" class="blob-num js-line-number" data-line-number="108"></td>
-        <td id="LC108" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">--</span> Intermediate terms</span></td>
-      </tr>
-      <tr>
-        <td id="L109" class="blob-num js-line-number" data-line-number="109"></td>
-        <td id="LC109" class="blob-code blob-code-inner js-file-line"> IKA     <span class="pl-k">&lt;=</span> (CI <span class="pl-k">and</span> DI <span class="pl-k">and</span> EI <span class="pl-k">and</span> II)</td>
-      </tr>
-      <tr>
-        <td id="L110" class="blob-num js-line-number" data-line-number="110"></td>
-        <td id="LC110" class="blob-code blob-code-inner js-file-line">         <span class="pl-k">or</span> (<span class="pl-k">not</span> CI <span class="pl-k">and</span> <span class="pl-k">not</span> DI <span class="pl-k">and</span> <span class="pl-k">not</span> EI <span class="pl-k">and</span> <span class="pl-k">not</span> II) ;</td>
-      </tr>
-      <tr>
-        <td id="L111" class="blob-num js-line-number" data-line-number="111"></td>
-        <td id="LC111" class="blob-code blob-code-inner js-file-line"> IKB <span class="pl-k">&lt;=</span> P13 <span class="pl-k">and</span> (<span class="pl-k">not</span> EI <span class="pl-k">and</span> II <span class="pl-k">and</span> GI <span class="pl-k">and</span> HI <span class="pl-k">and</span> JI) ;</td>
-      </tr>
-      <tr>
-        <td id="L112" class="blob-num js-line-number" data-line-number="112"></td>
-        <td id="LC112" class="blob-code blob-code-inner js-file-line"> IKC <span class="pl-k">&lt;=</span> P31 <span class="pl-k">and</span> (EI <span class="pl-k">and</span> <span class="pl-k">not</span> II <span class="pl-k">and</span> <span class="pl-k">not</span> GI <span class="pl-k">and</span> <span class="pl-k">not</span> HI <span class="pl-k">and</span> <span class="pl-k">not</span> JI) ;</td>
-      </tr>
-      <tr>
-        <td id="L113" class="blob-num js-line-number" data-line-number="113"></td>
-        <td id="LC113" class="blob-code blob-code-inner js-file-line"> </td>
-      </tr>
-      <tr>
-        <td id="L114" class="blob-num js-line-number" data-line-number="114"></td>
-        <td id="LC114" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">--</span> PROCESS: KFN; Determine K output</span></td>
-      </tr>
-      <tr>
-        <td id="L115" class="blob-num js-line-number" data-line-number="115"></td>
-        <td id="LC115" class="blob-code blob-code-inner js-file-line"> <span class="pl-en">KFN</span>: <span class="pl-k">process</span> (RESET, RBYTECLK, IKA, IKB, IKC)</td>
-      </tr>
-      <tr>
-        <td id="L116" class="blob-num js-line-number" data-line-number="116"></td>
-        <td id="LC116" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">begin</span></td>
-      </tr>
-      <tr>
-        <td id="L117" class="blob-num js-line-number" data-line-number="117"></td>
-        <td id="LC117" class="blob-code blob-code-inner js-file-line">         <span class="pl-k">if</span> RESET <span class="pl-k">=</span> <span class="pl-c1">&#39;1&#39;</span> <span class="pl-k">then</span></td>
-      </tr>
-      <tr>
-        <td id="L118" class="blob-num js-line-number" data-line-number="118"></td>
-        <td id="LC118" class="blob-code blob-code-inner js-file-line">                 KO <span class="pl-k">&lt;=</span> <span class="pl-c1">&#39;0&#39;</span>;</td>
-      </tr>
-      <tr>
-        <td id="L119" class="blob-num js-line-number" data-line-number="119"></td>
-        <td id="LC119" class="blob-code blob-code-inner js-file-line">         <span class="pl-k">elsif</span> RBYTECLK<span class="pl-k">&#39;event</span> <span class="pl-k">and</span> RBYTECLK <span class="pl-k">=</span> <span class="pl-c1">&#39;0&#39;</span> <span class="pl-k">then</span></td>
-      </tr>
-      <tr>
-        <td id="L120" class="blob-num js-line-number" data-line-number="120"></td>
-        <td id="LC120" class="blob-code blob-code-inner js-file-line">                 KO <span class="pl-k">&lt;=</span> IKA <span class="pl-k">or</span> IKB <span class="pl-k">or</span> IKC;</td>
-      </tr>
-      <tr>
-        <td id="L121" class="blob-num js-line-number" data-line-number="121"></td>
-        <td id="LC121" class="blob-code blob-code-inner js-file-line">         <span class="pl-k">end</span> <span class="pl-k">if</span>;</td>
-      </tr>
-      <tr>
-        <td id="L122" class="blob-num js-line-number" data-line-number="122"></td>
-        <td id="LC122" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">end</span> <span class="pl-k">process</span> <span class="pl-en">KFN</span>;</td>
-      </tr>
-      <tr>
-        <td id="L123" class="blob-num js-line-number" data-line-number="123"></td>
-        <td id="LC123" class="blob-code blob-code-inner js-file-line"> </td>
-      </tr>
-      <tr>
-        <td id="L124" class="blob-num js-line-number" data-line-number="124"></td>
-        <td id="LC124" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">--</span></span></td>
-      </tr>
-      <tr>
-        <td id="L125" class="blob-num js-line-number" data-line-number="125"></td>
-        <td id="LC125" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">--</span> 5b Decoder Figure 12</span></td>
-      </tr>
-      <tr>
-        <td id="L126" class="blob-num js-line-number" data-line-number="126"></td>
-        <td id="LC126" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">--</span></span></td>
-      </tr>
-      <tr>
-        <td id="L127" class="blob-num js-line-number" data-line-number="127"></td>
-        <td id="LC127" class="blob-code blob-code-inner js-file-line"> </td>
-      </tr>
-      <tr>
-        <td id="L128" class="blob-num js-line-number" data-line-number="128"></td>
-        <td id="LC128" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">--</span> Logic to determine complimenting A,B,C,D,E,I inputs</span></td>
-      </tr>
-      <tr>
-        <td id="L129" class="blob-num js-line-number" data-line-number="129"></td>
-        <td id="LC129" class="blob-code blob-code-inner js-file-line"> OR121 <span class="pl-k">&lt;=</span> (P22 <span class="pl-k">and</span> (<span class="pl-k">not</span> AI <span class="pl-k">and</span> <span class="pl-k">not</span> CI <span class="pl-k">and</span> EEI))</td>
-      </tr>
-      <tr>
-        <td id="L130" class="blob-num js-line-number" data-line-number="130"></td>
-        <td id="LC130" class="blob-code blob-code-inner js-file-line">         <span class="pl-k">or</span> (P13 <span class="pl-k">and</span> <span class="pl-k">not</span> EI) ;</td>
-      </tr>
-      <tr>
-        <td id="L131" class="blob-num js-line-number" data-line-number="131"></td>
-        <td id="LC131" class="blob-code blob-code-inner js-file-line"> OR122 <span class="pl-k">&lt;=</span> (AI <span class="pl-k">and</span> BI <span class="pl-k">and</span> EI <span class="pl-k">and</span> II)</td>
-      </tr>
-      <tr>
-        <td id="L132" class="blob-num js-line-number" data-line-number="132"></td>
-        <td id="LC132" class="blob-code blob-code-inner js-file-line">         <span class="pl-k">or</span> (<span class="pl-k">not</span> CI <span class="pl-k">and</span> <span class="pl-k">not</span> DI <span class="pl-k">and</span> <span class="pl-k">not</span> EI <span class="pl-k">and</span> <span class="pl-k">not</span> II)</td>
-      </tr>
-      <tr>
-        <td id="L133" class="blob-num js-line-number" data-line-number="133"></td>
-        <td id="LC133" class="blob-code blob-code-inner js-file-line">         <span class="pl-k">or</span> (P31 <span class="pl-k">and</span> II) ;</td>
-      </tr>
-      <tr>
-        <td id="L134" class="blob-num js-line-number" data-line-number="134"></td>
-        <td id="LC134" class="blob-code blob-code-inner js-file-line"> OR123 <span class="pl-k">&lt;=</span> (P31 <span class="pl-k">and</span> II)</td>
-      </tr>
-      <tr>
-        <td id="L135" class="blob-num js-line-number" data-line-number="135"></td>
-        <td id="LC135" class="blob-code blob-code-inner js-file-line">         <span class="pl-k">or</span> (P22 <span class="pl-k">and</span> BI <span class="pl-k">and</span> CI <span class="pl-k">and</span> EEI)</td>
-      </tr>
-      <tr>
-        <td id="L136" class="blob-num js-line-number" data-line-number="136"></td>
-        <td id="LC136" class="blob-code blob-code-inner js-file-line">         <span class="pl-k">or</span> (P13 <span class="pl-k">and</span> DI <span class="pl-k">and</span> EI <span class="pl-k">and</span> II) ;</td>
-      </tr>
-      <tr>
-        <td id="L137" class="blob-num js-line-number" data-line-number="137"></td>
-        <td id="LC137" class="blob-code blob-code-inner js-file-line"> OR124 <span class="pl-k">&lt;=</span> (P22 <span class="pl-k">and</span> AI <span class="pl-k">and</span> CI <span class="pl-k">and</span> EEI)</td>
-      </tr>
-      <tr>
-        <td id="L138" class="blob-num js-line-number" data-line-number="138"></td>
-        <td id="LC138" class="blob-code blob-code-inner js-file-line">         <span class="pl-k">or</span> (P13 <span class="pl-k">and</span> <span class="pl-k">not</span> EI) ;</td>
-      </tr>
-      <tr>
-        <td id="L139" class="blob-num js-line-number" data-line-number="139"></td>
-        <td id="LC139" class="blob-code blob-code-inner js-file-line"> OR125 <span class="pl-k">&lt;=</span> (P13 <span class="pl-k">and</span> <span class="pl-k">not</span> EI)</td>
-      </tr>
-      <tr>
-        <td id="L140" class="blob-num js-line-number" data-line-number="140"></td>
-        <td id="LC140" class="blob-code blob-code-inner js-file-line">         <span class="pl-k">or</span> (<span class="pl-k">not</span> CI <span class="pl-k">and</span> <span class="pl-k">not</span> DI <span class="pl-k">and</span> <span class="pl-k">not</span> EI <span class="pl-k">and</span> <span class="pl-k">not</span> II)</td>
-      </tr>
-      <tr>
-        <td id="L141" class="blob-num js-line-number" data-line-number="141"></td>
-        <td id="LC141" class="blob-code blob-code-inner js-file-line">         <span class="pl-k">or</span> (<span class="pl-k">not</span> AI <span class="pl-k">and</span> <span class="pl-k">not</span> BI <span class="pl-k">and</span> <span class="pl-k">not</span> EI <span class="pl-k">and</span> <span class="pl-k">not</span> II) ;</td>
-      </tr>
-      <tr>
-        <td id="L142" class="blob-num js-line-number" data-line-number="142"></td>
-        <td id="LC142" class="blob-code blob-code-inner js-file-line"> OR126 <span class="pl-k">&lt;=</span> (P22 <span class="pl-k">and</span> <span class="pl-k">not</span> AI <span class="pl-k">and</span> <span class="pl-k">not</span> CI <span class="pl-k">and</span> EEI)</td>
-      </tr>
-      <tr>
-        <td id="L143" class="blob-num js-line-number" data-line-number="143"></td>
-        <td id="LC143" class="blob-code blob-code-inner js-file-line">         <span class="pl-k">or</span> (P13 <span class="pl-k">and</span> <span class="pl-k">not</span> II) ;</td>
-      </tr>
-      <tr>
-        <td id="L144" class="blob-num js-line-number" data-line-number="144"></td>
-        <td id="LC144" class="blob-code blob-code-inner js-file-line"> OR127 <span class="pl-k">&lt;=</span> (P13 <span class="pl-k">and</span> DI <span class="pl-k">and</span> EI <span class="pl-k">and</span> II)</td>
-      </tr>
-      <tr>
-        <td id="L145" class="blob-num js-line-number" data-line-number="145"></td>
-        <td id="LC145" class="blob-code blob-code-inner js-file-line">         <span class="pl-k">or</span> (P22 <span class="pl-k">and</span> <span class="pl-k">not</span> BI <span class="pl-k">and</span> <span class="pl-k">not</span> CI <span class="pl-k">and</span> EEI) ;</td>
-      </tr>
-      <tr>
-        <td id="L146" class="blob-num js-line-number" data-line-number="146"></td>
-        <td id="LC146" class="blob-code blob-code-inner js-file-line"> </td>
-      </tr>
-      <tr>
-        <td id="L147" class="blob-num js-line-number" data-line-number="147"></td>
-        <td id="LC147" class="blob-code blob-code-inner js-file-line"> XA <span class="pl-k">&lt;=</span> OR127</td>
-      </tr>
-      <tr>
-        <td id="L148" class="blob-num js-line-number" data-line-number="148"></td>
-        <td id="LC148" class="blob-code blob-code-inner js-file-line">         <span class="pl-k">or</span> OR121</td>
-      </tr>
-      <tr>
-        <td id="L149" class="blob-num js-line-number" data-line-number="149"></td>
-        <td id="LC149" class="blob-code blob-code-inner js-file-line">         <span class="pl-k">or</span> OR122 ;</td>
-      </tr>
-      <tr>
-        <td id="L150" class="blob-num js-line-number" data-line-number="150"></td>
-        <td id="LC150" class="blob-code blob-code-inner js-file-line"> XB <span class="pl-k">&lt;=</span> OR122</td>
-      </tr>
-      <tr>
-        <td id="L151" class="blob-num js-line-number" data-line-number="151"></td>
-        <td id="LC151" class="blob-code blob-code-inner js-file-line">         <span class="pl-k">or</span> OR123</td>
-      </tr>
-      <tr>
-        <td id="L152" class="blob-num js-line-number" data-line-number="152"></td>
-        <td id="LC152" class="blob-code blob-code-inner js-file-line">         <span class="pl-k">or</span> OR124 ;</td>
-      </tr>
-      <tr>
-        <td id="L153" class="blob-num js-line-number" data-line-number="153"></td>
-        <td id="LC153" class="blob-code blob-code-inner js-file-line"> XC <span class="pl-k">&lt;=</span> OR121</td>
-      </tr>
-      <tr>
-        <td id="L154" class="blob-num js-line-number" data-line-number="154"></td>
-        <td id="LC154" class="blob-code blob-code-inner js-file-line">         <span class="pl-k">or</span> OR123</td>
-      </tr>
-      <tr>
-        <td id="L155" class="blob-num js-line-number" data-line-number="155"></td>
-        <td id="LC155" class="blob-code blob-code-inner js-file-line">         <span class="pl-k">or</span> OR125 ;</td>
-      </tr>
-      <tr>
-        <td id="L156" class="blob-num js-line-number" data-line-number="156"></td>
-        <td id="LC156" class="blob-code blob-code-inner js-file-line"> XD <span class="pl-k">&lt;=</span> OR122</td>
-      </tr>
-      <tr>
-        <td id="L157" class="blob-num js-line-number" data-line-number="157"></td>
-        <td id="LC157" class="blob-code blob-code-inner js-file-line">         <span class="pl-k">or</span> OR124</td>
-      </tr>
-      <tr>
-        <td id="L158" class="blob-num js-line-number" data-line-number="158"></td>
-        <td id="LC158" class="blob-code blob-code-inner js-file-line">         <span class="pl-k">or</span> OR127 ;</td>
-      </tr>
-      <tr>
-        <td id="L159" class="blob-num js-line-number" data-line-number="159"></td>
-        <td id="LC159" class="blob-code blob-code-inner js-file-line"> XE <span class="pl-k">&lt;=</span> OR125</td>
-      </tr>
-      <tr>
-        <td id="L160" class="blob-num js-line-number" data-line-number="160"></td>
-        <td id="LC160" class="blob-code blob-code-inner js-file-line">         <span class="pl-k">or</span> OR126</td>
-      </tr>
-      <tr>
-        <td id="L161" class="blob-num js-line-number" data-line-number="161"></td>
-        <td id="LC161" class="blob-code blob-code-inner js-file-line">         <span class="pl-k">or</span> OR127 ; </td>
-      </tr>
-      <tr>
-        <td id="L162" class="blob-num js-line-number" data-line-number="162"></td>
-        <td id="LC162" class="blob-code blob-code-inner js-file-line"> </td>
-      </tr>
-      <tr>
-        <td id="L163" class="blob-num js-line-number" data-line-number="163"></td>
-        <td id="LC163" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">--</span> PROCESS: DEC5B; Generate and latch LS 5 decoded bits</span></td>
-      </tr>
-      <tr>
-        <td id="L164" class="blob-num js-line-number" data-line-number="164"></td>
-        <td id="LC164" class="blob-code blob-code-inner js-file-line"> <span class="pl-en">DEC5B</span>: <span class="pl-k">process</span> (RESET, RBYTECLK, XA, XB, XC, XD, XE, AI, BI, CI, DI, EI)</td>
-      </tr>
-      <tr>
-        <td id="L165" class="blob-num js-line-number" data-line-number="165"></td>
-        <td id="LC165" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">begin</span></td>
-      </tr>
-      <tr>
-        <td id="L166" class="blob-num js-line-number" data-line-number="166"></td>
-        <td id="LC166" class="blob-code blob-code-inner js-file-line">         <span class="pl-k">if</span> RESET <span class="pl-k">=</span> <span class="pl-c1">&#39;1&#39;</span> <span class="pl-k">then</span></td>
-      </tr>
-      <tr>
-        <td id="L167" class="blob-num js-line-number" data-line-number="167"></td>
-        <td id="LC167" class="blob-code blob-code-inner js-file-line">                 AO <span class="pl-k">&lt;=</span> <span class="pl-c1">&#39;0&#39;</span> ;</td>
-      </tr>
-      <tr>
-        <td id="L168" class="blob-num js-line-number" data-line-number="168"></td>
-        <td id="LC168" class="blob-code blob-code-inner js-file-line">                 BO <span class="pl-k">&lt;=</span> <span class="pl-c1">&#39;0&#39;</span> ;</td>
-      </tr>
-      <tr>
-        <td id="L169" class="blob-num js-line-number" data-line-number="169"></td>
-        <td id="LC169" class="blob-code blob-code-inner js-file-line">                 CO <span class="pl-k">&lt;=</span> <span class="pl-c1">&#39;0&#39;</span> ;</td>
-      </tr>
-      <tr>
-        <td id="L170" class="blob-num js-line-number" data-line-number="170"></td>
-        <td id="LC170" class="blob-code blob-code-inner js-file-line">                 DO <span class="pl-k">&lt;=</span> <span class="pl-c1">&#39;0&#39;</span> ;</td>
-      </tr>
-      <tr>
-        <td id="L171" class="blob-num js-line-number" data-line-number="171"></td>
-        <td id="LC171" class="blob-code blob-code-inner js-file-line">                 EO <span class="pl-k">&lt;=</span> <span class="pl-c1">&#39;0&#39;</span> ;</td>
-      </tr>
-      <tr>
-        <td id="L172" class="blob-num js-line-number" data-line-number="172"></td>
-        <td id="LC172" class="blob-code blob-code-inner js-file-line">         <span class="pl-k">elsif</span> RBYTECLK<span class="pl-k">&#39;event</span> <span class="pl-k">and</span> RBYTECLK <span class="pl-k">=</span> <span class="pl-c1">&#39;0&#39;</span> <span class="pl-k">then</span></td>
-      </tr>
-      <tr>
-        <td id="L173" class="blob-num js-line-number" data-line-number="173"></td>
-        <td id="LC173" class="blob-code blob-code-inner js-file-line">                 AO <span class="pl-k">&lt;=</span> XA <span class="pl-k">XOR</span> AI ;        <span class="pl-c"><span class="pl-c">--</span> Least significant bit 0</span></td>
-      </tr>
-      <tr>
-        <td id="L174" class="blob-num js-line-number" data-line-number="174"></td>
-        <td id="LC174" class="blob-code blob-code-inner js-file-line">                 BO <span class="pl-k">&lt;=</span> XB <span class="pl-k">XOR</span> BI ;</td>
-      </tr>
-      <tr>
-        <td id="L175" class="blob-num js-line-number" data-line-number="175"></td>
-        <td id="LC175" class="blob-code blob-code-inner js-file-line">                 CO <span class="pl-k">&lt;=</span> XC <span class="pl-k">XOR</span> CI ;</td>
-      </tr>
-      <tr>
-        <td id="L176" class="blob-num js-line-number" data-line-number="176"></td>
-        <td id="LC176" class="blob-code blob-code-inner js-file-line">                 DO <span class="pl-k">&lt;=</span> XD <span class="pl-k">XOR</span> DI ;</td>
-      </tr>
-      <tr>
-        <td id="L177" class="blob-num js-line-number" data-line-number="177"></td>
-        <td id="LC177" class="blob-code blob-code-inner js-file-line">                 EO <span class="pl-k">&lt;=</span> XE <span class="pl-k">XOR</span> EI ;        <span class="pl-c"><span class="pl-c">--</span> Most significant bit 6</span></td>
-      </tr>
-      <tr>
-        <td id="L178" class="blob-num js-line-number" data-line-number="178"></td>
-        <td id="LC178" class="blob-code blob-code-inner js-file-line">         <span class="pl-k">end</span> <span class="pl-k">if</span>;</td>
-      </tr>
-      <tr>
-        <td id="L179" class="blob-num js-line-number" data-line-number="179"></td>
-        <td id="LC179" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">end</span> <span class="pl-k">process</span> <span class="pl-en">DEC5B</span>;</td>
-      </tr>
-      <tr>
-        <td id="L180" class="blob-num js-line-number" data-line-number="180"></td>
-        <td id="LC180" class="blob-code blob-code-inner js-file-line"> </td>
-      </tr>
-      <tr>
-        <td id="L181" class="blob-num js-line-number" data-line-number="181"></td>
-        <td id="LC181" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">--</span></span></td>
-      </tr>
-      <tr>
-        <td id="L182" class="blob-num js-line-number" data-line-number="182"></td>
-        <td id="LC182" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">--</span> 3b Decoder - Figure 13</span></td>
-      </tr>
-      <tr>
-        <td id="L183" class="blob-num js-line-number" data-line-number="183"></td>
-        <td id="LC183" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">--</span></span></td>
-      </tr>
-      <tr>
-        <td id="L184" class="blob-num js-line-number" data-line-number="184"></td>
-        <td id="LC184" class="blob-code blob-code-inner js-file-line"> </td>
-      </tr>
-      <tr>
-        <td id="L185" class="blob-num js-line-number" data-line-number="185"></td>
-        <td id="LC185" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">--</span> Logic for complimenting F,G,H outputs</span></td>
-      </tr>
-      <tr>
-        <td id="L186" class="blob-num js-line-number" data-line-number="186"></td>
-        <td id="LC186" class="blob-code blob-code-inner js-file-line"> OR131 <span class="pl-k">&lt;=</span> (GI <span class="pl-k">and</span> HI <span class="pl-k">and</span> JI)</td>
-      </tr>
-      <tr>
-        <td id="L187" class="blob-num js-line-number" data-line-number="187"></td>
-        <td id="LC187" class="blob-code blob-code-inner js-file-line">         <span class="pl-k">or</span> (FI <span class="pl-k">and</span> HI <span class="pl-k">and</span> JI) </td>
-      </tr>
-      <tr>
-        <td id="L188" class="blob-num js-line-number" data-line-number="188"></td>
-        <td id="LC188" class="blob-code blob-code-inner js-file-line">         <span class="pl-k">or</span> (IOR134);</td>
-      </tr>
-      <tr>
-        <td id="L189" class="blob-num js-line-number" data-line-number="189"></td>
-        <td id="LC189" class="blob-code blob-code-inner js-file-line"> OR132 <span class="pl-k">&lt;=</span> (FI <span class="pl-k">and</span> GI <span class="pl-k">and</span> JI)</td>
-      </tr>
-      <tr>
-        <td id="L190" class="blob-num js-line-number" data-line-number="190"></td>
-        <td id="LC190" class="blob-code blob-code-inner js-file-line">         <span class="pl-k">or</span> (<span class="pl-k">not</span> FI <span class="pl-k">and</span> <span class="pl-k">not</span> GI <span class="pl-k">and</span> <span class="pl-k">not</span> HI)</td>
-      </tr>
-      <tr>
-        <td id="L191" class="blob-num js-line-number" data-line-number="191"></td>
-        <td id="LC191" class="blob-code blob-code-inner js-file-line">         <span class="pl-k">or</span> (<span class="pl-k">not</span> FI <span class="pl-k">and</span> <span class="pl-k">not</span> GI <span class="pl-k">and</span> HI <span class="pl-k">and</span> JI);</td>
-      </tr>
-      <tr>
-        <td id="L192" class="blob-num js-line-number" data-line-number="192"></td>
-        <td id="LC192" class="blob-code blob-code-inner js-file-line"> OR133 <span class="pl-k">&lt;=</span> (<span class="pl-k">not</span> FI <span class="pl-k">and</span> <span class="pl-k">not</span> HI <span class="pl-k">and</span> <span class="pl-k">not</span> JI)</td>
-      </tr>
-      <tr>
-        <td id="L193" class="blob-num js-line-number" data-line-number="193"></td>
-        <td id="LC193" class="blob-code blob-code-inner js-file-line">         <span class="pl-k">or</span> (IOR134)</td>
-      </tr>
-      <tr>
-        <td id="L194" class="blob-num js-line-number" data-line-number="194"></td>
-        <td id="LC194" class="blob-code blob-code-inner js-file-line">         <span class="pl-k">or</span> (<span class="pl-k">not</span> GI <span class="pl-k">and</span> <span class="pl-k">not</span> HI <span class="pl-k">and</span> <span class="pl-k">not</span> JI) ;</td>
-      </tr>
-      <tr>
-        <td id="L195" class="blob-num js-line-number" data-line-number="195"></td>
-        <td id="LC195" class="blob-code blob-code-inner js-file-line"> OR134 <span class="pl-k">&lt;=</span> (<span class="pl-k">not</span> GI <span class="pl-k">and</span> <span class="pl-k">not</span> HI <span class="pl-k">and</span> <span class="pl-k">not</span> JI)</td>
-      </tr>
-      <tr>
-        <td id="L196" class="blob-num js-line-number" data-line-number="196"></td>
-        <td id="LC196" class="blob-code blob-code-inner js-file-line">         <span class="pl-k">or</span> (FI <span class="pl-k">and</span> HI <span class="pl-k">and</span> JI)</td>
-      </tr>
-      <tr>
-        <td id="L197" class="blob-num js-line-number" data-line-number="197"></td>
-        <td id="LC197" class="blob-code blob-code-inner js-file-line">         <span class="pl-k">or</span> (IOR134) ;</td>
-      </tr>
-      <tr>
-        <td id="L198" class="blob-num js-line-number" data-line-number="198"></td>
-        <td id="LC198" class="blob-code blob-code-inner js-file-line"> IOR134 <span class="pl-k">&lt;=</span> (<span class="pl-k">not</span> (HI <span class="pl-k">and</span> JI))</td>
-      </tr>
-      <tr>
-        <td id="L199" class="blob-num js-line-number" data-line-number="199"></td>
-        <td id="LC199" class="blob-code blob-code-inner js-file-line">         <span class="pl-k">and</span> (<span class="pl-k">not</span> (<span class="pl-k">not</span> HI <span class="pl-k">and</span> <span class="pl-k">not</span> JI))</td>
-      </tr>
-      <tr>
-        <td id="L200" class="blob-num js-line-number" data-line-number="200"></td>
-        <td id="LC200" class="blob-code blob-code-inner js-file-line">         <span class="pl-k">and</span> (<span class="pl-k">not</span> CI <span class="pl-k">and</span> <span class="pl-k">not</span> DI <span class="pl-k">and</span> <span class="pl-k">not</span> EI <span class="pl-k">and</span> <span class="pl-k">not</span> II) ;</td>
-      </tr>
-      <tr>
-        <td id="L201" class="blob-num js-line-number" data-line-number="201"></td>
-        <td id="LC201" class="blob-code blob-code-inner js-file-line"> </td>
-      </tr>
-      <tr>
-        <td id="L202" class="blob-num js-line-number" data-line-number="202"></td>
-        <td id="LC202" class="blob-code blob-code-inner js-file-line"> XF <span class="pl-k">&lt;=</span> OR131</td>
-      </tr>
-      <tr>
-        <td id="L203" class="blob-num js-line-number" data-line-number="203"></td>
-        <td id="LC203" class="blob-code blob-code-inner js-file-line">         <span class="pl-k">or</span> OR132 ;</td>
-      </tr>
-      <tr>
-        <td id="L204" class="blob-num js-line-number" data-line-number="204"></td>
-        <td id="LC204" class="blob-code blob-code-inner js-file-line"> XG <span class="pl-k">&lt;=</span> OR132 </td>
-      </tr>
-      <tr>
-        <td id="L205" class="blob-num js-line-number" data-line-number="205"></td>
-        <td id="LC205" class="blob-code blob-code-inner js-file-line">         <span class="pl-k">or</span> OR133 ;</td>
-      </tr>
-      <tr>
-        <td id="L206" class="blob-num js-line-number" data-line-number="206"></td>
-        <td id="LC206" class="blob-code blob-code-inner js-file-line"> XH <span class="pl-k">&lt;=</span> OR132</td>
-      </tr>
-      <tr>
-        <td id="L207" class="blob-num js-line-number" data-line-number="207"></td>
-        <td id="LC207" class="blob-code blob-code-inner js-file-line">         <span class="pl-k">or</span> OR134 ;</td>
-      </tr>
-      <tr>
-        <td id="L208" class="blob-num js-line-number" data-line-number="208"></td>
-        <td id="LC208" class="blob-code blob-code-inner js-file-line"> </td>
-      </tr>
-      <tr>
-        <td id="L209" class="blob-num js-line-number" data-line-number="209"></td>
-        <td id="LC209" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">--</span> PROCESS: DEC3B; Generate and latch MS 3 decoded bits</span></td>
-      </tr>
-      <tr>
-        <td id="L210" class="blob-num js-line-number" data-line-number="210"></td>
-        <td id="LC210" class="blob-code blob-code-inner js-file-line"> <span class="pl-en">DEC3B</span>: <span class="pl-k">process</span> (RESET, RBYTECLK, XF, XG, XH, FI, GI, HI)</td>
-      </tr>
-      <tr>
-        <td id="L211" class="blob-num js-line-number" data-line-number="211"></td>
-        <td id="LC211" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">begin</span></td>
-      </tr>
-      <tr>
-        <td id="L212" class="blob-num js-line-number" data-line-number="212"></td>
-        <td id="LC212" class="blob-code blob-code-inner js-file-line">         <span class="pl-k">if</span> RESET <span class="pl-k">=</span> <span class="pl-c1">&#39;1&#39;</span> <span class="pl-k">then</span></td>
-      </tr>
-      <tr>
-        <td id="L213" class="blob-num js-line-number" data-line-number="213"></td>
-        <td id="LC213" class="blob-code blob-code-inner js-file-line">                 FO <span class="pl-k">&lt;=</span> <span class="pl-c1">&#39;0&#39;</span> ;</td>
-      </tr>
-      <tr>
-        <td id="L214" class="blob-num js-line-number" data-line-number="214"></td>
-        <td id="LC214" class="blob-code blob-code-inner js-file-line">                 GO <span class="pl-k">&lt;=</span> <span class="pl-c1">&#39;0&#39;</span> ;</td>
-      </tr>
-      <tr>
-        <td id="L215" class="blob-num js-line-number" data-line-number="215"></td>
-        <td id="LC215" class="blob-code blob-code-inner js-file-line">                 HO <span class="pl-k">&lt;=</span> <span class="pl-c1">&#39;0&#39;</span> ;</td>
-      </tr>
-      <tr>
-        <td id="L216" class="blob-num js-line-number" data-line-number="216"></td>
-        <td id="LC216" class="blob-code blob-code-inner js-file-line">         <span class="pl-k">elsif</span> RBYTECLK<span class="pl-k">&#39;event</span> <span class="pl-k">and</span> RBYTECLK <span class="pl-k">=</span><span class="pl-c1">&#39;0&#39;</span> <span class="pl-k">then</span></td>
-      </tr>
-      <tr>
-        <td id="L217" class="blob-num js-line-number" data-line-number="217"></td>
-        <td id="LC217" class="blob-code blob-code-inner js-file-line">                 FO <span class="pl-k">&lt;=</span> XF <span class="pl-k">XOR</span> FI ;        <span class="pl-c"><span class="pl-c">--</span> Least significant bit 7</span></td>
-      </tr>
-      <tr>
-        <td id="L218" class="blob-num js-line-number" data-line-number="218"></td>
-        <td id="LC218" class="blob-code blob-code-inner js-file-line">                 GO <span class="pl-k">&lt;=</span> XG <span class="pl-k">XOR</span> GI ;</td>
-      </tr>
-      <tr>
-        <td id="L219" class="blob-num js-line-number" data-line-number="219"></td>
-        <td id="LC219" class="blob-code blob-code-inner js-file-line">                 HO <span class="pl-k">&lt;=</span> XH <span class="pl-k">XOR</span> HI ;        <span class="pl-c"><span class="pl-c">--</span> Most significant bit 10</span></td>
-      </tr>
-      <tr>
-        <td id="L220" class="blob-num js-line-number" data-line-number="220"></td>
-        <td id="LC220" class="blob-code blob-code-inner js-file-line">         <span class="pl-k">end</span> <span class="pl-k">if</span>;</td>
-      </tr>
-      <tr>
-        <td id="L221" class="blob-num js-line-number" data-line-number="221"></td>
-        <td id="LC221" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">end</span> <span class="pl-k">process</span> <span class="pl-en">DEC3B</span> ;</td>
-      </tr>
-      <tr>
-        <td id="L222" class="blob-num js-line-number" data-line-number="222"></td>
-        <td id="LC222" class="blob-code blob-code-inner js-file-line">                         </td>
-      </tr>
-      <tr>
-        <td id="L223" class="blob-num js-line-number" data-line-number="223"></td>
-        <td id="LC223" class="blob-code blob-code-inner js-file-line"><span class="pl-k">end</span> <span class="pl-en">behavioral</span>;</td>
-      </tr>
-      <tr>
-        <td id="L224" class="blob-num js-line-number" data-line-number="224"></td>
-        <td id="LC224" class="blob-code blob-code-inner js-file-line">
-</td>
-      </tr>
-</table>
-
-  <div class="BlobToolbar position-absolute js-file-line-actions dropdown js-menu-container js-select-menu d-none" aria-hidden="true">
-    <button class="btn-octicon ml-0 px-2 p-0 bg-white border border-gray-dark rounded-1 js-menu-target" type="button" aria-expanded="false" aria-haspopup="true" aria-label="Inline file action toolbar" aria-controls="inline-file-actions">
-      <svg class="octicon octicon-kebab-horizontal" viewBox="0 0 13 16" version="1.1" width="13" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm5 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zM13 7.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z"/></svg>
-    </button>
-    <div class="dropdown-menu-content js-menu-content" id="inline-file-actions">
-      <ul class="BlobToolbar-dropdown dropdown-menu dropdown-menu-se mt-2">
-        <li><clipboard-copy class="dropdown-item" id="js-copy-lines" style="cursor:pointer;" data-original-text="Copy lines">Copy lines</clipboard-copy></li>
-        <li><clipboard-copy class="dropdown-item" id="js-copy-permalink" style="cursor:pointer;" data-original-text="Copy permalink">Copy permalink</clipboard-copy></li>
-        <li><a class="dropdown-item js-update-url-with-hash" id="js-view-git-blame" href="/freecores/8b10b_encdec/blame/e55026d593f902add7c543cb1f7fd35ab95dabe2/8b10_dec.vhd">View git blame</a></li>
-          <li><a class="dropdown-item" id="js-new-issue" href="/freecores/8b10b_encdec/issues/new">Open new issue</a></li>
-      </ul>
-    </div>
-  </div>
-
-  </div>
-
-  </div>
-
-  <button type="button" data-facebox="#jump-to-line" data-facebox-class="linejump" data-hotkey="l" class="d-none">Jump to Line</button>
-  <div id="jump-to-line" style="display:none">
-    <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="js-jump-to-line-form" action="" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="&#x2713;" />
-      <input class="form-control linejump-input js-jump-to-line-field" type="text" placeholder="Jump to line&hellip;" aria-label="Jump to line" autofocus>
-      <button type="submit" class="btn">Go</button>
-</form>  </div>
-
-
-  </div>
-  <div class="modal-backdrop js-touch-events"></div>
-</div>
-
-    </div>
-  </div>
-
-  </div>
-
-      
-<div class="footer container-lg px-3" role="contentinfo">
-  <div class="position-relative d-flex flex-justify-between pt-6 pb-2 mt-6 f6 text-gray border-top border-gray-light ">
-    <ul class="list-style-none d-flex flex-wrap ">
-      <li class="mr-3">&copy; 2018 <span title="0.23867s from unicorn-676fcbfbbc-ttfnn">GitHub</span>, Inc.</li>
-        <li class="mr-3"><a data-ga-click="Footer, go to terms, text:terms" href="https://github.com/site/terms">Terms</a></li>
-        <li class="mr-3"><a data-ga-click="Footer, go to privacy, text:privacy" href="https://github.com/site/privacy">Privacy</a></li>
-        <li class="mr-3"><a href="https://help.github.com/articles/github-security/" data-ga-click="Footer, go to security, text:security">Security</a></li>
-        <li class="mr-3"><a href="https://status.github.com/" data-ga-click="Footer, go to status, text:status">Status</a></li>
-        <li><a data-ga-click="Footer, go to help, text:help" href="https://help.github.com">Help</a></li>
-    </ul>
-
-    <a aria-label="Homepage" title="GitHub" class="footer-octicon" href="https://github.com">
-      <svg height="24" class="octicon octicon-mark-github" viewBox="0 0 16 16" version="1.1" width="24" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"/></svg>
-</a>
-   <ul class="list-style-none d-flex flex-wrap ">
-        <li class="mr-3"><a data-ga-click="Footer, go to contact, text:contact" href="https://github.com/contact">Contact GitHub</a></li>
-      <li class="mr-3"><a href="https://developer.github.com" data-ga-click="Footer, go to api, text:api">API</a></li>
-      <li class="mr-3"><a href="https://training.github.com" data-ga-click="Footer, go to training, text:training">Training</a></li>
-      <li class="mr-3"><a href="https://shop.github.com" data-ga-click="Footer, go to shop, text:shop">Shop</a></li>
-        <li class="mr-3"><a href="https://blog.github.com" data-ga-click="Footer, go to blog, text:blog">Blog</a></li>
-        <li><a data-ga-click="Footer, go to about, text:about" href="https://github.com/about">About</a></li>
-
-    </ul>
-  </div>
-  <div class="d-flex flex-justify-center pb-6">
-    <span class="f6 text-gray-light"></span>
-  </div>
-</div>
-
-
-
-  <div id="ajax-error-message" class="ajax-error-message flash flash-error">
-    <svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"/></svg>
-    <button type="button" class="flash-close js-ajax-error-dismiss" aria-label="Dismiss error">
-      <svg class="octicon octicon-x" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z"/></svg>
-    </button>
-    You can’t perform that action at this time.
-  </div>
-
-
-    <script crossorigin="anonymous" integrity="sha512-wIuAKDhvxe9wCaNR1tzCk3rtl+wXEWC28rmRpzmx0h98VEeWC6Y3xCWV1xAW6NP6eQQX+x8ZGhW6Sdut+mLRuw==" type="application/javascript" src="https://assets-cdn.github.com/assets/compat-a48960bafc17c30572990bbab3664e9c.js"></script>
-    <script crossorigin="anonymous" integrity="sha512-HtXMaArrY9G3PeC0Ak9gvytVs8jgGWgF72UwiHRvPUaF/ru8bw6gGq2qxSli8smS4OcZUo+6sXKV9ilIsIW/cw==" type="application/javascript" src="https://assets-cdn.github.com/assets/frameworks-c3c14c4cae6d3342206a30a4f9851d53.js"></script>
-    
-    <script crossorigin="anonymous" async="async" integrity="sha512-OnJOn0ppiWbeRmWCcGvHya4zFgesMv0G8BmDBerjeAJ27gslI4A9rIAqiIcfPH03Szpvd4fvxwQ1qWi5wtKOEQ==" type="application/javascript" src="https://assets-cdn.github.com/assets/github-65fedd51101b3e6be3cd37d134810f88.js"></script>
-    
-    
-    
-  <div class="js-stale-session-flash stale-session-flash flash flash-warn flash-banner d-none">
-    <svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"/></svg>
-    <span class="signed-in-tab-flash">You signed in with another tab or window. <a href="">Reload</a> to refresh your session.</span>
-    <span class="signed-out-tab-flash">You signed out in another tab or window. <a href="">Reload</a> to refresh your session.</span>
-  </div>
-  <div class="facebox" id="facebox" style="display:none;">
-  <div class="facebox-popup">
-    <div class="facebox-content" role="dialog" aria-labelledby="facebox-header" aria-describedby="facebox-description">
-    </div>
-    <button type="button" class="facebox-close js-facebox-close" aria-label="Close modal">
-      <svg class="octicon octicon-x" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z"/></svg>
-    </button>
-  </div>
-</div>
-
-  <div class="Popover js-hovercard-content position-absolute" style="display: none; outline: none;" tabindex="0">
-  <div class="Popover-message Popover-message--bottom-left Popover-message--large Box box-shadow-large" style="width:360px;">
-  </div>
-</div>
-
-<div id="hovercard-aria-description" class="sr-only">
-  Press h to open a hovercard with more details.
-</div>
-
-
-  </body>
-</html>
+       --
+       -- 6b Input Function (Reference: Figure 10)
+       --
+       
+       -- One 1 and three 0's
+       P13 <=  (ANEB and (not CI and not DI))
+                       or (CNED and (not AI and not BI)) ;
+       -- Three 1's and one 0          
+       P31 <=  (ANEB and CI and DI)
+                       or (CNED and AI and BI) ;
+       -- Two 1's and two 0's
+       P22 <=  (AI and BI and (not CI and not DI))
+                       or (CI and DI and (not AI and not BI))
+                       or (ANEB and CNED) ;
+                       
+       -- Intermediate term for "AI is Not Equal to BI"
+       ANEB <=  AI xor BI ;
+       
+       -- Intermediate term for "CI is Not Equal to DI"
+       CNED <=  CI xor DI ;
+       
+       -- Intermediate term for "E is Equal to I"
+       EEI <= EI xnor II ;
+       
+       --
+       -- K Decoder - Figure 11
+       --
+       
+       -- Intermediate terms
+       IKA     <= (CI and DI and EI and II)
+               or (not CI and not DI and not EI and not II) ;
+       IKB <= P13 and (not EI and II and GI and HI and JI) ;
+       IKC <= P31 and (EI and not II and not GI and not HI and not JI) ;
+       
+       -- PROCESS: KFN; Determine K output
+       KFN: process (RESET, RBYTECLK, IKA, IKB, IKC)
+       begin
+               if RESET = '1' then
+                       KO <= '0';
+               elsif RBYTECLK'event and RBYTECLK = '0' then
+                       KO <= IKA or IKB or IKC;
+               end if;
+       end process KFN;
+       
+       --
+       -- 5b Decoder Figure 12
+       --
+       
+       -- Logic to determine complimenting A,B,C,D,E,I inputs
+       OR121 <= (P22 and (not AI and not CI and EEI))
+               or (P13 and not EI) ;
+       OR122 <= (AI and BI and EI and II)
+               or (not CI and not DI and not EI and not II)
+               or (P31 and II) ;
+       OR123 <= (P31 and II)
+               or (P22 and BI and CI and EEI)
+               or (P13 and DI and EI and II) ;
+       OR124 <= (P22 and AI and CI and EEI)
+               or (P13 and not EI) ;
+       OR125 <= (P13 and not EI)
+               or (not CI and not DI and not EI and not II)
+               or (not AI and not BI and not EI and not II) ;
+       OR126 <= (P22 and not AI and not CI and EEI)
+               or (P13 and not II) ;
+       OR127 <= (P13 and DI and EI and II)
+               or (P22 and not BI and not CI and EEI) ;
+       
+       XA <= OR127
+               or OR121
+               or OR122 ;
+       XB <= OR122
+               or OR123
+               or OR124 ;
+       XC <= OR121
+               or OR123
+               or OR125 ;
+       XD <= OR122
+               or OR124
+               or OR127 ;
+       XE <= OR125
+               or OR126
+               or OR127 ; 
+       
+       -- PROCESS: DEC5B; Generate and latch LS 5 decoded bits
+       DEC5B: process (RESET, RBYTECLK, XA, XB, XC, XD, XE, AI, BI, CI, DI, EI)
+       begin
+               if RESET = '1' then
+                       AO <= '0' ;
+                       BO <= '0' ;
+                       CO <= '0' ;
+                       DO <= '0' ;
+                       EO <= '0' ;
+               elsif RBYTECLK'event and RBYTECLK = '0' then
+                       AO <= XA XOR AI ;       -- Least significant bit 0
+                       BO <= XB XOR BI ;
+                       CO <= XC XOR CI ;
+                       DO <= XD XOR DI ;
+                       EO <= XE XOR EI ;       -- Most significant bit 6
+               end if;
+       end process DEC5B;
+       
+       --
+       -- 3b Decoder - Figure 13
+       --
+       
+       -- Logic for complimenting F,G,H outputs
+       OR131 <= (GI and HI and JI)
+               or (FI and HI and JI) 
+               or (IOR134);
+       OR132 <= (FI and GI and JI)
+               or (not FI and not GI and not HI)
+               or (not FI and not GI and HI and JI);
+       OR133 <= (not FI and not HI and not JI)
+               or (IOR134)
+               or (not GI and not HI and not JI) ;
+       OR134 <= (not GI and not HI and not JI)
+               or (FI and HI and JI)
+               or (IOR134) ;
+       IOR134 <= (not (HI and JI))
+               and (not (not HI and not JI))
+               and (not CI and not DI and not EI and not II) ;
+       
+       XF <= OR131
+               or OR132 ;
+       XG <= OR132 
+               or OR133 ;
+       XH <= OR132
+               or OR134 ;
+       
+       -- PROCESS: DEC3B; Generate and latch MS 3 decoded bits
+       DEC3B: process (RESET, RBYTECLK, XF, XG, XH, FI, GI, HI)
+       begin
+               if RESET = '1' then
+                       FO <= '0' ;
+                       GO <= '0' ;
+                       HO <= '0' ;
+               elsif RBYTECLK'event and RBYTECLK ='0' then
+                       FO <= XF XOR FI ;       -- Least significant bit 7
+                       GO <= XG XOR GI ;
+                       HO <= XH XOR HI ;       -- Most significant bit 10
+               end if;
+       end process DEC3B ;
+                               
+end behavioral;
 
diff --git a/mupix/Mupix8/tb/MupixUnpackerTest.vhd b/mupix/Mupix8/tb/MupixUnpackerTest.vhd
new file mode 100644 (file)
index 0000000..fabb6e9
--- /dev/null
@@ -0,0 +1,116 @@
+library IEEE;
+use IEEE.std_logic_1164.all;
+use IEEE.numeric_std.all;
+
+entity MupixUnpackerTest is
+end entity MupixUnpackerTest;
+
+architecture sim of MupixUnpackerTest is
+
+  component MupixUnpacker is
+    generic (
+      g_hitsize     : integer;
+      g_countersize : integer);
+    port (
+      clk               : in  std_logic;
+      reset             : in  std_logic;
+      reset_counter     : in  std_logic;
+      data_in           : in  std_logic_vector(7 downto 0);
+      komma             : in  std_logic;
+      valid             : in  std_logic;
+      hit_out           : out std_logic_vector(g_hitsize - 1 downto 0);
+      hit_enable        : out std_logic;
+      link_flag         : out std_logic;
+      errorcounter_gray : out std_logic_vector(31 downto 0);
+      errorcounter      : out std_logic_vector(31 downto 0));
+  end component MupixUnpacker;
+
+  component MupixStateMachine is
+    port (
+      clk      : in  std_logic;
+      reset    : in  std_logic;
+      words    : in  std_logic_vector(4 downto 0);
+      slowdown : in  std_logic_vector(15 downto 0);
+      wr_en    : out std_logic;
+      data_out : out std_logic_vector(9 downto 0));
+  end component MupixStateMachine;
+
+  component dec_8b10b is
+    port (
+      RESET    : in  std_logic;
+      RBYTECLK : in  std_logic;
+      input    : in  std_logic_vector(9 downto 0);
+      KO       : out std_logic;
+      output   : out std_logic_vector(7 downto 0));
+  end component dec_8b10b;
+
+  constant clock_period : time  := 10 ns;
+  
+  -- mupix unpacker
+  signal clk               : std_logic;
+  signal reset             : std_logic := '1';
+  signal reset_counter     : std_logic := '0';
+  signal data_in           : std_logic_vector(7 downto 0);
+  signal komma             : std_logic;
+  signal valid             : std_logic := '0';
+  signal hit_out           : std_logic_vector(39 downto 0);
+  signal hit_enable        : std_logic;
+  signal link_flag         : std_logic;
+  signal errorcounter_gray : std_logic_vector(31 downto 0);
+  signal errorcounter      : std_logic_vector(31 downto 0);
+
+  -- mupix state machine
+  signal words    : std_logic_vector(4 downto 0)  := "00100";
+  signal slowdown : std_logic_vector(15 downto 0) := x"000A";
+  signal wr_en : std_logic;
+  signal data_out : std_logic_vector(9 downto 0);
+
+
+begin  -- architecture sim
+
+  MupixStateMachine_1: entity work.MupixStateMachine
+    port map (
+      clk      => clk,
+      reset    => reset,
+      words    => words,
+      slowdown => slowdown,
+      wr_en    => wr_en,
+      data_out => data_out);
+  
+  dec_8b10b_1: entity work.dec_8b10b
+    port map (
+      RESET    => reset,
+      RBYTECLK => clk,
+      input    => data_out,
+      KO       => komma,
+      output   => data_in);
+  
+  MupixUnpacker_1 : entity work.MupixUnpacker
+    generic map (
+      g_hitsize     => 40,
+      g_countersize => 32)
+    port map (
+      clk               => clk,
+      reset             => reset,
+      reset_counter     => reset_counter,
+      data_in           => data_in,
+      komma             => komma,
+      valid             => valid,
+      hit_out           => hit_out,
+      hit_enable        => hit_enable,
+      link_flag         => link_flag,
+      errorcounter_gray => errorcounter_gray,
+      errorcounter      => errorcounter);
+
+  clk_gen: process is
+  begin  -- process clk_gen
+    clk <= '1';
+    wait for clock_period/2;
+    clk <= '0';
+    wait for clock_period/2;
+  end process clk_gen;
+
+  reset <= '0' after 200 ns;
+  valid <= '1' after 240 ns;
+  
+end architecture sim;