EGO1—实现8选1的数据选择器74HC151

本文详细介绍了如何使用Vivado设计8选1数据选择器74HC151,包括Verilog代码实现、仿真验证以及约束文件设置。在设计中,通过拨码开关控制使能E_、选择信号S和输入D,并用LED灯显示输出Y和Y_。最后,指导了如何在Vivado中创建并打包IP核。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数字设计 FPGA 应用,第三章组合逻辑设计和 VIVADO 进阶,课程设计性质的作业题1

第一题:构建工程,实现 8 选 1 的数据选择器 74HC151,编写仿真代码进行测试,将该工程并生成 IP 核。(必须)

使用软件: Vivado
开发板: EGO1采用Xilinx Artix-7系列XC7A35T-1CSG324C FPGA

74HC151

151及其功能真值表
在这里插入图片描述

代码实现

1. verilog 代码

`timescale 1ns / 1ps
//
// Module Name: v_74hc151
// Revision 0.01 - File Created
// Additional Comments:
// 
//

//文章有用的话记得给靓仔点个赞表示鼓励哟~
module v_74hc151(E_,S,D,Y,Y_);
/*
E_:使能
S[2]:选择
D[7]:输入
Y、Y_:输出
*/
input E_;
input[2:0] S;
input[7:0] D;
output Y,Y_;
reg Y=0;
reg Y_=1;
always @(E_ or S or D)
begin
if(E_ == 1)
    begin
        Y=0;
        Y_=1;
    end
else
    begin
    case (S)
        0:Y=D[0];
        1
### 关于74HC151芯片的技术资料 #### 芯片概述 74HC151是一款高速CMOS器件,属于八一数据择/多路复用器。该芯片可以接收三个地址输入信号(A0, A1, A2),并根据这些信号从八个数据输入端中出一个作为输出[^3]。 #### 功能描述 74HC151的功能在于通过控制三条地址线的择逻辑来实现对多个输入源的数据切换操作。具体来说,当给定一组特定的二进制编码到其地址线上时,相应的单一输入会被传递至唯一的公共输出引脚上[^3]。 #### 引脚排列说明 以下是典型的74HC151引脚配置: | Pin Number | Name | Description | |------------|---------|--------------------------------------| | 1 | Y | Output | | 2 | I0 | Data Input (Channel 0) | | 3 | I1 | Data Input (Channel 1) | | ... | ... | ... | | 9 | GND | Ground | | 10 | E | Enable pin | | 11 | A0 | Address Line 0 | | 12 | A1 | Address Line 1 | | 13 | A2 | Address Line 2 | 注意:上述表格仅提供了一个简化版的引脚定义表;实际产品可能略有差异,请参照官方发布的最新版本数据手册获取最精确的信息[^3]。 #### 应用电路实例 下面展示了一种基本的应用方式,在此设置下利用微控制器如STM32系列或其他通用处理器单元(PUs),可以通过软件编程方法轻松操控各个GPIO口状态从而完成对于目标设备的有效驱动管理过程。 ```c // Example of controlling a 74HC151 using STM32 microcontroller. void select_channel(uint8_t channel){ if(channel >=0 && channel<=7){ // Set address lines according to the binary representation of 'channel' GPIO_WriteBit(GPIO_PORT_A, GPIO_PIN_0, ((channel & 0x01)? Bit_SET : Bit_RESET)); GPIO_WriteBit(GPIO_PORT_A, GPIO_PIN_1, (((channel>>1)& 0x01)? Bit_SET : Bit_RESET)); GPIO_WriteBit(GPIO_PORT_A, GPIO_PIN_2, (((channel>>2)& 0x01)? Bit_SET : Bit_RESET)); // Ensure enable line is active low GPIO_ResetBits(GPIO_PORT_B, GPIO_PIN_ENABLE); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值