二选一多路器

  • 〇、功能介绍
    • 1.功能描述
    • 2.原理图
  • 一、代码编写
    • 1.设计文件
    • 2.激励文件
    • 3.仿真图
  • 二、总结

〇、功能介绍

1.功能描述

sl为控制信号,a,b为两个输入信号,out为输出信号。当sl为低电平时,输出out=a,当sl为高电平时,输出out=b。

2.原理图

一、代码编写

1.设计文件

module mux2( a,b,sel,out);//是模块名;()中是所有的信号
//下面为端口定义input a;input b;input sel;output out;//二选一多器实现代码assign out=(sel==1)?a:b;
endmodule

2.激励文件

`timescale 1ns / 1ns //时间刻度 时间的单位/ 1ns精度
module mux2_tb();//测试文件没有端口,只是测试使用,没有实际的作用,所有()中不写端口
//2)下面四条语句是“给输入端口给激励”reg s_a;reg s_b;reg sel;wire out;
//1)把mux2模块名( a,b,sel,out所以的信号);都搬过来,进行在测试平台上面的例化mux2 mux2_inst0(.a(s_a),.b(s_b),.sel(sel),.out(out));
//3)产生激励, initial begin开头,end结束initial begins_a=0;s_b=0;sel=0;#200;s_a=0;s_b=0;sel=1;#200; s_a=0;s_b=1;sel=0;#200;s_a=0;s_b=1;sel=1;#200;s_a=1;s_b=0;sel=0;#200;s_a=1;s_b=0;sel=1;#200;s_a=1;s_b=1;sel=0;#200;s_a=1;s_b=1;sel=1;#200;//#200只在Testbench中延迟,不是实际参加的$stop;//停止下来endendmodule

3.仿真图

二、总结

1.`timescale 1ns/1ns //时间刻度 前面的1ns是时间单位,后面的代表精度;
2.所有程序总是从modbule开始,endmodule结束;
3.assign out = (sel == 1)?a:b;相当于c语言中的if条件判断。
4.激励文件中的例化步骤:
1)把设计文件 mux2( a,b,sel,out所以的信号);都搬过来,进行在测试平台上面的例化;
a.把设计文件mux2( a,b,sel,out所以的信号);都搬过来

 mux2 (a,b,sel,out);

b.对代码进行修改,在mux2后面加上例化的模块名,在端口名前加点,端口名后打括号,括号中是例化的端口名称,形成以下代码:

//设计文件模块名   例化模块名
//设计文件端口名   例化模块端口名mux2 mux2_inst0(.a(s_a),.b(s_b),.sel(sel),.out(out));

2)给激励文件中的输入端口给激励;
3)产生激励, initial begin开头,end结束。
5.#200只能在激励文件中使用
6)verilog的一般语法结构

module 模块名(端口名1,端口名2,端口名3,端口名4,...);
端口定义说明(input,output,inout);
参数定义(可选);
数据类型定义(wire,reg等);
//…………………………以上为描述接口说明部分…………………………//
//…………………………以下为描述逻辑功能部分…………………………//
实例引用低层次模块和基本门级元件;
连续赋值语句(assign);
过程赋值语句(initial和always);
功能描述语言;
任务和函数;
endmodule

后记:皇皇三十载,书剑两无成。

小梅哥Xilinx FPGA学习笔记1——二选一多路器相关推荐

  1. 小梅哥Xilinx FPGA学习笔记2——三八译码器

    三八译码器 〇.功能介绍 1.功能描述 2.真值表 一.代码编写 1.设计文件 2.激励文件 3.仿真图 二.总结 三.课后作业 1.设计文件 2.激励文件 3.仿真图 〇.功能介绍 1.功能描述 译 ...

  2. 小梅哥-建工程+二选一多路器

    1. 通过单击 Quick Start 组的 Create Project 来新建一个 Vivado 设计工程. 说明:在 Vivado 的启动界面中分为 Quick Start.Tasks.Lear ...

  3. Vivado(二选一多路器)

    开发流程 一:Add Sources(二选一多路器代码见下)(Add or creat design sources) module mux2(a,b,sel,out );input a;input ...

  4. xilinx fpga学习笔记5:Xst综合属性

    第六章:设计综合和行为仿真 6.1 设计综合 本节将详细介绍设计综合的概念,综合属性的设置,综合过程的实现,并且通过查看原理图符号更加直观的建立HDL高级描述和FPGA底层源语之间的联系. 6.1.1 ...

  5. xilinx fpga学习笔记2

    第二章:Xilinx FPGA的结构和分类 目前主流的FPGA都采用基于SRAM工艺的查找表结构,也有一些军品和宇航级FPGA采用Flash或者熔丝与反熔丝工艺的查找表结构. 1.查找表的结构和功能 ...

  6. Verilog学习笔记 (二)伪随机序列产生器

    Verilog和C语言 伪随机序列产生器 下面用两种方式产生伪随机序列产生器 一.利用LFSR(线性反馈移位寄存器) 只要学习过数电知识的应该都不难理解上图时序逻辑电路 module pn_gen(c ...

  7. 小梅哥FPGA学习笔记

    小梅哥FPGA学习笔记 一.38译码器 功能: 译码器其任一时刻的稳态输出,仅仅与该时刻的输入变量的取值有关,它是一种多输入多输出的组合逻辑电路,负责将二进制代码翻译为特定的对象(如逻辑电平等).38 ...

  8. 小梅哥FPGA学习笔记——串口发送模块

    串口发送模块 串口发送模块结构框图 顶层模块 串口发送模块结构框图 发送模块具体实现结构框图如图所示,按照图片的内容一步步实现发送模块的设计. DR_LUT查找表的作用是选择不同波特率时,得到对应波特 ...

  9. FPGA学习笔记(十二)IP核之FIFO的学习总结

    系列文章目录 一.FPGA学习笔记(一)入门背景.软件及时钟约束 二.FPGA学习笔记(二)Verilog语法初步学习(语法篇1) 三.FPGA学习笔记(三) 流水灯入门FPGA设计流程 四.FPGA ...

最新文章

  1. 新手C#string类常用函数的学习2018.08.04
  2. 对接kafka_flume对接kafka多路径同时收集日志,配置怎么写?
  3. java在jsp中判断td的值是1还是2_Snap7,Eel与S71200简单组态1
  4. 08-Measured Boot Driver (MBD)
  5. 由PLC未授权访问引发的工程重置漏洞
  6. EF修改对象里面的值。。。(对象字段多的时候)
  7. 你必须知道的容器监控 (2) cAdvisor
  8. MySQL全文索引模糊查询_mysql全文索引之模糊查询
  9. 重庆师范大学第一届ACM选拔赛(公开赛)G-团日活动
  10. Spring MVC中@ModelAttribute注解的使用
  11. 第二次作业刘惠惠2.6,2.15
  12. .net 开源混淆器 ConfuserEx
  13. Java调用的高德api,通过经纬度查询地址信息 - 记录
  14. java 社交网站_java学习之电影《社交网络》Facemash算法实现
  15. 人工智能数学基础:泰勒(Taylor)公式
  16. H5移动应用的发布优化(四)图片优化
  17. Tkinter定时刷新页面或数据
  18. GBASE 8A v953报错集锦56--Hadoop 加载失败问题
  19. Ruby On Rails 阿里云UBUNTU实例
  20. android8 三星a9,三星GalaxyA9评测 已经远远超出中端手机的水平

热门文章

  1. 使用Java实现建造者模式
  2. DC/DC电路自举电容作用
  3. mac 特殊符号如何打
  4. php5.6 nts ts,php ts nts v6 v9的区别
  5. 计算机系统集成怎么报名,2021年全国系统集成项目管理工程师报名时间和报名入口...
  6. 学习node.js第二天
  7. 机架服务器和群晖存文件对比,如何选购群晖nas网络存储服务器?
  8. 【ICDAR 2023 X 阿里安全】挑战赛正式启动!篡改文本分类和检测两大赛题!
  9. [siggraph17]decima engine的光照和aa技术
  10. Vivado 综合约束实用命令(更新中……)