Convolutional encoder VHDL source code

This page of VHDL source code covers Convolutional encoder vhdl code and provides link to Convolutional encoder basics. This convolutional encoder developed is for the following specifications.

Specifications

FEC Rate: 1/2
Constraint length: 7
Generator polynomials: G1=171(octal) for output1(X), G2 = 133(octal) for output2(Y)

VHDL Code

library IEEE;   
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity conv_enc is
Port ( din : in std_logic; ---Input
clk : in std_logic; ---Clock
reset : in std_logic; ---Reset
valid_in : in std_logic; ---Valid Input
z : out std_logic_vector(1 downto 0); -- Ouput data
valid_out : out std_logic -- Output valid signal
);

end conv_enc;

architecture Behavioral of conv_enc is

signal a : std_logic;
signal b : std_logic;
signal c : std_logic;
signal d : std_logic;
signal e : std_logic;
signal f : std_logic;

begin

process( clk, reset)
begin
if reset = '1' then
a <= '0';
b <= '0';
c <= '0';
d <= '0';
e <= '0';
f <= '0';
z <= "00";
valid_out <= '0';
elsif (clk = '1' and clk'event )then
valid_out <= valid_in;
if valid_in = '1' then
a <= din;
b <= a;
c <= b; --Delayed the input by 6 clocks
d <= c;
e <= d;
f <= e;
end if;
z(1) <= din xor a xor b xor c xor f; --- 171(octal)
z(0) <= din xor b xor c xor e xor f; --- 133(octal)
end if;
end process;

end Behavioral;

USEFUL LINKS to VHDL CODES

Refer following as well as links mentioned on left side panel for useful VHDL codes.
D Flipflop
T Flipflop
Read Write RAM
4X1 MUX
4 bit binary counter
Radix4 Butterfly
16QAM Modulation
2bit Parallel to serial

RF and Wireless tutorials

WLAN  802.11ac  802.11ad  wimax  Zigbee  z-wave  GSM  LTE  UMTS  Bluetooth  UWB  IoT  satellite  Antenna  RADAR