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

📄 functions.vhd

📁 cpld
💻 VHD
字号:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;


USE WORK.TYPES.ALL;


-------------------
--函数声明
-------------------
PACKAGE FUNCTIONS IS
  --算术左移
 FUNCTION SHL( V0 : KEY_DATA ; fill : STD_LOGIC ) RETURN KEY_DATA;

 FUNCTION PST(Par: BITS_8; Index:INTEGER ) RETURN STD_LOGIC;   
 --合并显示命令
 FUNCTION Create_LCD_CMD(LCD_RS : STD_LOGIC; LCD_RW :STD_LOGIC; Data: KEY_DATA) RETURN LCD_CMD;

END ;


---------------------------------------------
      -----函数实体描述--------
---------------------------------------------  
 PACKAGE BODY FUNCTIONS IS
--------------------------------------------------------------------------
 FUNCTION  PST(Par: BITS_8; Index:INTEGER ) RETURN STD_LOGIC IS
    VARIABLE  v1 :BITS_8;
    VARIABLE  return_val: STD_LOGIC;
     

  BEGIN
          v1:=Par;  

             CASE  Index IS
               WHEN 0 => return_val:=v1(7);--信号赋值滞后一个时钟周期
  			   WHEN 1 => return_val:=v1(6);
   			   WHEN 2 => return_val:=v1(5);
			   WHEN 3 => return_val:=v1(4);
			   WHEN 4 => return_val:=v1(3);
			   WHEN 5 => return_val:=v1(2);
			   WHEN 6 => return_val:=v1(1);
			   WHEN 7 => return_val:=v1(0);
               WHEN OTHERS => return_val:='X';
             END CASE;
        RETURN return_val;
  END PST;
   
------------------------------------------------------------------------
 FUNCTION  SHL( V0 : KEY_DATA ; fill :STD_LOGIC ) RETURN KEY_DATA IS
 --    左移 
     VARIABLE v1: KEY_DATA;
     VARIABLE shift_val: KEY_DATA;
     VARIABLE I: integer;
      BEGIN
            v1 := V0;
         FOR I IN v1'high DOWNTO  (v1'low + 1) LOOP
            shift_val(I) := v1(I - 1);
         END LOOP ;
        
          shift_val(v1'low) := fill;
      
      RETURN shift_val;
   
   END  SHL;
 -----------------------------------------------------------------------------------------------------
  FUNCTION Create_LCD_CMD(LCD_RS : STD_LOGIC; LCD_RW :STD_LOGIC; Data: KEY_DATA) RETURN LCD_CMD IS
     VARIABLE command :LCD_CMD;
     BEGIN

           command:=LCD_RS & LCD_RW & Data;

       RETURN  command;

  END Create_LCD_CMD;   

----------------------------         
END ;


⌨️ 快捷键说明

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