From: Xavier L. <Sup...@us...> - 2010-01-15 23:40:51
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "UNNAMED PROJECT". The branch, master has been updated via 42a764ec6bb089a794a4a4cd2a88e8af5ca67fb6 (commit) from 09d628ca3f2eea7918516539737a9f3e0fae073c (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 42a764ec6bb089a794a4a4cd2a88e8af5ca67fb6 Author: Xavier Lagorce <Xav...@cr...> Date: Sat Jan 16 00:40:24 2010 +0100 Ajout d'un decodeur BCD vers 7 segments (+ point décimal) ----------------------------------------------------------------------- Changes: diff --git a/fpga/components/decoder_7seg.vhd b/fpga/components/decoder_7seg.vhd new file mode 100644 index 0000000..dcf698b --- /dev/null +++ b/fpga/components/decoder_7seg.vhd @@ -0,0 +1,162 @@ +---------------------------------------------------------------------------------- +-- Create Date: 15/01/2010 +-- Module Name: decoder_7seg +-- Authors : X. Lagorce +-- Description: Decodes a BCD value into its representation on a 7 segments +-- diplay +-- +-- Dependencies: / +-- +-- Revision: +-- Revision 0.1 : First implementation +-- Additional Comments: +-- +---------------------------------------------------------------------------------- + +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +use IEEE.STD_LOGIC_ARITH.ALL; +use IEEE.STD_LOGIC_UNSIGNED.ALL; + +entity decoder_7seg is + port(val : in std_logic_vector(3 downto 0); + pti : in std_logic; + a : out std_logic; + b : out std_logic; + c : out std_logic; + d : out std_logic; + e : out std_logic; + f : out std_logic; + g : out std_logic; + pt : out std_logic + ); +end decoder_7seg; + +architecture hexa_dec of decoder_7seg is +begin + process(val, pti) + begin + case val is + when "0000" => a <= '1'; -- 0 + b <= '1'; + c <= '1'; + d <= '1'; + e <= '1'; + f <= '1'; + g <= '0'; + when "0001" => a <= '0'; -- 1 + b <= '1'; + c <= '1'; + d <= '0'; + e <= '0'; + f <= '0'; + g <= '0'; + when "0010" => a <= '1'; -- 2 + b <= '1'; + c <= '0'; + d <= '1'; + e <= '1'; + f <= '0'; + g <= '1'; + when "0011" => a <= '1'; -- 3 + b <= '1'; + c <= '1'; + d <= '1'; + e <= '0'; + f <= '0'; + g <= '1'; + when "0100" => a <= '0'; -- 4 + b <= '1'; + c <= '1'; + d <= '0'; + e <= '0'; + f <= '1'; + g <= '1'; + when "0101" => a <= '1'; -- 5 + b <= '0'; + c <= '1'; + d <= '1'; + e <= '0'; + f <= '1'; + g <= '1'; + when "0110" => a <= '1'; -- 6 + b <= '0'; + c <= '1'; + d <= '1'; + e <= '1'; + f <= '1'; + g <= '1'; + when "0111" => a <= '1'; -- 7 + b <= '1'; + c <= '1'; + d <= '0'; + e <= '0'; + f <= '0'; + g <= '0'; + when "1000" => a <= '1'; -- 8 + b <= '1'; + c <= '1'; + d <= '1'; + e <= '1'; + f <= '1'; + g <= '1'; + when "1001" => a <= '1'; -- 9 + b <= '1'; + c <= '1'; + d <= '1'; + e <= '0'; + f <= '1'; + g <= '1'; + when "1010" => a <= '1'; -- A + b <= '1'; + c <= '1'; + d <= '0'; + e <= '1'; + f <= '1'; + g <= '1'; + when "1011" => a <= '0'; -- B + b <= '0'; + c <= '1'; + d <= '1'; + e <= '1'; + f <= '1'; + g <= '1'; + when "1100" => a <= '1'; -- C + b <= '0'; + c <= '0'; + d <= '1'; + e <= '1'; + f <= '1'; + g <= '0'; + when "1101" => a <= '0'; -- D + b <= '1'; + c <= '1'; + d <= '1'; + e <= '1'; + f <= '0'; + g <= '1'; + when "1110" => a <= '1'; -- E + b <= '0'; + c <= '0'; + d <= '1'; + e <= '1'; + f <= '1'; + g <= '1'; + when "1111" => a <= '1'; -- F + b <= '0'; + c <= '0'; + d <= '0'; + e <= '1'; + f <= '1'; + g <= '1'; + when others => a <= '0'; -- shouldn't happen + b <= '0'; + c <= '0'; + d <= '0'; + e <= '0'; + f <= '0'; + g <= '0'; + end case; + end process; + pt <= pti; +end hexa_dec; hooks/post-receive -- UNNAMED PROJECT |