数字设计 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)beginY=0;Y_=1;end
elsebegincase (S)0:Y=D[0];1:Y=D[1];2:Y=D[2];3:Y=D[3];4:Y=D[4];5:Y=D[5];6:Y=D[6];7:Y=D[7];endcaseendY_=~Y;//按位取反
end
endmodule

2. 仿真代码

`timescale 1ns / 1ps
//
// Module Name: sim_74hc151
// Revision 0.01 - File Created
// Additional Comments:
//
////文章有用的话记得给靓仔点个赞表示鼓励哟~
module sim_74hc151();
reg E_;
reg[2:0] S;
reg[7:0] D;
wire Y,Y_;
v_74hc151 simt(E_,S,D,Y,Y_);
initial begin
E_=1;
S=0;
D=0;
# 100 //延时100ns
E_=0;
D=8'b01010101;
end
always #20 S=S+1;
endmodule

仿真结果

3. 约束文件

注意:生成bit流文件时报错可能是约束语句出现问题
使能控制:E_采用拨码开关:P5
选择控制:S采用拨码开关:P4,P3,P2
输入控制:D采用DIP开关:U3,U2,V2,V5,V4,R3,T3,T5
输出显示:Y采用LED灯F6,Y_采用LED灯G4

## Switch
set_property PACKAGE_PIN P5 [get_ports E_]set_property IOSTANDARD LVCMOS33 [get_ports E_]set_property PACKAGE_PIN P4 [get_ports {S[2]}]set_property IOSTANDARD LVCMOS33 [get_ports {S[2]}]
set_property PACKAGE_PIN P3 [get_ports {S[1]}]set_property IOSTANDARD LVCMOS33 [get_ports {S[1]}]
set_property PACKAGE_PIN P2 [get_ports {S[0]}]set_property IOSTANDARD LVCMOS33 [get_ports {S[0]}]set_property PACKAGE_PIN U3 [get_ports {D[7]}]set_property IOSTANDARD LVCMOS33 [get_ports {D[7]}]
set_property PACKAGE_PIN U2 [get_ports {D[6]}]set_property IOSTANDARD LVCMOS33 [get_ports {D[6]}]
set_property PACKAGE_PIN V2 [get_ports {D[5]}]set_property IOSTANDARD LVCMOS33 [get_ports {D[5]}]
set_property PACKAGE_PIN V5 [get_ports {D[4]}]set_property IOSTANDARD LVCMOS33 [get_ports {D[4]}]
set_property PACKAGE_PIN V4 [get_ports {D[3]}]set_property IOSTANDARD LVCMOS33 [get_ports {D[3]}]
set_property PACKAGE_PIN R3 [get_ports {D[2]}]set_property IOSTANDARD LVCMOS33 [get_ports {D[2]}]
set_property PACKAGE_PIN T3 [get_ports {D[1]}]set_property IOSTANDARD LVCMOS33 [get_ports {D[1]}]
set_property PACKAGE_PIN T5 [get_ports {D[0]}]set_property IOSTANDARD LVCMOS33 [get_ports {D[0]}]## LED
set_property PACKAGE_PIN F6 [get_ports Y]set_property IOSTANDARD LVCMOS33 [get_ports Y]
set_property PACKAGE_PIN G4 [get_ports Y_]set_property IOSTANDARD LVCMOS33 [get_ports Y_]

E_=0,S=3’b000,D=8’b00000001时:

E_=1时:

生成IP核

  1. 在菜单栏选择“Tools”—>“Create and Package New IP…”–>“Next”
  2. 选择第一个选项,然后点击“Next”
  3. 默认名字和地址即可,继续点击“Next”
  4. 看到IP核相关信息,点击“Finish”即可完成IP核创建。

EGO1—实现8选1的数据选择器74HC151相关推荐

  1. EGO1—使用8选1数据选择器实现四输入逻辑函数 f=∑wxyz(1,3,6,7,11,13,14)

    数字设计 FPGA 应用,第三章组合逻辑设计和 VIVADO 进阶,课程设计性质的作业题2 第二题:再建一个工程,调用该 IP 核实现 4 输入逻辑函数f=∑wxyz(1,3,6,7,11,13,14 ...

  2. Verilog——74HC151八选一数据选择器并扩展为16选1数据选择器

    Verilog--74HC151八选一数据选择器并扩展为16选1数据选择器 74HC151的仿真 设计思路 采用行为级建模,根据74HC151八选一数据选择器的功能表编程即可. 代码实现 设计模块 / ...

  3. 【数字逻辑 Verilog】全面剖析数据选择器——从基础到拓展,从理论到设计的实现,从表面到本质

    0 前言 0.1 使用环境 EDA工具:Vivado 2017.4 硬件描述语言:Verilog HDL 0.2 涉及知识 数字逻辑 Verilog 1 基础模块:一位四选一数据选择器 1.1 设计部 ...

  4. 2017.0311.数字电路与系统-数据选择器分配器的理解

    数据选择器 1.这里讲解一个特殊情况,如果给定的函数是F(A,B,C,D)拥有四个变量,要求我们采用74151八选一数据选择器来实现四变量的函数.74151八选一数据选择器的地址端只有三个,和四个变量 ...

  5. FPGA(3)验证数字逻辑(与门、与非门、二选一数据选择器、2-4译码器、半加器、全加器)

    目录 一.验证与门 二.验证与非门 三.验证二选一数据选择器 四.验证2-4译码器 五.验证半加器 六.验证全加器 0.初始化定义 1.第一个半加器 2.第二个半加器 3.得到最终进位Co 代码 0决 ...

  6. VHDL四选一数据选择器和基本触发器的设计

    主要内容: 本设计主要是利用超高速硬件描述语言VHDL对四选一数据选择器和基本触发器电路进行编程实现. 四选一数据选择器应该具备的功能:在选择信号的作用下,从输入通道中选择某一个通道的数据作为输出. ...

  7. Verilog二选一数据选择器

    //二选一数据选择器module mux2_1(a0,a1,s,f) input a0,a1,s; output f;//默认是wire(线)变量 assign f=(s)?a1:a0;//assig ...

  8. FPGA(1)--VHDL--6选1数据选择器

    文章目录 一.实验目的 二.实验内容 三.实验设计 四.实验结果及仿真 五.实验思考与总结 一.实验目的 掌握用VHDL语句进行组合电路设计的方法,并熟悉程序的编译.调试与波形图的仿真. 二.实验内容 ...

  9. Quartus II使用说明(Verilog HDL二选一数据选择器 )

    <可编程数字逻辑电路设计>课程中Quartus II软件的使用说明 VHDL和Verilog HDL不一样. 1.新建文件夹,里面包含5个子文件夹(doc/img/prj/rtl/test ...

最新文章

  1. Mongodb数据分片的实现
  2. #include NOIP2009 Junior 细胞分裂 ——using namespace wxl;
  3. [leetcode] 108.有序数组转换为二叉搜索树
  4. cesium billboard 设置距离控制可见度
  5. Linux命令-目录处理命令:mkdir
  6. web api 权限控制
  7. 通过data目录恢复数据库数据(mysql5.7.22)
  8. python逻辑取反运算符_python学习笔记------逻辑运算符
  9. 计算机网络概述的功能 组成,计算机网络的概述
  10. Linux开放mysql权限给任意主机远程登陆
  11. 基于JSP和sql server小区物业管理系统毕业论文
  12. Linux 安装mongodb数据库
  13. EAS BOS序时簿界面排序
  14. OSChina 十一乱弹 —— 前女友 is Null
  15. 《统计学习方法》课后习题参考答案
  16. 用Python 统计、分析2020年江苏省事业单位招聘岗位 Excel 表格信息
  17. HTML基础DW使用教程
  18. 搜狗输入法自定义短语设置
  19. AI人工智能入门(浅析AlphaGo的实现)
  20. python的SMTP

热门文章

  1. 内网安全-流量隧道(一)不出网CS上线正反向端口转发
  2. macos系统终端命令失效
  3. 聚人才创未来 | 拓保软件荣获“2020年度最具发展潜力雇主”
  4. 机器学习常用评估指标的前世今生
  5. c语言按位取反 补码,求C语言 按位取反?
  6. 快速学习-Saturn FAQ
  7. 十天学会php第五天
  8. Windows和Ubuntu双系统完全独立(双硬盘)的安装方法
  9. 计算机病毒指的是什么及特性,什么是计算机病毒 什么是计算机病毒
  10. ctrl+a快捷键失灵情况