⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 count_to_128.vhd

📁 FPGA之间的LVDS传输
💻 VHD
字号:
--/////////////////////////////////////////////////////////////////////////////
--
--    File Name:  count_to_128.vhd
--      Version:  1.0
--         Date:  05/19/06
--        Model:  Channel Alignment Module
--
--      Company:  Xilinx, Inc.
--  Contributor:  APD Applications Group
--
--   Disclaimer:  XILINX IS PROVIDING THIS DESIGN, CODE, OR
--                INFORMATION "AS IS" SOLELY FOR USE IN DEVELOPING
--                PROGRAMS AND SOLUTIONS FOR XILINX DEVICES.  BY
--                PROVIDING THIS DESIGN, CODE, OR INFORMATION AS
--                ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE,
--                APPLICATION OR STANDARD, XILINX IS MAKING NO
--                REPRESENTATION THAT THIS IMPLEMENTATION IS FREE
--                FROM ANY CLAIMS OF INFRINGEMENT, AND YOU ARE
--                RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY
--                REQUIRE FOR YOUR IMPLEMENTATION.  XILINX
--                EXPRESSLY DISCLAIMS ANY WARRANTY WHATSOEVER WITH
--                RESPECT TO THE ADEQUACY OF THE IMPLEMENTATION,
--                INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR
--                REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE
--                FROM CLAIMS OF INFRINGEMENT, IMPLIED WARRANTIES
--                OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
--                PURPOSE.
--
--                (c) Copyright 2006 Xilinx, Inc.
--                All rights reserved.
--
--/////////////////////////////////////////////////////////////////////////////
-- Library declarations
--
-- Standard IEEE libraries
--
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY count_to_128 IS
   PORT (
      --This module counts up/down between 0 to 128

      clk                     : IN std_logic;   
      rst                     : IN std_logic;   
      count                   : IN std_logic;   
      ud                      : IN std_logic;   
      counter_value           : OUT std_logic_vector(6 DOWNTO 0));   
END count_to_128;

ARCHITECTURE translated OF count_to_128 IS


   SIGNAL counter_value_preserver  :  std_logic_vector(6 DOWNTO 0);   --synthesis syn_noprune = 1
   SIGNAL counter_value_int            :  std_logic_vector(6 DOWNTO 0);   

BEGIN


   PROCESS (clk, rst)
      VARIABLE temp   : std_logic_vector(1 DOWNTO 0);
   BEGIN
      IF (rst = '1') THEN
         counter_value_int  <= "0000000";    
      ELSIF (clk'EVENT AND clk = '1') THEN
         temp := count & ud;
         CASE temp IS
            WHEN "00" => counter_value_int  <= "0000000";    
            WHEN "01" => counter_value_int  <= counter_value_preserver;    
            WHEN "10" => counter_value_int  <= counter_value_preserver - "0000001";    
            WHEN "11" => counter_value_int  <= counter_value_preserver + "0000001";    
            WHEN OTHERS  => counter_value_int  <= "0000000";                
         END CASE;
      END IF;
   END PROCESS;
   counter_value_preserver <= counter_value_int ;

   counter_value <= counter_value_int ;

END translated;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -