当前位置: 首页 > 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.lryc.cn/news/593040.html

相关文章:

  • 【图像处理基石】什么是小波变换?
  • 【专题一】双指针
  • 《Origin画百图》之多分类矩阵散点图
  • 音频3A处理简介之ANS(自动噪声抑制)
  • 地级市-城市创业活力数据(1971-2024年)-实证数据
  • 【音视频协议篇】RTSP系列
  • Letter Combination of a Phone Number
  • 【Bluedroid】btif_av_sink_execute_service之服务器启用源码流程解析
  • 模块加载、ES、TS、Babel 浅析
  • Gerrit workflow
  • 云边端协同架构下的智能计算革命
  • 打造高效订单处理!ZKmall开源商城的统一履约中心架构解析
  • 车载诊断架构 --- 故障码DTC严重等级定义
  • 模电基础-电阻和功率
  • Oracle Database 23ai 技术细节与医疗 AI 应用
  • python学智能算法(二十五)|SVM-拉格朗日乘数法理解
  • 车载诊断架构 --- OEM对于DTC相关参数得定义
  • 开疆智能Profinet转ModbusTCP网关连接康耐视InSight相机案例
  • VUE2 学习笔记1
  • python爬虫之获取渲染代码
  • 【机器学习深度学习】为什么要将模型转换为 GGUF 格式?
  • 计算机网络:(十一)多协议标记交换 MPLS
  • 结合python面向对象编程,阐述面向对象三大特征
  • 软件设计师之开发模型
  • HTML5中的自定义属性
  • 从Prompt到结构建模:如何以数据驱动重构日本语言学校体系?以国际日本语学院为例
  • World of Warcraft [CLASSIC] The Ruby Sanctum [RS] Halion
  • 在 .NET Core 中创建 Web Socket API
  • Kotlin泛型约束
  • NLP中情感分析与观念分析、价值判断、意图识别的区别与联系,以及四者在实际应用中的协同