1、源代码为:library IEEE;use IEEE.std_logic_1164.all; entity bijiao isport(a2,a1:in STD_LOGIC;b2,b1:f1,f2:buffer STD_LOGIC;f3:out STD_LOGIC);end bijiao;architecture bijiao_arch of bijiao isbeginf1=(a2 and (not b2) or (a1 and (not b1) and a2) or (a1 and (not b1) and (not b2);f2=(not a2) and b2)or(not a2) an
2、d (not a1) and b1) or (not a1) and b1 and b2);f3”键即可)。任意设置输入波形点击保存按钮保存,之后选择Processing下的Start Compilationr进行一次全编译,带编译成功后,点击 图样按键,进行波形仿真。6、FPGA芯片编程及验证。点击Assignment中的pins进行节点设置,接着使用Processing下的Start Compilation编译一次。再点击TOOLS选择Programmer,之后在Hrardware中选择正确的合适的硬件,点击Start,进行下载。使用FPGA实验箱进行验证。7,设计逻辑图时,在quartu
3、sii界面的左上角小窗口切换至Files界面小窗口,反击刚才生成的vhd文件,点击Create symbol files for current file,将会生成新的一个逻辑单元。或者使用逻辑图设计反法:8,在File下点击New中的Block Diagram选项,进入逻辑图设计界面,在界面窗口反击,选择symbol,进行逻辑单元的选择,之后并为起命名,最后进行逻辑单元的连线。并编译,仿真。二,利用LPM元件实现。1,新建工程所在文件夹名称为lpm_bijiao,工程名称和顶层实体名称均为lpm_bijiao,选择目标器件为EPF10K20TI144-4.2,选择菜单ToolsMega Wi
4、zard Plug-in Manager命令,弹出如下对话框:3,如上图选择Next,弹出如下图所示宏功能选择对话框:4,如上图在左侧选择Installed Plug-inArithmeticlpm_compare。设置目标器件为Flex10K,元件名为lpm_compare2,文件输出类型为VHDl。单机Next,弹出如下图:在上图中,选择位宽为2,将六个选框全部选中。单机Next,弹出如下对话框:设置dataa和比较数值符号类型,单击Next,对话框如下:设置流水线,单击Next,进入EDA设置页面:如上图选择要生成的文件格式,单击finish完成定制。5,单击输出路径下的lpm_comp
5、are2_waveform.htmi文件,查看仿真波形。6,打开输出路径下的lpm_compare2.vhd文件,可以看到代码如下:LIBRARY ieee;USE ieee.std_logic_1164.all;LIBRARY lpm;USE lpm.all;ENTITY lpm_compare2 IS PORT ( dataa : IN STD_LOGIC_VECTOR (7 DOWNTO 0); datab : AeB : OUT STD_LOGIC ; AgB : AgeB : AlB : AleB : AneB : OUT STD_LOGIC );END lpm_compare2;A
6、RCHITECTURE SYN OF lpm_compare2 IS SIGNAL sub_wire0 : STD_LOGIC ; SIGNAL sub_wire1 : SIGNAL sub_wire2 : SIGNAL sub_wire3 : SIGNAL sub_wire4 : SIGNAL sub_wire5 : COMPONENT lpm_compare GENERIC ( lpm_representation : STRING; lpm_type : lpm_width : NATURAL PORT ( dataa : datab : AgeB : AlB : AleB : AneB
7、 : AgB : AeB : END COMPONENT;BEGIN AgeB = sub_wire0; AlB = sub_wire1; AleB = sub_wire2; AneB = sub_wire3; AgB = sub_wire4; AeB UNSIGNED, lpm_type =LPM_COMPARE lpm_width = 8 ) PORT MAP ( dataa = dataa, datab = datab, AgeB = sub_wire0, AlB = sub_wire1, AleB = sub_wire2, AneB = sub_wire3, AgB = sub_wir
8、e4, AeB = sub_wire5END SYN;7,编译。8,分配管脚。情况如下表:管脚名称代表意义管脚分配Alb小于22AleB小于等于23AeB等于26AgeB大于等于27AgB大于28AneB不等21Dataa1数a的高位86Dataa0数a的低位87Datab1数b的高位88Datab0数b的低位899,编程下载,验证结果。四、实验结果及分析。 从下载下来的情况来看,当数据a大于数据b时,21,27,28三盏灯同时亮;当a大于等于b时,26,27,28三盏灯同时亮;当a小于b时,21,22,23三盏灯同时亮;当a小于等于b时,22,23,26三盏灯同时亮;当a等于b时,23,26,27三盏灯同时亮。由此可见,仿真结果正确。