名称:基于FPGA的比较器设计VHDL代码Quartus仿真(文末获取)
软件:Quartus
语言:VHDL
代码功能:
比较器设计。
对输入的三个三位二进制数进行比较,数码管显示相应的输入值,对三次输入的数进行比较,最后数码管显示比较得到的大值。启用最左边的三个LED灯,若第一个数大,LED0点亮并以1秒的频率闪烁,若第二个数大,LED1点亮并以1秒的频率闪烁,若第三个数大,LED2点亮并以1秒的频率闪烁
1. 工程文件
2. 程序文件
顶层原理图
模块框图
模块代码
3. 程序编译
4. RTL图
5. 仿真
整体仿真
分频模块仿真
控制模块仿真
显示模块仿真
部分代码展示:
LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all; --显示模块 ENTITY display IS PORT ( clk : IN STD_LOGIC;--时钟 data : IN STD_LOGIC_VECTOR(2 DOWNTO 0);--待显示数据 seg_select : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)--数码管段选 ); END display; ARCHITECTURE behaveral OF display IS BEGIN PROCESS (clk) BEGIN IF (clk'EVENT AND clk = '1') THEN CASE data IS--数字显示码 WHEN "000" => seg_select <= "11000000";--数字0的段码 WHEN "001" => seg_select <= "11111001";--数字1的段码 WHEN "010" => seg_select <= "10100100";--数字2的段码 WHEN "011" => seg_select <= "10110000";--数字3的段码 WHEN "100" => seg_select <= "10011001";--数字4的段码 WHEN "101" => seg_select <= "10010010";--数字5的段码 WHEN "110" => seg_select <= "10000010";--数字6的段码 WHEN "111" => seg_select <= "11111000";--数字7的段码 WHEN OTHERS => END CASE; END IF; END PROCESS; END behaveral;
源代码
扫描文章末尾的公众号二维码