【FPGA】Verilog:组合电路设计 | 三输入 | 多数表决器

这篇具有很好参考价值的文章主要介绍了【FPGA】Verilog:组合电路设计 | 三输入 | 多数表决器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:本章内容主要是演示Vivado下利用Verilog语言进行电路设计、仿真、综合和下载的示例:表决器(三人表决器)。

【FPGA】Verilog:组合电路设计 | 三输入 | 多数表决器

  • 功能特性: 采用 Xilinx Artix-7 XC7A35T芯片 
  • 配置方式:USB-JTAG/SPI Flash
  • 高达100MHz 的内部时钟速度 
  • 存储器:2Mbit SRAM   N25Q064A SPI Flash(样图旧款为N25Q032A)
  • 通用IO:Switch :x8LED:x16Button:x5DIP:x8   通用扩展IO:32pin
  • 音视频/显示: 7段数码管:x8 VGA视频输出接口 Audio音频接口 
  • 通信接口:UART:USB转UART   Bluetooth:蓝牙模块 
  • 模拟接口: DAC:8-bit分辨率   XADC:2路12bit 1Msps ADC

目录

 Ⅰ. 前置知识

0x00 表决器

0x01 真值表表示

0x02 卡诺图表示

0x03 逻辑表达式:

Ⅱ. Verilog实现

0x00 新建工程并添加的IP包

0x01 利用IP器件创建电路

0x02 Test Bench——添加仿真激励文件

0x03 仿真记录与分析 

 Ⅲ. 解释说明


 Ⅰ. 前置知识

0x00 表决器

以三人表决器为例说明多人表决电路的原理。

设三人表决器中输入为A、B、C,同意用1表示,不同意用0表示。输出为F,A、B、C三者中多数同意,提案通过,否则提案不被通过;通过用1表示,不通过用0表示。

0x01 真值表表示

输入

输出

A

B

C

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

0x02 卡诺图表示

【FPGA】Verilog:组合电路设计 | 三输入 | 多数表决器

0x03 逻辑表达式

 过程:写输出表达式即把输出结果为一的输入相加。如上F的一的有四个,把结果为一对应的输入写出即可,再化简,可通过卡诺图以及逻辑表达式化简。

可用狄摩根律转化为与非形式

若此步有不清楚的可留言

【FPGA】Verilog:组合电路设计 | 三输入 | 多数表决器

Ⅱ. Verilog实现

在本次Verilog实现表决器的功能中,我们学习如何利用他人封装好的组件型IP器件进行设计,故选择为工程添加所需IP包的方法。

0x00 新建工程并添加的IP包

在工程settings中IP的Repository中选择所需IP包的存放目录

【FPGA】Verilog:组合电路设计 | 三输入 | 多数表决器

点击Select,在图所示对话框中点击ok

【FPGA】Verilog:组合电路设计 | 三输入 | 多数表决器

Repositories自动更新如图:

【FPGA】Verilog:组合电路设计 | 三输入 | 多数表决器

点击OK完成IP包的添加

0x01 利用IP器件创建电路

点击Flow Navigator中的IP INTEGRATOR下Create Block Design,为电路设计命名:

【FPGA】Verilog:组合电路设计 | 三输入 | 多数表决器

 点击OK后工程自动更新至如图:

【FPGA】Verilog:组合电路设计 | 三输入 | 多数表决器

 在Diagram窗中点击【FPGA】Verilog:组合电路设计 | 三输入 | 多数表决器按钮,添加IP器件。

根据原理中的F=AB+BC+CA,本实验添加两种基本器件:AND和OR,

如图:

【FPGA】Verilog:组合电路设计 | 三输入 | 多数表决器【FPGA】Verilog:组合电路设计 | 三输入 | 多数表决器

完成后Design窗自动更新至下图效果:

【FPGA】Verilog:组合电路设计 | 三输入 | 多数表决器

 在Diagram窗,完成器件添加

之后添加基本引脚:

【FPGA】Verilog:组合电路设计 | 三输入 | 多数表决器

 增加输入引脚3个,命名自拟

可以为A、B、C,输出1个,可以命名为F。

完成连线,如图:

【FPGA】Verilog:组合电路设计 | 三输入 | 多数表决器

 点击【FPGA】Verilog:组合电路设计 | 三输入 | 多数表决器检查布线的正确性

另外,可点击【FPGA】Verilog:组合电路设计 | 三输入 | 多数表决器可以自动优化布线,但这一步并不是必须的

可得出下图:

【FPGA】Verilog:组合电路设计 | 三输入 | 多数表决器

 点击【保存】按钮,保存电路设计文件:

【FPGA】Verilog:组合电路设计 | 三输入 | 多数表决器

在Sources栏可以看到新增的文件如图:

【FPGA】Verilog:组合电路设计 | 三输入 | 多数表决器

 点击该新增文件,如图:

【FPGA】Verilog:组合电路设计 | 三输入 | 多数表决器

点击Create HDL Wrapper菜单。利用默认项,可让Vivado自动生成代码,如图:

【FPGA】Verilog:组合电路设计 | 三输入 | 多数表决器

Source栏会自动更新至如图效果:

【FPGA】Verilog:组合电路设计 | 三输入 | 多数表决器

0x02 Test Bench——添加仿真激励文件

`timescale 1ns / 1ps
module sim4Second( );
reg inA;reg inB;reg inC;
wire outF;
IPdesign_Second_wrapper test(.A(inA),.B(inB),.C(inC),.F(outF));
always begin
            inA = 0;inB = 0;inC=0;   #100;
            inA = 0;inB = 0;inC=1;   #100;
            inA = 0;inB = 1;inC=0;   #100;
            inA = 0;inB = 1;inC=1;   #100;
            inA = 1;inB = 0;inC=0;   #100;           
            inA = 1;inB = 0;inC=1;   #100;
            inA = 1;inB = 1;inC=0;   #100;
            inA = 1;inB = 1;inC=1;   #100;
        end
endmodule

0x03 仿真记录与分析 

【FPGA】Verilog:组合电路设计 | 三输入 | 多数表决器

输入

输出

周期

时间

A

B

C

F

1

0-100ns

0

0

0

0

2

100ns-200ns

0

0

1

0

3

200ns-300ns

0

1

0

0

4

300ns-400ns

0

1

1

1

5

400ns-500ns

1

0

0

0

6

500ns-600ns

1

0

1

1

7

600ns-700ns

1

1

0

1

8

700ns-800ns

1

1

1

1

 Ⅲ. 解释说明

本篇博客旨在学习如何利用他人封装好的组件型IP器件进行设计,从而理解在vivado中,Block Design仅仅是用以设计的直观,最终还是需要生成Verilog等硬件描述语言后才能进一步完成后续设计。

同时,本实验中,生成的IPdesign_Second_wrapper这个module其实是调用了IPdesign_Second,这种调用属于模块化设计方法,因此仿真激励文件中语句IPdesign_Second_wrapper test(参数); 其实信号会继续传递给IPdesign_Second 子模块; 请在仿真界面中调出不同模块的引脚波形进行观察理解。

若不使用导入IP包的方法,设计文件可书写如下:

`timescale 1 ps / 1 ps

module design_1_wrapper(A,B,C,F);
  input A;
  input B;
  input C;
  output F;

  wire A;
  wire B;
  wire C;
  wire F;

  design_1 design_1_i (.A(A),.B(B), .C(C),.F(F));
endmodule

【FPGA】Verilog:组合电路设计 | 三输入 | 多数表决器文章来源地址https://www.toymoban.com/news/detail-405314.html

到了这里,关于【FPGA】Verilog:组合电路设计 | 三输入 | 多数表决器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【FPGA】Verilog:时序电路设计 | 二进制计数器 | 计数器 | 分频器 | 时序约束

    【FPGA】Verilog:时序电路设计 | 二进制计数器 | 计数器 | 分频器 | 时序约束

    前言: 本章内容主要是演示Vivado下利用Verilog语言进行电路设计、仿真、综合和下载 示例:计数器与分频器   ​​ 功能特性: 采用 Xilinx Artix-7 XC7A35T芯片  配置方式:USB-JTAG/SPI Flash 高达100MHz 的内部时钟速度  存储器:2Mbit SRAM   N25Q064A SPI Flash(样图旧款为N25Q032A) 通用

    2024年02月02日
    浏览(15)
  • 【FPGA】Verilog:时序电路设计 | 自循环移位寄存器 | 环形计数 | 扭环计数 | 约翰逊计数器

    【FPGA】Verilog:时序电路设计 | 自循环移位寄存器 | 环形计数 | 扭环计数 | 约翰逊计数器

    前言: 本章内容主要是演示Vivado下利用Verilog语言进行电路设计、仿真、综合和下载 示例:计数器   ​​ 功能特性: 采用 Xilinx Artix-7 XC7A35T芯片  配置方式:USB-JTAG/SPI Flash 高达100MHz 的内部时钟速度  存储器:2Mbit SRAM   N25Q064A SPI Flash(样图旧款为N25Q032A) 通用IO:Switch :

    2024年02月10日
    浏览(97)
  • 数字电路实验一 组合逻辑电路的设计预实验报告

    数字电路实验一 组合逻辑电路的设计预实验报告

                                    ---用与非门74LS00,74LS20设计制作一个三人表决电路 (验证性实验) 1.查资料画出74ls00和74ls20芯片引脚图排列图,画出逻辑符号,掌握逻辑功能。 2.组合逻辑设计的一般步骤?用74LS00和74LS20设计制作一个三人表决电路(即3个人中有

    2023年04月25日
    浏览(14)
  • 组合逻辑电路设计---多路选择器

    组合逻辑电路设计---多路选择器

    目录 1、多路选择器简介 2、硬件设计 3、实验任务 4、程序设计 4.1、模块设计 4.2、绘制波形图 4.3、编写代码 (1)assign 中条件运算符(三目运算符)实现方法: (2)always 语句块中使用 if-else 实现方法: (3)always 语句块中使用 case 语句的方法: 4.4、仿真验证 4.4.1、编写

    2024年02月11日
    浏览(8)
  • 组合逻辑电路的分析与设计

    逻辑电路分为2大类,一类是组合逻辑电路,一类是时序逻辑电路 组合逻辑电路的特点:电路中任一时刻的稳态输出仅仅取决于该时刻的输入,而与电路原来的状态无关。组合电路没有记忆功能,只有从输入到输出的通路,没有从输出到输入的通路。 一,组合逻辑电路的分析

    2024年02月11日
    浏览(6)
  • 【实验六】组合逻辑电路的设计

    【实验六】组合逻辑电路的设计

       

    2024年02月10日
    浏览(8)
  • 基于Verilog设计的复位电路设计

    基于Verilog设计的复位电路设计

    复位指的是将寄存器中的值全部置成默认值,一般复位包括同步复位和异步复位,复位可以由硬件开关控制,也可以由软件逻辑控制。复位电路复杂是因为复位本身是对大规模的硬件单元进行一种操作,必须要结合底层的设计来考虑问题。 相信大家在学习 FPGA 或者 ASIC 的时候

    2024年02月02日
    浏览(13)
  • 【【Verilog典型电路设计之log函数的Verilog HDL设计】】

    【【Verilog典型电路设计之log函数的Verilog HDL设计】】

    log函数是一种典型的单目计算函数,与其相应的还有指数函数、三角函数等。对于单目计算函数的硬件加速器设计一般两种简单方法:一种是查找表的方式;一种是使用泰勒级数展开成多项式进行近似计算。这两种方式在设计方法和精确度方面有很大的不同。查找表方式是通过

    2024年02月11日
    浏览(13)
  • 用译码器来设计组合逻辑电路

    用译码器来设计组合逻辑电路

     三线到八线:输入端只有三个所以只能是三变量  我们先来看书上的一个例子  设计的过程第一步 将函数表达式整理成最小项和的形式 我们用来举例,不是最小项的形式 三变量函数可以用三变量的最小项来表示  为了看的更清楚,我们写成 最小项的编号 ,这样子更好看

    2024年02月08日
    浏览(33)
  • Verilog学习笔记(3):Verilog数字逻辑电路设计方法

    Verilog学习笔记(3):Verilog数字逻辑电路设计方法

    例:用Verilog设计模256(8bits)计数器 (a)可综合程序描述方式 (b)常见的错误描述方式 同时Verilog的电路描述方式具有多样性,这也决定了对于电路设计的多样性。 例:用Verilog设计数字多路选择器 (a)采用真值表形式的代码 (b)采用逻辑表达式形式的代码 (c)采用结

    2023年04月08日
    浏览(16)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包