3.1 第一个工程——多数表决器
多数表决器
- 1 多数表决器的分析和逻辑实现
- 2 多数表决器的工程创建
- 3 多数表决器的Verilog HDL源文件创建
- 4 多数表决器的Verilog HDL代码实现及RTL分析
- 5 仿真
- 6 约束
- 7 综合
- 8 实现
- 9 比特流文件生成
- 10 下载和测试
- 11 下载到FLASH
详细流程见:Vivado FPGA基础设计操作流程
该文档的MOOC的视频教程
1 多数表决器的分析和逻辑实现
有什么样的输入,就有什么样的输出,数字电路的输出只依赖于当前输入值的组合,这样的电路称为组合逻辑电路。
例如f=ab+ac
第一个工程使用FPGA实现一个简单的组合逻辑电路。
题目:假设有三个举重裁判,举重选手完成比赛后,当有多数裁判认定成功,则成功;否则失败。请设计此举重裁决电路。这个举重裁决电路实际上就是一个三输入的多数表决器。
假设多数表决器的三个输入分别是a、b、 c,输出是f。
根据问题的描述,填写真值表得到最小项表达式f = ∑abc(3,5,6,7)。
填写卡诺图进行化简得f=ab+bc+ac
2 多数表决器的工程创建
打开VIVADO并新建工程
工程类型设置
工程器件选择
创建后的工程,此时,保存工程的文件夹是空的
工程设置,设置后,文件下载到flash,每次上电,信息就会从flash到FPGA,信息就会保存
3 多数表决器的Verilog HDL源文件创建
添加文件点击“Next”
点击创建文件最后点击“filsh”
定义模块,(也可以直接在文档中写)定义完后,点击“ok”
4 多数表决器的Verilog HDL代码实现及RTL分析
编辑源文件
编辑源代码
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分析
5 仿真
仿真代码
`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
仿真,选择行为仿真
6 约束
实现之前一定要有约束文件,综合可以不需要
约束文件代码
## 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]
7 综合
综合方法二选一
8 实现
可以在综合之后,实现,也可以在左边窗口打开
F3和H4均为约束文件中的引脚
此时的电路图
9 比特流文件生成
在综合和实现完成之后,就可以生成比特流文件了,比特流文件有两种类型,bit文件用于调试,bin文件用于最终下载到实验板的flsah芯片,每次上电后对会根据flsah中的内容对FPGA进行配置。
下方会显示内容
生成的比特文件在工程下的\pro_dsbjq\pro_dsbjq.runs\impl_1
10 下载和测试
连接开发板,使用硬件管理器连接硬件 auto connect
使用硬件管理器 Program Device,选择需要的v_dsbjq.bit下载
运行效果
11 下载到FLASH
在下载运行后,关闭电路板电源,再打开电源,无论怎么设置拨码开关位置LED都不会亮。
这时因为下载采用的是JTAG调试模式,只能进行验证,并没有将代码下载到FLASH。
要下载到FLASH,首先需要加载存储设备。点击流程导航窗口编程和调试(Program and Debug) 项下的增加配置内存设备(Add Configuration Memory Device)。
1.进入配置存储设备窗口
2.选择配置文件,注意可以下载到FLASH的是BIN文件
3.之后按OK进行下载,下载后重启或断电,可以看到芯片已经成功配置。
3.1 第一个工程——多数表决器相关推荐
- Annotation 的第一个工程
一.什么是 Annotation? java.lang.annotation,接口 Annotation.对于Annotation,是Java5的新特性,JDK5引入了Metadata(元数据)很容易 ...
- 上海交通大学软件学院2005学年度第一学期工程硕士课程安排表
上海交通大学软件学院 2005学年度第一学期工程硕士课程安排表 课程名称 教师 课时 教材 教室 日期安排 备注 基础英语 周六上午 工程馆311 8:00-11:00 自然辩证法 周六下午 ...
- hibernate 的第一个工程
一.什么是Hibernate? Hibernate 是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hiber ...
- STM32入门指南(1)—新建第一个工程
STM32入门指南(1)-新建第一个工程 文章目录 STM32入门指南(1)-新建第一个工程 STM32CubeMX配置 选择芯片 配置 IO 和其他功能 配置时钟 配置工程属性 生成代码 MDK编辑 ...
- AndroidStudio的下载、安装、第一个工程运行
写在前边 现在的时间:2018-10-2 AndroidStudio版本:3.2 操作系统:Windows10专业版 AndroidStudio的下载 下载地址:https://developer. ...
- 工程经济学第一章工程经济学概述笔记
工程经济学第一章工程经济学概述 1.1.1 工程与经济的概念 1. 工程的概念 工程不同于科学,也不同于技术. 科学本质上属于认识世界的范畴.科学是人类探索自然和社会现象并取得认识的过程和结果.这 里 ...
- 《Zedboard》第一个工程helloworld
文章目录 打开VIVADO后 点击创建工程(Create Project) 在进入工程创建引导窗口后,按照官方教程中第一个工程进行如下配置. 需要注意的地方都已经用红色框框圈住. 其中 Project ...
- python27怎么新建项目_Ren'Py引擎从入门到放弃(2) —— 成功创建第一个工程
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区. 您需要 登录 才可以下载或查看,没有帐号?立即注册 x 本帖最后由 BuErShen 于 2019-6-28 18:49 编辑 Ren'Py引 ...
- Android的第一个工程,Android Things:撸起袖子来创建第一个Things工程
在前面的章节,我们利用官方的sample-simplepio项目的blink模块,给大家演示了如何导入和运行现成的Android Things工程.那么这个章节,我们来手把手的给大家演示,如何从零开始 ...
最新文章
- 谷歌把安全融入主机芯片
- 提高ASP.NET应用程序性能的几招方法
- war和war exploded区别
- MVVM实践中的Command与CommandParameter的使用
- easyui中获取getEditor为空情况
- nginx 并发过十万
- linux mint 19界面美化,安装完 LinuxMint 19.3 后必做的10件事
- 2008秋-计算机软件基础-第三章- 二叉排序树
- 京东宙斯php版本sdk不能用_多主机平台玩家的福音,北通宙斯T6精英版体验测评...
- codeforces 816 E. Karen and Supermarket(树形dp)
- layui横向时间线_操盘线:线上阴线满仓,线下阳线清仓
- oracle sysman 不存在_Oracle数据库中SYS、SYSTEM、DBSNMP、SYSMAN四用户的区别
- 美国人如何看待超自然?
- window10无法访问局域网共享文件夹
- 人脸识别有趣应用3——抠出人脸并给人脸涂上戏剧脸谱
- linux qq x64,QQ Linux 版时隔多年再次更新,支持 x64、ARM64 等多种架构
- win7计算机文件浏览不了,win7系统计算机文件打不开的解决方法
- 风向值与风向描述定义
- 2345浏览器兼容性设置在哪里
- STM32无线通信——nRF24L01通信模块