当前位置: 首页 > news >正文

FPGA自学——二选一多路选择器

FPGA自学——二选一多路选择器

文章目录

  • FPGA自学——二选一多路选择器
  • 一、使用工具
  • 二、软件使用
    • 一)对界面的了解
    • 二)创建新工程
    • 三)创建HDL文件
    • 四)查看verilog文件
  • 三、二选一多路器功能编写
    • 一)实现图表:
    • 二)实现功能要求:
    • 三)代码实现
    • 四)分析RTL
    • 五)测试文件编写
    • 六)仿真
    • 七)波形分析

一、使用工具

vivado2018.3

二、软件使用

一)对界面的了解

在这里插入图片描述

二)创建新工程

1.点击create project,并点击next

在这里插入图片描述

2.修改文件名称+路径,以及对应的注意事项

在这里插入图片描述

3.选择RTL工程

在这里插入图片描述

4.选择芯片

在这里插入图片描述

5.核对信息,创建工程

在这里插入图片描述

三)创建HDL文件

1.新建Verilog文件

在这里插入图片描述

2.选择编写verilog代码

  • constraints : 管脚约束,物理相关信息
  • design sources : verilog代码 || 第三方提供的网表文件 ……
  • simulation sources : 创建仿真文件

在这里插入图片描述

3.创建新的.v文件

在这里插入图片描述

4.verilog文件命名

在这里插入图片描述

5.添加成功

在这里插入图片描述

6.选择引脚,跳过即可

在这里插入图片描述

四)查看verilog文件

在这里插入图片描述

三、二选一多路器功能编写

一)实现图表:

在这里插入图片描述

二)实现功能要求:

当 sel == 0 时 ,out == a

当 sel == 1 时 ,out == b

三)代码实现

在这里插入图片描述

module mux2(a       ,b       ,sel     ,out
);input   a       ;input   b       ;input   sel     ;output  out     ;//赋值语句 assignassign out = (sel == 0) ? a : b ;endmodule

四)分析RTL

在这里插入图片描述

在这里插入图片描述

五)测试文件编写

1.创建测试文件

在这里插入图片描述
在这里插入图片描述

2.测试文件的编写

`timescale 1ns / 1ns  //时间精度module mux2_tb(); //不需要端口名称reg     S0,S1,S2;wire    mux2_out;
//例化
mux2 mux2_inst1(.   a       (S0)        ,.   b       (S1)        ,.   sel     (S2)        ,.   out     (mux2_out)
);//产生激励信号
initial begin//a b selS0 = 0; S1 = 0; S2 = 0;//mux2_out =0#20 //时间间隔描述S0 = 1; S1 = 0; S2 = 0;//mux2_out =1#20S0 = 0; S1 = 1; S2 = 0;//mux2_out =0#20S0 = 0; S1 = 0; S2 = 1;//mux2_out =0#20S0 = 1; S1 = 1; S2 = 0;//mux2_out =1#20S0 = 1; S1 = 0; S2 = 1;//mux2_out =0#20S0 = 0; S1 = 1; S2 = 1;//mux2_out =1#20S0 = 1; S1 = 1; S2 = 1;//mux2_out =1endendmodule

3.设置测试文件为顶层

在这里插入图片描述

六)仿真

在这里插入图片描述

点击全局视图,
在这里插入图片描述

七)波形分析

在这里插入图片描述
最后仿真的mux2_out结果为:01001011,与期望值相同

http://www.dtcms.com/a/287141.html

相关文章:

  • 模型的评估与选择
  • Kafka——Java生产者是如何管理TCP连接的?
  • Java File 类详解:从基础操作到实战应用,掌握文件与目录处理全貌
  • 《程序员修炼之道》第一二章读书笔记
  • 车载通信架构 --- DoIP协议通信
  • aosp15实现SurfaceFlinger的dump输出带上Layer详细信息踩坑笔记
  • 基于深度学习的图像超分辨率:从低分辨率到高分辨率的图像重建
  • PHP MySQL 读取数据
  • 代码随想录算法训练营第二十五天
  • 【Android】ListView与RecyclerView的基础使用
  • 【RK3576】【Android14】Android平台构建
  • MTF算法V1.0
  • Android无需授权直接访问Android/data目录漏洞
  • 【Linux】基本指令
  • 零基础学习性能测试-linux服务器监控:网络iftop
  • 【2025/07/19】GitHub 今日热门项目
  • Libevent(3)之使用教程(2)创建事件
  • Yakit与vps(vps为Linux使用教程)
  • 辛普森悖论
  • SLAM中的非线性优化-2D图优化之激光SLAM基于优化的前端匹配(十八)
  • 2023年CSP入门级第二轮第四题——旅游巴士
  • windows wsl2-06-docker hello world
  • 网络原理——TCP
  • 【学习记录】智能客服小桃(进度更新ing)
  • 张 关于大语言模型(LLM)置信度研究的经典与前沿论文 :温度缩放;语义熵;自一致性;事实与反思;检索增强;黑盒引导;
  • 软考 系统架构设计师系列知识点之杂项集萃(113)
  • LangGraph教程10:LangGraph ReAct应用
  • 基于Electron打包jar成Windows应用程序
  • 技术演进中的开发沉思-39 MFC系列:多重文件和多重视图
  • 安全事件响应分析--基础命令