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

📄 bin2bcd.vhd

📁 FPGA开发光盘各章节实例的设计工程与源码
💻 VHD
字号:
--下面用一个二进制码到BCD码的转换例子来说明Case-when语句的用法,程序如下:
------------------------------------------------------------------------------
-- DESCRIPTION   :  Bin to Bcd converter
--                   Input (data_in) width : 4
--                   Output (data_out) width : 8
--                   Enable (EN) active : high
--
-------------------------------------------------------------------------------
library ieee;
use IEEE.std_logic_1164.all;

entity bin2bcd is
	port(
		data_in : in std_logic_vector(3 downto 0);
		EN : in std_logic;
		data_out : out std_logic_vector(7 downto 0)
	);
end bin2bcd;

architecture bin2bcd of bin2bcd is
begin

	process(data_in, EN)
	variable data_in_TEMP : std_logic_vector(2 downto 0);
	begin
		data_in_TEMP := data_in(3 downto 1);
		data_out <= (others => '0');
		if EN='1' then
			case data_in_TEMP is
				when "000" => data_out(7 downto 1) <= "0000000";
				when "001" => data_out(7 downto 1) <= "0000001";
				when "010" => data_out(7 downto 1) <= "0000010";
				when "011" => data_out(7 downto 1) <= "0000011";
				when "100" => data_out(7 downto 1) <= "0000100";
				when "101" => data_out(7 downto 1) <= "0001000";
				when "110" => data_out(7 downto 1) <= "0001001";
				when "111" => data_out(7 downto 1) <= "0001010";
				when others => data_out <= (others => '0');
			end case;

			data_out(0) <= data_in(0);
		end if;
	end process;

end bin2bcd;
--程序中的BCD码用四位表示个位,用四位表示十位。通过分析可以发现,
--二进制码和BCD码的个位是相同的,因此转换程序只需要转换输入数据的
--高三位就可以了。程序采用case-when语句根据输入数据的高三位选择不
--同的数据作为输出,通过在ModelSim软件中的单步调试可以发现程序的
--执行是顺序进行的。单步调试的示意图如图4-9所示,其对应的仿真波形
--如图4-10所示。

⌨️ 快捷键说明

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