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

📄 main_package.vhd

📁 描述:LED示范、按钮及开关、视频输出、键入、含Xilinx PicoBlaze微处理器的存储器模块
💻 VHD
字号:
--	Purpose: This package defines supplemental types, subtypes, 
--		 constants, and functions 


library IEEE;
use IEEE.STD_LOGIC_1164.all;

package main_package is  
	--implements essentially a big OR across an std_logic_vector
	function is_one_on(elements: std_logic_vector) return std_logic;	
	--converts a hex number to the led configuration needed for the 
	--seven segment display
	function hex_to_led(hex: std_logic_vector(3 downto 0)) return std_logic_vector;	
	--converts a number on the seven segment display back to a hex (4 bit)
	--digit if possible, or returns 0000
	function led_to_hex(led: std_logic_vector(7 downto 0)) return std_logic_vector;	
end main_package;


package body main_package is 
	function is_one_on(elements: std_logic_vector) return std_logic is
	variable res: std_logic;
	variable i: natural;
	begin
		res := '0';
		for i in elements'low to elements'high loop
			res := res or elements(i);
		end loop;
		return res;
	end;

	function hex_to_led(hex: std_logic_vector(3 downto 0)) return std_logic_vector is
	begin   
		case hex is
			when "0001" => return "10011111"; --1
			when "0010" => return "00100101"; --2
			when "0011" => return "00001101"; --3
			when "0100" => return "10011001"; --4
			when "0101" => return "01001001"; --5
			when "0110" => return "01000001"; --6
			when "0111" =>	return "00011111"; --7
			when "1000" =>	return "00000001"; --8	
			when "1001" =>	return "00001001"; --9
			when "1010" => return "00010001"; --A
			when "1011" =>	return "11000001"; --b
			when "1100" =>	return "01100011"; --C
			when "1101" =>	return "10000101"; --d
			when "1110" =>	return "01100001"; --E
			when "1111" =>	return "01110001"; --F
			when others =>
				return "00000011"; --rest - 0
		end case;
	end;

	function led_to_hex(led: std_logic_vector(7 downto 0)) return std_logic_vector is
	begin
		case led(7 downto 1) is
			when "1001111" => return "0001";
			when "0010010" => return "0010";
			when "0000110" => return "0011";
			when "1001100" => return "0100";
			when "0100100" => return "0101";
			when "0100000" => return "0110";
			when "0001111" =>	return "0111";		
			when "0000000" =>	return "1000";		
			when "0000100" =>	return "1001";
			when "0001000" => return "1010";
			when "1100000" =>	return "1011";
			when "0110001" =>	return "1100";
			when "1000010" =>	return "1101";
			when "0110000" =>	return "1110";
			when "0111000" =>	return "1111";
			when others =>
				return "0000";
		end case;
	end;
end main_package;

⌨️ 快捷键说明

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