您的位置:首页 > 其它

八选一数据选择器

2015-10-19 21:56 513 查看




目的

1. 进一步掌握VHDL语言的基本结构及设计的输入方法。

2. 掌握8选1数据选择器的设计思路;

内容

1. 用拨码开关SW7~SW0作为数据输入端D7~D0的输入,SW10~SW8作为数据选择端C、B、A的输入,SW11作为选通端STROBE的输入, LEDR0作为数据输出端Y的输出, LEDR1作为反码数据输出端W的输出。

2. 观察Y与数据输入端D7~D0的关系,验证八选一数据选择器设计的正确性。

原理

CT74151为互补输出的8选1数据选择器,其引脚排列图如图2-28所示。数据选择端(ABC)按二进制译码,从8 个数据(D0---D7)中选取1 个所需的数据。只有在选通端STROBE 为低电平时才可选择数据。151 有互补输出端(Y、W),Y 输出原码,W 输出反码。



图2-28 CT74151管教图





表2-3 CT74151功能表

操作

1.创建一个Quartus II 工程,用来在DE2-115上实现预期电路。

2.写出预期电路的VHDL代码。

3.将VHDL文件包含进工程并编译。

4.仿真电路来检测其功能。

5.分配引脚。

6.重新编译并将其下载进FPGA芯片中。

通过DE2-115开发板来证实电路是否准确。

程序

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY CT74151 IS

PORT(A,B,C,D0,D1,D2,D3,D4,D5,D6,D7,STROBE: IN STD_LOGIC;

Y,WN: OUT STD_LOGIC);

END CT74151;

ARCHITECTURE behave OF CT74151 IS

SIGNAL sel: STD_LOGIC_VECTOR (2 DOWNTO 0);

BEGIN

sel<=C&B&A;

PROCESS (sel,STROBE)

VARIABLE Y_TEMP:STD_LOGIC;

BEGIN

IF STROBE=’0’ THEN

CASE sel IS

WHEN "000" => Y_TEMP :=D0;

WHEN "001" => Y_TEMP :=D1;

WHEN "010" => Y_TEMP :=D2;

WHEN "011" => Y_TEMP :=D3;

WHEN "100" => Y_TEMP :=D4;

WHEN "101" => Y_TEMP :=D5;

WHEN "110" => Y_TEMP :=D6;

WHEN "111" => Y_TEMP :=D7;

WHEN OTHERS=> Y_TEMP :='X';

END CASE;

END IF;

Y<=Y_TEMP;

WN<=NOT Y_TEMP;

END PROCESS;

END behave;

问题及解决

文件名必须与VHDL文件中的设计实体名保持一致。

总结:这次课程设计虽然在功能上完全实现了课题的要求,即实现了八选一数据选择器的全部要求,但是相应的不足之处还应该考虑到。怎样更好地布局以及连线,使整个电路图不至于杂乱无章等等问题,虽然是细节问题,但往往可以决定成败,这些问题都应该引以为戒并作为以后设计相关电路时的参考。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: