Verilog HDL语言

Verilog HDL 是一种硬件描述语言(HDL:Hardware Description Language),以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。

任务描述

运用所学的组合逻辑电路的知识完成三人表决器的设计,实现少数服从多数的表决规则,并进行验证测试。熟悉 Verilog HDL 文本设计流程,掌握组合逻辑电路的设计仿真和硬件测试的方法。最后完善一个三人表决器电路的功能描述风格 Verilog HDL 代码。

题目来源

举重比赛有三名裁判,当运动员将杠铃举起后,须有两名或两名以上裁判认可,方可判
定试举成功,若用 A、B、C 分别代表三名裁判的意见输入,同意为 1,否定为 0;F 为裁判
结果输出,试举成功时 F=1,试举失败时 F=0。

实验原理

在三人表决电路中,当表决某个提案时,多数人同意,则提案通过;反之,不通过。
假设 key_1,key_2,key_3 为三个裁判。同意用 1 表示,不同意用 0 表示;输出 LED0 为 1
的时候提案通过;反之,不通过。
1、真值表
A_in B_in C_in F
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1
2、逻辑表达式
F=B_inC_in+A_inC_in+A_inB_in+A_inB_inC_in)
3、逻辑电路图

4、用 Verilog 语言写出该逻辑表达式
F=(B_in&&C_in)||(A_in&&C_in)||(A_in&&B_in)||(A_in&&B_in&&C_in);
在 verilog 语言中,&&代表逻辑与;||代表逻辑或
5、新建工程,将工程名命为:sanrenbiaojue


6、右击,选择 New Source

7、选择 Verilog Module,并命名为 biaojue

8、编写代码

9、运行该程序,检查 RTL 电路

双击放大如下:

10、新建仿真文件
先点击 Simulation

右击,选择 New Source

选择 Verilog Test Fixture,命名为:sanrenbiaojue

编写仿真代码

写完代码,双击 Simulate Behavioral Model

得到如下仿真波形图:

根据上面的波形图我们可以知道,
在 0-100ns 之间,A_in=0,B_in=0,C_in=0,F=0;
在 100ns 时,A_in=0,B_in=0,C_in=1,F=0;
在 120ns 时,A_in=0,B_in=1,C_in=0,F=0;
在 140ns 时,A_in=0,B_in=1,C_in=1,F=1;
在 160ns 时,A_in=1,B_in=0,C_in=0,F=0;
在 180ns 时,A_in=1,B_in=0,C_in=1,F=1;
在 200ns 时,A_in=1,B_in=1,C_in=0,F=1;
在 220ns 时,A_in=1,B_in=1,C_in=1,F=1;
在 220ns 之后一直保持 A_in=1,B_in=1,C_in=1,F=1
换言之,F 只有在 A_in,B_in,C_in,中有两个及两个以上的高电平时输出高电平;否
则,F 输出为低电平。
11、进行引脚标注
选择上方工具栏里面的 Tools,接下来点击 PlanAhead,然后选择第一个,如下图所示:

进入如下界面后,点击红色箭头所指的图标

在 Site 内输入相对应的引脚位置:

根据下表输入:
引脚名 引脚位置
A_in L5
B_in M3
C_in L4
F P6
12、下载到开发板,进行实物实验
首先将开发板与电脑连接,再进行如下步骤
双击 Generate Programming File ,如果显示为绿色的勾勾

双击 Configure Target Device

点击 OK

双击 Boundary Scan

在白色区域内,右击,选择 Add Xilinx Device

找到相对应的.bit 文件,打开

右击上述图片红色箭头指示的位置,选择 Program

六、实验结论
通过本次实验,我熟悉了 ISE 软件的基本操作,掌握了使用 Verilog HDL 描述电路功能
的编写,学习组合逻辑电路的设计仿真和测试,熟悉了 EDA 实验的基本流程。
七、实验相关代码及代码解释
module biaojue(
//变量名
A_in,
B_in,
C_in,
F
);
//定义输入输出变量
input A_in;
input B_in;
input C_in;
output F;//在这里将 F 默认定义为 wire 类型
assign F=(A_in&&B_in)||(A_in&&C_in)||(B_in&&C_in)||(A_in&&B_in&&C_in);//对
wire 类型变量 F 赋值用 assign 语句
endmodule
仿真测试代码:
module biaojueqi;
// Inputs
reg A_in;
reg B_in;
reg C_in;
// Outputs
wire F;
// Instantiate the Unit Under Test (UUT)
biaojue uut (
.A_in(A_in),
.B_in(B_in),
.C_in(C_in),
.F(F)
);
initial begin
// Initialize Inputs
A_in = 0;
B_in = 0;
C_in = 0;
// Wait 100 ns for global reset to finish
#100;
A_in = 1;
B_in = 0;
C_in = 0;
#20
A_in = 1;
B_in = 1;
C_in = 0;
#20
A_in = 0;
B_in = 1;
C_in = 0;
#20
A_in = 0;
B_in = 1;
C_in = 1;
// Add stimulus here
#20
A_in = 1;
B_in = 1;
C_in = 1;
#20
A_in = 0;
B_in = 0;
C_in = 1;
end
endmodule

基于FPGA的三人表决器设计相关推荐

  1. 基于FPGA的遥控数字时钟设计

    基于FPGA的遥控数字时钟设计报告 ​ ​ Author:张宏宇 摘要 ​ 数字时钟是一种通过数字显示时间的计时装置,本次项目采用Cyclone Ⅳ系列芯片,使用QuartusII开发环境,使用Ver ...

  2. 简谈基于FPGA的千兆以太网设计

    简谈基于FPGA的千兆以太网设计 今天给大侠带来简谈基于FPGA的千兆以太网设计,话不多说,上货. 今天我们来简单的聊一聊以太网,以太网在FPGA学习中属于比较高级的内容了,有些大侠肯定会感觉以太网学 ...

  3. 基于 FPGA 的数字抢答器设计

    下面是基于 FPGA 的数字抢答器设计,在quartusII下,modelsim下仿真,编程语言VHDL.   1.抢答器的工作原理 主持人宣布可以抢答后,在 20s 的定时时间内若有人按键抢答,则这 ...

  4. 三人表决器_数电小实验之三人表决器

    数电小实验 20级会员们的模电实验已经结束了,他们的培训计划已经从模电实验进行到了数电实验.他们将学习到一个新的知识--逻辑电路. 接下来让我们一起深入了解本次任务吧! 实验:三人表决器的设计和搭建 ...

  5. 基于FPGA的VGA/LCD显示控制器设计(中)

    今天给大侠带来基于FPGA的VGA/LCD显示控制器设计,由于篇幅较长,分三篇.今天带来第二篇,中篇,VGA 显示原理以及VGA/LCD 显示控制器的基本框架,话不多说,上货. 之前也有图像处理以及V ...

  6. 用C++写一个三人表决器

    昨天离散数学老师布置了一道编程题: 设计并编程实现一个3人表决开关电路.设三个裁判分别为A.B.C,有两个及以上裁判同意,则通过表决:否则,未通过表决.同意与否通过键盘输入,可以用0.1或T.F表示. ...

  7. 小数分频器vhdl实现_基于FPGA的小数分频器的设计与实现.doc

    基于FPGA的小数分频器的设计与实现.doc 基于FPGA的小数分频器的设计与实现 [摘要]本文首先分析了现有小数分频器的优缺点,在此基础上提出了一种改进型小数分频器的设计方法.同时结合VHDL文本输 ...

  8. 基于FPGA的智力抢答器设计

    配套FPGA开发板(含该设计的工程代码):https://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-4676525296.4.6e8950ed57YPh ...

  9. 基于FPGA的USB接口控制器设计(VHDL)(中)

    今天给大侠带来基于 FPGA 的 USB 接口控制器设计(VHDL),由于篇幅较长,分三篇.今天带来第二篇,中篇,USB通信原理.USB 系统开发以及设计实例.话不多说,上货. 之前有关于 Veril ...

  10. HNU工训中心: 三人表决器及八人抢答器实验报告

    工训中心的牛马实验 三人表决器: 实验目的 1) 辨识数字IC功能说明. 2) 测试数字集成门电路,掌握输出故障排除.使用注意事项. 3) 掌握逻辑函数搭建三人表决器. 2.实验资源 HBE硬件基础电 ...

最新文章

  1. iPhone How-to:如何调整UIView的Z-Order
  2. LeetCode 438. Find All Anagrams in a String--字符串-滑动窗口--C++,Python解法
  3. 编写wordcount程序
  4. Mac 下安装 Python-OpenCV Python-OpenCV 处理图像(一):基本操作
  5. JustOj 1032: 习题6.7 完数
  6. axure html 360安装扩展,小编搞定win7系统360浏览器添加Axure扩展的设置方案
  7. mysql锁表与不锁表设置主从复制的方法
  8. 天津联通集中备份系统应用
  9. 微信小程序文件下载---视频,图片。
  10. LINUX下载编译libx264
  11. 近景摄影测量 matlab,近景摄影测量 3.ppt
  12. (计算机组成原理)第三章存储系统-第六节2:页式/段式虚拟存储器
  13. 如何在word(非wps)里面插入公式和编号(完美格式)
  14. 图书管理系统——用例图、类图、时序图
  15. 急!有谁知道如何截获WebBrowser控件的 ie脚本错误提示 吗?
  16. 信创操作系统--麒麟Kylin桌面操作系统 (项目十二 使用Systemd管理系统服务)
  17. 程序员的插画成长之路并不平坦
  18. Java、JSP大阳电动车销售系统的设计与实现
  19. ubuntu中使用root权限复制粘贴文件
  20. nginx日志格式配置

热门文章

  1. 图片合并及生成二维码
  2. mapper.xml中注释问题
  3. 唐宇迪数据分析学习笔记
  4. 九度-题目1103 二次方程计算器
  5. UG12.0运动仿真分析基础到精通视频教程
  6. 一款 redis客户端工具RedisDesktopManager的安装和使用
  7. hive与mysql对比之max、group by、日志分析
  8. 记录一次众测平台邀请码获取
  9. 关于摄像头的UVC协议接口!
  10. 不再被日报月报折磨!一键生成报表模板的神器来了