verilog描述表决器的两种方式简易分析

时间:2023-02-21 15:58:04

命题:设计一个三变量表决器。真值表如下:

verilog描述表决器的两种方式简易分析

可以写出并简化得出公式:F=AB+BC+AC。

以下是两种算法:

第一种:仅从算法方面描述为:A、B、C的和大于1则输出结果为1,否则为0;源码如下:

module vote_c(a,b,c,result);
input a,b,c;
output result;
reg result;
always @(a or b or c or result)
begin
if((a+b+c)>)
result=;
else
result=;
$display("a,b,c,result");
$display("%d,%d,%d,%d",a,b,c,result);
end
endmodule

第二种:采用上面公式描述的组合逻辑。源码如下:

module vote_d(a,b,c,result);
input a,b,c;
output result; assign result=((a&&b)||(b&c)||(a&&c));
always@(a or b or c or result)
begin
$display("a b c result");
$display("%d %d %d %d",a,b,c,result);
end
endmodule

测试平台 modelsim altera 6.5b,测试源码如下:

`timescale 1us/1us
`include "votec.v"
`include"voted.v" module vote_top;
reg a,b,c;
wire result; initial
begin
a=;b=;c=;
# a=;b=;c=;
# a=;b=;c=;
# a=;b=;c=;
# a=;b=;c=;
# a=;b=;c=;
# a=;b=;c=;
# a=;b=;c=;
end
vote_c v1(a,b,c,result);
//vote_d v2(a,b,c,result);
endmodule

得出结果都为:

# a  b  c  result

# 0  0  0    0

# a  b  c  result

# 0  0  1    0

# a  b  c  result

# 0  1  0    0

# a  b  c  result

# 0  1  1    1

# a  b  c  result

# 1  0  0    0

# a  b  c  result

# 1  0  1    1

# a  b  c  result

# 1  1  0    1

# a  b  c  result

# 1  1  1    1

与真值表一致。所以两种方式都是正确的。在quartus II中综合编译后:

第一种的RTL视图如下:

verilog描述表决器的两种方式简易分析

可以看出,该模块综合成两个加法器和一个比较器。

第二种RTL视图如下:

verilog描述表决器的两种方式简易分析

可以看出综合成3个与门和一个或门的组合逻辑电路。

两者在资源消耗方面如下:

verilog描述表决器的两种方式简易分析   verilog描述表决器的两种方式简易分析

可以看出基本没有区别。仿真器应该最后将他们优化成一致了。

verilog描述表决器的两种方式简易分析的更多相关文章

  1. Android实战简易教程-第四十九枪(两种方式实现网络图片异步加载)

    加载图片属于比较耗时的工作,我们需要异步进行加载,异步加载有两种方式:1.通过AsyncTask类进行:2.通过Handler来实现,下面我们就来看一下如何通过这两种方式实现网络图片的异步加载. 一. ...

  2. CSharpGL(18)分别处理glDrawArrays()和glDrawElements()两种方式下的拾取(ColorCodedPicking)

    CSharpGL(18)分别处理glDrawArrays()和glDrawElements()两种方式下的拾取(ColorCodedPicking) 我在(Modern OpenGL用Shader拾取 ...

  3. System.Web.Http.Cors配置跨域访问的两种方式

    System.Web.Http.Cors配置跨域访问的两种方式 使用System.Web.Http.Cors配置跨域访问,众多大神已经发布了很多文章,我就不在详细描述了,作为小白我只说一下自己的使用心 ...

  4. ImageView设置边框的两种方式

    转载:http://www.2cto.com/kf/201308/239945.html package cc.testimageviewbounds; import android.os.Bundl ...

  5. Java并发编程:线程间协作的两种方式:wait、notify、notifyAll和Condition

    Java并发编程:线程间协作的两种方式:wait.notify.notifyAll和Condition 在前面我们将了很多关于同步的问题,然而在现实中,需要线程之间的协作.比如说最经典的生产者-消费者 ...

  6. Hadoop之HDFS文件操作常有两种方式(转载)

    摘要:Hadoop之HDFS文件操作常有两种方式,命令行方式和JavaAPI方式.本文介绍如何利用这两种方式对HDFS文件进行操作. 关键词:HDFS文件    命令行     Java API HD ...

  7. 简介C#读取XML的两种方式

    简介C#读取XML的两种方式 作者: 字体:[增加 减小] 类型:转载 时间:2013-03-03 在程序中访问进而操作XML文件一般有两种模型,分别是使用DOM(文档对象模型)和流模型,使用DOM的 ...

  8. 加载xib文件的两种方式

    一.加载xib文件的两种方式 1.方法一(NewsCell是xib文件的名称) NSArray *objects = [[NSBundle mainBundle] loadNibNamed:@&quo ...

  9. 内核知识第12讲,SSDT表.以用户模式到系统模式的两种方式.

    内核知识第12讲,SSDT表.以用户模式到系统模式的两种方式. 一丶IDT解析. 我们知道.IDT表中存放着各种中断信息.比如当我们调用int 3的时候,则会调用IDT表中的第三项来进行调用. 而函数 ...

随机推荐

  1. SQL Server 变更数据捕获(CDC)

    标签:SQL SERVER/MSSQL SERVER/数据库/DBA/字段/对象更改 概述 变更数据捕获用于捕获应用到 SQL Server 表中的插入.更新和删除活动,并以易于使用的关系格式提供这些 ...

  2. 唯美!分享8款响应式的 WordPress 餐厅主题

    您是否拥有一个餐厅,酒吧,咖啡馆,小酒馆,比萨饼店?如果答案是肯定的,请确保您在网上也提供服务.为了使您的工作更轻松,我们选择了一些新的和独特的餐厅主题,覆盖了范围很广的食品企业.这些主题提供了很多很 ...

  3. 第一章 第一个spring boot程序(转载)

    第一章 第一个spring boot程序 本编博客转发自:http://www.cnblogs.com/java-zhao/p/5324185.html   环境: jdk:1.8.0_73 mave ...

  4. 【Java】对Web Service的理解

    WSDL(Web Service Description Language)是描述Web Service的语言. 你会怎样向别人介绍你的Web service有什么功能,以及每个函数调用时的参数呢?你 ...

  5. 异步提交form的时候利用jQuery validate实现表单验证

    异步提交form的时候利用jQuery validate实现表单验证相信很多人都用过jquery validate插件,非常好用,并且可以通过下面的语句来自定义验证规则    // 电话号码验证    ...

  6. HTML+CSS D08浮动

    1. <html> <head> <title>div浮动</title> <style type="text/css"&gt ...

  7. Android 6&period;0 运行时权限处理问题

    序 自从升级到Android M以来,最大的改变就是增加了运行时权限RuntimePermission,6.0以上的系统如果没有做适配,运行了targetSDK=23的App时就会报权限错误.我们知道 ...

  8. web页面和小程序页面实现瀑布流效果

    小程序实现瀑布流效果,和web页面差不多,都要经过以下步骤: 1).加载图片,获取图片的宽高度: 2).根据页面需要显示几列计算每列的宽度: 3).根据图片真实宽度和每列的宽度比,计算出图片需要显示的 ...

  9. docker学习端口连接docker容器---第四章节

    一.Docker容器连接 前面的第二章节,我们事先通过网络端口来访问运行在docker容器内的服务,我们也可以通过端口连接到一个docker容器 我们可以指定容器绑定的网络地址,如绑定127.0.0. ...

  10. 微信小程序bug记录与解决

    微信小程序bug记录 textarea textarea在模拟器上没有padding,可是在真机上会自带padding,而且在外部改不了,并且在安卓和IOS上padding还不一样 第一张图是在开发工 ...