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

FPGA学习(1)-mux2,2选1多路器

目录

1 开发板配套资料

1.1学习网址和资料网址

2.创建工程文件

2.1创建过程

2.2写程序及仿真测试

2.2.1 写程序生成电路

2.2.2仿真

2.2.3 生成执行文件并烧录

3.实验现象


买的小梅哥店铺的开发板:xc7z020clg400

看的小梅哥的视频:03C _基于ZYNQ 的FPGA设计流程——二选一多路器板级验证_哔哩哔哩_bilibili

本贴为记录从0开始学习FPGA的过程。

1 开发板配套资料

1.1学习网址和资料网址

【产品资料】【Zynq开发板】小梅哥ACZ702开发板全套资料下载 - ACZ702开发板 - 芯路恒电子技术论坛 - Powered by Discuz! (corecourse.cn)

先看数字逻辑设计与验证课程:https://www.bilibili.com/video/BV1zw41117HS/

再看嵌入式裸机设计和开发教程:  https://www.bilibili.com/video/BV1Ra411q7ww

拿到开发板先看这个文档:01_【用户手册】ACZ702型Zynq SoC FPGA开发板用户手册V2.0.19 进行相关验证与测试。

进行数字逻辑设计时,先看视频,配合02_【逻辑教程】基于HDL的FPGA逻辑设计与验证教程V3.5.2 进行学习

在拿到开发板后,按照01_【用户手册】对开发板各项功能进行了测试,发现在测试某些项时需要连接DC电源才能成功,所以在学习时尽量把DC电源接上。在测试WIFI模块时,安卓手机开热点能成功,苹果不行。

2.创建工程文件

2.1创建过程

1.Quick start—creat project-创建工程名及存放路径。勾选Create project subdirectory,其作用是工程自动创建相关路径,点next/finish。

2.选择 RTL 类型的工程,勾选 Do not specify sources at this time,不在设计创建阶段进行添加源文件。

3.选择开发板型号9(这里开发板型号选错了,是7020,导致后面出现“program_hw_devices' failed due to earlier errors.”的问题。

4. 添加源文件

 命名source的名字,与工程名一致。剩余其他地方都点ok或者finish。

2.2写程序及仿真测试

2.2.1 写程序生成电路

在mux2_1下写程序,assign类似于赋值,int a=之类的。

 点击 Open Elaborated Design,可以看到相关电路。

2.2.2仿真

添加仿真源文件

tb代表test bench文件,没有端口信号,就像一个测试平台,把那些要测试的东西放在上面。

tb处的代码如下:

`timescale 1ns / 1ps 
 //1ns:例如#20,是在仿真的时间线上延时20个ns。1ps:代表可以延时的经度,例如#20.001ns

module mux2_tb();
reg s0;                         //随时需要修改值的地方使用reg来定义
reg s1;
reg s2;
wire mux2_1out;
mux2_1 mux2_1_inst0(              
    .a(s0),                      //例化,让a端口连接至s0
    .b(s1),
    .sel(s2),
    .out(mux2_1out)
);

initial begin
    s2=0;s1=0;s0=0; //sel=s2=0,out=a=s0=0;
    #20;
    s2=0;s1=0;s0=1;//sel=s2=0,out=a=s0=1
    #20;
    s2=0;s1=1;s0=0;//sel=s2=0,out=a=s0=0
    #20;
    s2=0;s1=1;s0=1;//sel=s2=0,out=a=s0=1
    #20;
    s2=1;s1=0;s0=0;//sel=s2=1,out=b=s1=0
    #20;
    s2=1;s1=0;s0=1;//sel=s2=1,out=b=s1=0
    #20;
    s2=1;s1=1;s0=0;//sel=s2=1,out=b=s1=1
    #20;
    s2=1;s1=1;s0=1;//sel=s2=1,out=b=s1=1
    #20;
end
endmodule

“品”代表仿真顶层,要将mux2_tb放在顶层。

 点击run simulation,会出现仿真时序图。将下方的滑钮滑到最左边,点上面的放大按钮。

点击open elaborated design ,右上换成I/O Planning。

 在下方进行管脚约束,对应好相应的IO口。在资料文档的“ACZ702接EDA扩展板V3管脚定义表”文件中有对应IO口。保存并命名。

2.2.3 生成执行文件并烧录

点击Generate Bitstream  ,留两个核做其他事。

只要右上角出现了这个,就代表可以将程序烧录到板子上。然后点击打开硬件管理器。

路径需要记住,有时候需要自己去找。

 发现烧录报错,“program_hw_devices' failed due to earlier errors.”,原因是因为在之前选错了开发板型号导致的,在settings-General中更改开发板型号,然后生成了新的烧录文件,需要在路径上更换。

3.实验现象

开发板拨码开关打到下面为低电平,打到上面为高电平。

1.当SW7=sel=0时,out=led0=SW0,SW1高低电平对输出无影响。

2.SW7=sel=1,out=led0=SW2,SW1高低电平对输出无影响。


http://www.kler.cn/news/325964.html

相关文章:

  • 速盾:网页游戏部署高防服务器有什么优势?
  • 数据结构编程实践20讲(Python版)—02链表
  • CAD图纸加密软件有哪些好用的?10款企业必备的图纸加密软件!
  • javdoc:(JDK9)VISITOR模式遍历语法树(DocCommentTree)获取代码注释中的tag(@return,@param)对象
  • 【Linux】基于驱动框架的程序编写测试
  • 全国糖酒会全域采购商选品会前瞻-见证零售新势力的崛起与变革
  • 第七讲-按钮控件QRadioButton
  • LINUX之Ansible自动化运维工具配置和ssh-keygen配置远程免密钥登录
  • InputStream为什么不能被重复读取?为啥只能被读取一次?
  • 探索 Android DataBinding:实现数据与视图的完美融合
  • 腾讯邮箱上传附件卡、慢、无法上传,下载慢问题处理
  • Harmony 获取定位位置的方式
  • 休眠唤醒不了?你的4G模组不是装睡,而是少了一条指令…
  • Spring Mvc 基础源码分析
  • OceanBase 关于一号表笔记与ERROR 1060(42S21)问题
  • 表驱法优化代码
  • 入职2年的程序员,被劝退了!年纪大了,感觉好绝望!
  • Studying-图论包含的算法总结
  • [Python学习日记-31] Python 中的函数
  • Java开发:文件上传和下载
  • PCL 移动立方体重建(HOPPE)
  • STM32引脚PB3、PB4、PA15作为输入输出的特殊配置
  • mysql代理服务器
  • 自然语言处理实战项目
  • MinIO使用客户端进行桶和对象的管理
  • OpenCV视频I/O(1)视频采集类VideoCapture介绍
  • Mybatis-Mapper接口方式
  • SpringBoot依赖之Microsoft SQL Server Driver
  • 谈谈Redisson分布式锁的底层实现原理
  • 怎么提取视频里的音频?非常简单的提取音频方法