名称:基于FPGA的比较器设计VHDL代码Quartus仿真
软件:Quartus
语言:VHDL
代码功能:
比较器设计。
对输入的三个三位二进制数进行比较,数码管显示相应的输入值,对三次输入的数进行比较,最后数码管显示比较得到的大值。启用最左边的三个LED灯,若第一个数大,LED0点亮并以1秒的频率闪烁,若第二个数大,LED1点亮并以1秒的频率闪烁,若第三个数大,LED2点亮并以1秒的频率闪烁。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
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;
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=733
阅读全文