一.要求:利用Block Design设计一个三位 4 选 1 多路选择器电路

二.实验原理:
真值表:

Block Design原理图

三.设计过程
Block Design 将自己编写的与门,非门和或门封装成三个独立的 IP 核,在另一个 Project 中导入后,进行连线设计,然后写出 design 代码。
1)编写与门,或门,非门

1.与门:输入的每一位都和 S0,S1 相与

module andGate #(parameter SIZE = 3)
(input s0, input s1, input[(SIZE-1):0] a, output[(SIZE-1):0] out); genvar i;generate for(i=0;i<SIZE;i=i+1) begin: gfor assign out[i] = a[i]&s0&s1; end endgenerate endmodule

2.或门:输出的每 i 位等于每一个输入数据第 i 位相或

module orGate #(parameter SIZE = 3)
(input [(SIZE-1):0] a, input[(SIZE-1):0] b, input[(SIZE-1):0] c, input [(SIZE-1):0] d, output [(SIZE-1):0] out); genvar i;
generate for(i=0; i<SIZE; i=i+1)
begin: gfor
assign out[i] = a[i]|b[i]|c[i]|d[i];
end
endgenerate
endmodule

3.非门:对输入进行取反操作

module notGate#(parameter SIZE = 3)
(input a, output out);
assign out = ~a;
endmodule

2) 进行 Block Design, 电路连线及代码编写
设计思路:根据 0 和任何数相与都得 0,而只有当三个数全为 1 相与时才 能为 1。要想输入 00 时输出为 001,则他需要将选择信号取反后再和 001 相与才能得到 001。同理要输入 01 得到 010,则选择信号低位取 反,高位不变后再与 010 相与则可输出 010。对 10 和 011,11 和 100 同 理,设计好四个与门后,将四个与门的输出连到或门,进行每一位相 或,则可以得到正确输出。
1.电路连线

2.代码编写
a_0 和 a_1 为两位选择信号,a_2,a_3,a_4,a_5 均为三位输入的数据, out_0 为三位选择的输出数据。 design_1 为上图所示的 block design 文件,用 a_0 到 a_5 实例化一个名 为 h1 的 design_1 的 block design。

module mux4to1_bd (a_0,a_1,a_2,a_3,a_4,a_5,out_0);
input a_0;
input a_1;
input[2:0] a_2;
input[2:0] a_3;
input[2:0] a_4;
input[2:0] a_5;
output [2:0] out_0;
design_1 hl(.a_0(a_0),.a_1(a_1),.a_2(a_2),.a_3(a_3),.a_4(a_4),.a_5(a_5),.out_0 (out_0));
endmodule

四.仿真
1.仿真文件

`timescale 1ns / 1ps module mux4to1_bd_try();
reg s0,s1;
reg [2:0] x1;
reg [2:0] x2;
reg [2:0] x3;
reg [2:0] x4;
wire [2:0] out;
mux4to1_bd try(s0,s1,x1,x2,x3,x4,out);
initial begins0 = 0; s1 = 0; x1 = 3'b001; x2 = 3'b010; x3 = 3'b011; x4 = 3'b100;#100 s0 = 0; s1 = 0; #100 s0 = 1; s1 = 0; #100 s0 = 0; s1 = 1;#100 s0 = 1; s1 = 1; #100 $stop; end endmodule

2.仿真结果

记得点赞收藏喏

利用Block Design在Vivado实现三位四选一多路选择器相关推荐

  1. Block Design内部BRAM控制器与外部BRAM的连接

    在最近的一个设计中遇到了这样一个问题.我在Block Design中例化了XDMA,并通过interconnect连接了3个BRAM控制器,3个BRAM控制器的端口引出到Block Design外部. ...

  2. 三位数码管实验报告-数字系统实验

    这里写自定义目录标题 数字系统实验-三位数码管实验报告## 1. 日志(2020.03.26日完成) 2. 报告 3.实验总结 数字系统实验-三位数码管实验报告## 1. 日志(2020.03.26日 ...

  3. VHDL三输入与门、四选一复用器

    1.三输入与门 --定义头文件 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;--定义实体,定义输入和输出 ENTITY A3 ISPORT(a,b,c:IN S ...

  4. Vivado 多路选择器(含测试代码)

    本篇文章使用Verilog语言编写实现五选一多路选择器,含有设计代码和测试代码. 一.接口描述 五选一多路选择器接口描述表: 二.设计代码 `timescale 1ns / 1ps module se ...

  5. SoC第一讲——Vivado的Block Design 的使用

    SoC第一讲--Vivado的Block Design 的使用 前言 近期刚接触SoC的学习,通过Xilinx的Vivado软件和ZYNQ系列的器件芯片学习SOC,特此在学习的过程中做些总结,以帮助自 ...

  6. Vivado Block Design流程(MicroBlaze)

    在达芬奇开发板上搭建基于 BRAM 的 MicroBlaze 嵌入式最小系统 硬件设计: 1.首先通过Vivado软件创建工程 使用parts选项选择开发板型号,完成工程创建. 2.通过IP INTE ...

  7. vivado修改block design后更新进sdk

    修改完block design后重新generate output products后(顶层wrapper.v文件不用修改因为设置自动管理)导入SDK 导入硬件export hardware后弹出提示 ...

  8. vivado下block design重新整理布局regenerate layout

    进行block design是连线看起来很乱,不用手动整理,在图纸上右击点击regenerate layout连线就会变得干净整洁

  9. 输入引脚时钟约束_Happy Design in Vivado 系列:时序分析入门三板斧(一):创建时钟...

    本系列中我们将一起探寻 Xilinx FPGA 的硬件开发环境 Vivado,发现 Vivado 的 Design Flow,使用 Tips...或许再来一些 BUG?Happy Design in ...

最新文章

  1. Denoising DNA deep sequencing data—high-throughput sequencing errors and their correction
  2. android java 多线程,Android多线程的四种方式
  3. tf.keras.losses.BinaryCrossentropy 损失函数 示例
  4. mod php是什么意思,mod函数是什么意思
  5. 以色列农业奇迹-丰收节贸易会:谋定符合国情制度和方式
  6. android开发入门_Android开发入门
  7. linux 优化 sysctl.conf,Linux内核sysctl.conf的优化设置
  8. python小程序贪吃蛇_微信小程序实现的贪吃蛇游戏【附源码下载】
  9. c语言里面你不知道的break与switch,contiune的用法
  10. 设计模式,六大设计原则,类的特性
  11. 八、关于FFmpeg需要絮叨的一些事
  12. php listen命令,开启队列时,命令行输入php think queue:listen出现乱码
  13. 安装中文版MSDN方法
  14. C++程序设计语言(特别版)pdf
  15. 百度AI开放平台情感分类
  16. 一台电脑控制27台手机技术原理分析
  17. Matlab实现指纹去噪增强
  18. 窄带高清赋能体育赛事,世界杯高清直播背后的技术变革
  19. 7-4 病毒感染检测 (15 分)
  20. 2023国自然已审核,预祝8月上榜

热门文章

  1. Zabbix 整合ldap认证
  2. 很久很久以前写的FC/NES 游戏ROM文件管理程序,许久没更新,用得着的试试吧
  3. win7里设置VC6中的字体
  4. Codeforces 650B 二分
  5. go 安装下载(百度云盘下载)
  6. 最新版!泛955、不加班、双休的公司名单
  7. mikumikudance中的骨骼追踪有什么用
  8. 读书笔记:CSS禅意花园-布局法则
  9. 深入理解C++11电子书pdf下载
  10. 制作一个有趣的涂鸦物联网小项目(涂鸦模组SDK开发 CBU BK7231N WiFi+蓝牙模组 HSV彩色控制)