3.1 第一个工程——多数表决器

这篇具有很好参考价值的文章主要介绍了3.1 第一个工程——多数表决器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

详细流程见:Vivado FPGA基础设计操作流程
该文档的MOOC的视频教程

1 多数表决器的分析和逻辑实现

有什么样的输入,就有什么样的输出,数字电路的输出只依赖于当前输入值的组合,这样的电路称为组合逻辑电路。
例如f=ab+ac
第一个工程使用FPGA实现一个简单的组合逻辑电路。

题目:假设有三个举重裁判,举重选手完成比赛后,当有多数裁判认定成功,则成功;否则失败。请设计此举重裁决电路。这个举重裁决电路实际上就是一个三输入的多数表决器

假设多数表决器的三个输入分别是a、b、 c,输出是f。
3.1 第一个工程——多数表决器
根据问题的描述,填写真值表得到最小项表达式f = ∑abc(3,5,6,7)。
填写卡诺图进行化简得f=ab+bc+ac
3.1 第一个工程——多数表决器

2 多数表决器的工程创建

打开VIVADO并新建工程3.1 第一个工程——多数表决器
3.1 第一个工程——多数表决器
工程类型设置
3.1 第一个工程——多数表决器
工程器件选择
3.1 第一个工程——多数表决器
3.1 第一个工程——多数表决器
创建后的工程,此时,保存工程的文件夹是空的
3.1 第一个工程——多数表决器
3.1 第一个工程——多数表决器
工程设置,设置后,文件下载到flash,每次上电,信息就会从flash到FPGA,信息就会保存
3.1 第一个工程——多数表决器

3 多数表决器的Verilog HDL源文件创建

添加文件点击“Next”3.1 第一个工程——多数表决器
点击创建文件最后点击“filsh”
3.1 第一个工程——多数表决器
定义模块,(也可以直接在文档中写)定义完后,点击“ok”
3.1 第一个工程——多数表决器

4 多数表决器的Verilog HDL代码实现及RTL分析

编辑源文件
3.1 第一个工程——多数表决器
3.1 第一个工程——多数表决器

编辑源代码

module v_dsbjq(
    input a,
    input b,
    input c,
    output f
    );
    assign f=a&b|a&c|b&c; //f=ab+ac+bc
endmodule

RTL分析
3.1 第一个工程——多数表决器

5 仿真

3.1 第一个工程——多数表决器
3.1 第一个工程——多数表决器
3.1 第一个工程——多数表决器
仿真代码

`timescale 1ns / 1ps
module sim_asbjq(   );
//module sim_asbjq;//也可以不需要括号
reg a,b,c; 
wire f;

v_dsbjq uut(
a,
b,
c,
f 
); 

initial begin 
a=0;b=0;c=0; 
end
always #10 {a,b,c}={a,b,c}+1; 
endmodule

或者也可以添加端口,实例名可以改变,例化的顺序可以变

`timescale 1ns / 1ps
module sim_asbjq;//也可以不需要括号
reg i_a,i_b,i_c; 
wire f;

v_dsbjq ut(
.a(i_a),
.b(i_b),
.c(i_c),
.f 
); 

initial begin 
i_a=0;i_b=0;i_c=0; 
end
always #10 {i_a,i_b,i_c}={i_a,i_b,i_c}+1; 
endmodule

3.1 第一个工程——多数表决器
仿真,选择行为仿真
3.1 第一个工程——多数表决器

6 约束

实现之前一定要有约束文件,综合可以不需要
3.1 第一个工程——多数表决器
3.1 第一个工程——多数表决器
约束文件代码

## Switches
set_property PACKAGE_PIN F3 [get_ports a]
set_property IOSTANDARD LVCMOS33 [get_ports a] 
set_property PACKAGE_PIN H4 [get_ports b]
set_property IOSTANDARD LVCMOS33 [get_ports b] 
set_property PACKAGE_PIN N4 [get_ports c]
set_property IOSTANDARD LVCMOS33 [get_ports c]
##led
set_property PACKAGE_PIN E3 [get_ports f] 
set_property IOSTANDARD LVCMOS33 [get_ports f]

3.1 第一个工程——多数表决器

7 综合

综合方法二选一
3.1 第一个工程——多数表决器

8 实现

可以在综合之后,实现,也可以在左边窗口打开
3.1 第一个工程——多数表决器
F3和H4均为约束文件中的引脚
3.1 第一个工程——多数表决器
此时的电路图
3.1 第一个工程——多数表决器

9 比特流文件生成

在综合和实现完成之后,就可以生成比特流文件了,比特流文件有两种类型,bit文件用于调试,bin文件用于最终下载到实验板的flsah芯片,每次上电后对会根据flsah中的内容对FPGA进行配置。
下方会显示内容
3.1 第一个工程——多数表决器
3.1 第一个工程——多数表决器
生成的比特文件在工程下的\pro_dsbjq\pro_dsbjq.runs\impl_1
3.1 第一个工程——多数表决器

10 下载和测试

连接开发板,使用硬件管理器连接硬件 auto connect
3.1 第一个工程——多数表决器
使用硬件管理器 Program Device,选择需要的v_dsbjq.bit下载
3.1 第一个工程——多数表决器
运行效果
3.1 第一个工程——多数表决器
3.1 第一个工程——多数表决器

11 下载到FLASH

在下载运行后,关闭电路板电源,再打开电源,无论怎么设置拨码开关位置LED都不会亮。
这时因为下载采用的是JTAG调试模式,只能进行验证,并没有将代码下载到FLASH。
要下载到FLASH,首先需要加载存储设备。点击流程导航窗口编程和调试(Program and Debug) 项下的增加配置内存设备(Add Configuration Memory Device)。
3.1 第一个工程——多数表决器
1.进入配置存储设备窗口
2.选择配置文件,注意可以下载到FLASH的是BIN文件
3.之后按OK进行下载,下载后重启或断电,可以看到芯片已经成功配置。文章来源地址https://www.toymoban.com/news/detail-441112.html

到了这里,关于3.1 第一个工程——多数表决器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FPGA实验报告 Verilog HDL:7人表决器 巴克码信号发生器 FPGA数字时钟

    写在前面:本文提供以下三个任务的思路讲解和代码实现, 如需参考引脚配置说明,可以点击下方链接跳转查看完整实验报告 ;本实验使用的是Altera公司的cycloneⅢ类型的芯片。 Verilog HDL实现:7人表决器 信号发生器 多功能数字时钟 实验目标:实现7人投票表决电路,支持人

    2024年02月05日
    浏览(49)
  • hadoop3.3.1单机版环境搭建详细流程记录

    安装vim即可; 按“o”进入编辑模式; 编辑完内容后,“esc”--“:”--\\\"wq\\\"--回车,执行保存并退出。 点\\\"i\\\"或者\\\"o\\\"进入编辑模式; 编辑完后,点\\\"Esc\\\"--\\\":\\\"--\\\"wq\\\",回车,保存退出。 生成公钥和私钥;(一直点下去即可) 授权是单向的; 8.1、方法一: 进入 ~/.ssh 目录下,查看生成

    2024年02月09日
    浏览(47)
  • 逸学Docker【java工程师基础】3.1安装Jenkins

    1.下载镜像 docker pull jenkins/jenkins:lts 2.运行容器 docker run -d -u root -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home -v /etc/localtime:/etc/localtime --name jenkins jenkins/jenkins:lts  3.要启动名为  jenkins  的 Docker 容器 docker start jenkins 4.查看容器 docker ps -a 5. 查看密码 docker logs 3里的CONTAIN

    2024年01月17日
    浏览(43)
  • 【C++】iota函数 + sort函数实现基于一个数组的多数组对应下标绑定排序

    目录 一、iota函数 1. 函数解析 ​①  迭代器类型(补充) ② 头文件 ③  参数 2. 函数用途与实例 二、sort函数 1、 函数解读 2、实现倒序排列 2.1 greater 与 less 模板参数 2.2  lambda表达式 三、下标绑定排序(zip) --- 833.字符串中的查找与替换 ①  迭代器类型(补充) ForwardIterator :

    2024年02月12日
    浏览(56)
  • 【小程序】快来开发你的第一个微信小游戏(详细流程)

    🥳 作者:伯子南 😎 坚信: 好记性不如乱笔头,独乐乐不如众乐乐 💪 个人主页:https://blog.csdn.net/qq_34577234?spm=1010.2135.3001.5421 👬🏻 觉得博主文章不错的话,请三连支持一下!如有需要我的支持,请私信! 本文通过开发一个简单的小游戏,来带领大家实操一下开发小游戏

    2024年02月03日
    浏览(101)
  • 【JavaScript】3.1 项目实践:制作一个简单的网页应用

    在此章节中,我们将学习如何使用JavaScript创建一个简单的网页应用。这将是一个待办事项列表应用,用户可以添加新的待办事项,标记已完成的事项,以及删除事项。通过这个项目,我们将学习如何使用JavaScript操作DOM,处理事件,以及使用localStorage进行数据存储。 我们的待

    2024年02月05日
    浏览(45)
  • 《网络安全》- 3.1 - Redis数据库详细教程

    「作者简介」: CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「订阅专栏」: 此文章已录入专栏《网络安全入门到精通》

    2023年04月08日
    浏览(42)
  • webpack安装和使用及超详细配置一个基本vue项目的全部流程(包括路由、less、引入图片渲染)

    webpack官网: https://webpack.docschina.org/concepts/ 一:搭建一个简单的webpack项目 1:准备工作 需要在node环境才能使用webpack,所以需要先安装node,安装node请自行百度。dddd 如图,我这里使用的是14.17.0版本的 2:初始化项目 首先创建一个文件夹,这里我的命名是myWebpack,然后使用n

    2024年02月02日
    浏览(42)
  • 【LeetCode】每日一题&最后一个单词的长度&投票法求解多数元素&异或操作符巧解只出现一次的数字&整数反转

    ========================================================================= 个人主页直达: 小白不是程序媛 LeetCode系列专栏: LeetCode刷题掉发记 ========================================================================= 目录 LeetCode 58.最后一个单词的长度 LeetCode169.多数元素 LeetCode 136.出现一次的数字 LeetCode 7.整数

    2024年02月08日
    浏览(48)
  • 用户登录前后端开发(一个简单完整的小项目)——SpringBoot与session验证(带前后端源码)全方位全流程超详细教程

    🧸注:不要看我的文件多,那是我的其他项目,这个项目所用的文件我会全部用红框框起来,没框的部分不用管,前端两个文件,后端一个文件 📜 🧸欢迎来到dream_ready的博客,📜相信你对这篇博客也感兴趣o (ˉ▽ˉ;) 表白墙/留言墙 —— 初级SpringBoot项目,练手项目前后

    2024年02月06日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包