22
s,x,y:in std_logic; m:out std_logic); end mux_2to1;
architecture behave_mux_2to1 of mux_2to1 is begin
m<=x when s='0' else y ;
end behave_mux_2to1;
第3步:语法检查通过后,进行引脚分配,分配表如下表所示。然后再编译,下载验证。
FPGA信DE2上的号 引脚 器件 sPIN_SW0 N25 xPIN_SW1 N26 yPIN_SW2 P25 mPIN_LEDG0 AE22
2.8位宽2选1的数据选择器
在完成2选1数据选择器之后,将信号x和y的位宽由1位扩展为8位。
更改后的电路图如下:
23
实验步骤如下:
第1步:在代码一中,实体部分关于端口的说明也更改为: entity mux_2to1_8bit is port(
s:in std_logic;
X,Y:in std_logic_vector(7 downto 0); M:out std_logic_vector(7 downto 0)); end mux_2to1_8bit;
而结构体部分代码不变,代码修改后另存为mux_2to1_8bit.vhd。 第2步:接着把mux_2to1_8bit.vhd设定为项目的顶层设计文件。实现方法如下图所示,在项目浏览器(Project Navigator)中选择文件(Files)页,选中mux_2to1_8bit.vhd,单击右键,选择“Set as Top-Level Entity”命令即可。
24
第3步:语法检查,检查通过后再进行引脚分配。
引脚数也由原来的4个增加到25个,引脚分配更改如下表所示。分配完后重新编译项目文件,并下载验证。 FPGA信DE2上的器引脚 号 件 s PIN_SW0 N25 X[查附SW8~7..0] 录表 SW1 Y[SW16~SW同上 7..0] 9 MLEDG7~L同上 [7..0] EDG0
25
3.4选1的数据选择器
在完成2选1电路之后,将电路扩展为4选1数据选择器,电路及其真值表如下图所示。
代码修改如下: library ieee;
use ieee.std_logic_1164.all; entity mux_4to1 is port(
s:in std_logic_vector(1 downto 0); u,v,w,x:in std_logic; m:out std_logic );
end mux_4to1;
architecture behave_mux_4to1 of mux_4to1 is begin
26
m<=u when s=\ v when s=\ w when s=\ x;
end behave_mux_4to1;
文件另存为mux_4to1.vhd。
接着将mux_4to1.vhd设定为项目的顶层设计文件,再进行语法检查和引脚分配。
引脚分配表如下表所示,具体的FPGA引脚可通过查找附录表获取。分配完后重新编译项目文件,并下载验证。
信DE2上的号 器件 SSW1~S[1..0] W0 u SW2 v SW3 w SW4 x SW5 mLEDG0
4.实现3位宽的4选1数据选择器。
电路如下图所示。代码完成后,另存为mux_4to1_3bit.vhd。