输入一个8bit数,输出其中1的个数。如果只能使用1bit全加器,最少需要几个,请使用verilog进行描述?(附verilog代码)
回答:7个。
解释:全加器是full_adder,实现两个二进制相加求和的过程。其中,Ai是被加数,Bi是加数,相邻低位来的进位数是Ci-1,输出本位和是Si,向相邻高位进位数是Ci。
图1:全加器的真值表
下面就8bit数值进行逻辑结果上的梳理:
图2:不同颜色代表不同权重(核心重点)
下面就图2中的逻辑进行代码书写:
Module full_adder(
Input a,
Input b,
Input cin,
Ouput sum,
Output cout
);
Assign {cout,sum} = a + b + cin ;
endmodule
//
module count(
input [7:0] data_in;
output [3:0] data_out;
);
Wire sum_1;
Wire sum_2;
Wire sum_3;
Wire sum_4;
Wire sum_5;
Wire sum_6;
Wire sum_7;
Wire cout_1;
Wire cout_2;
Wire cout_3;
Wire cout_4;
Wire cout_5;
Wire cout_6;
Wire cout_7;full_adder full_adder_inst1 (
.a(data_in[0]),
.b(data_in[1]),
.cin(data_in[2]),
.sum(sum_1),
.cout(cout_1));
full_adder full_adder_inst2 (
.a(data_in[3]),
.b(data_in[4]),
.cin(data_in[5]),
.sum(sum_2),
.cout(cout_2));
full_adder full_adder_inst3 (
.a(sum_1),
.b(sum_2),
.cin(data_in[6]),
.sum(sum_3),
.cout(cout_3));
full_adder full_adder_inst4 (
.a(sum_3),
.b(data_in[7]),
.cin(1’b0),
.sum(sum_4),
.cout(cout_4));
full_adder full_adder_inst5 (
.a(cout_1),
.b(cout_3),
.cin(cout_2),
.sum(sum_5),
.cout(cout_5));full_adder full_adder_inst6 (
.a(sum_5),
.b(cout_4),
.cin(1’b0),
.sum(sum_6),
.cout(cout_6));
full_adder full_adder_inst7 (
.a(cout_5),
.b(cout_6),
.cin(1’b0),
.sum(sum_7),
.cout(cout_7));Endmodule
感谢大家的支持。
输入一个8bit数,输出其中1的个数。如果只能使用1bit全加器,最少需要几个,请使用verilog进行描述?(附verilog代码)相关推荐
- 题目:输入一个8bit数,输出其中1的个数,只能使用1bit全加器
一.思路 全加器(full_adder):是用门电路实现两个二进制数相加并求出和的组合线路,称为一位全加器,一位全加器可以处理低位进位,并输出本位加法进位.多个一位全加器进行级联可以得到多位全加器. ...
- 题目:输入一个8bit数,输出其中1的个数。如果只能使用1bit全加 器,最少需要几个?
题目:输入一个8bit数,输出其中1的个数.如果只能使用1bit全加器,最少需要几个? 7个1bit全加器 module number_one(input clk,input rst_n,input ...
- JAVA实现输入一个整数,输出该数二进制表示中1的个数(《剑指offer》)
题目: 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 这个题目有个比较有意思并且被公认的解法,我就先贴答案吧: public class Solution {public int ...
- 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示
转自http://my.oschina.net/ithaibo/blog/142655 题目: 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 题目引自http://ac.jobdu ...
- c语言学习-输入一个十进制数,输出其对应的八进制数据
输入一个小写字母,输出其对应的大写字母 程序流程图: 代码: #include<stdio.h> void main() {Int a; printf("输入一个十进制数:\n& ...
- C语言输入数字出现相应答案,写一个函数 输入一个十六进制数,输出相应的十进制数。...
C语言写一个函数,输入一个十六进制数,输出相应的十进制数. [c源程序] #include #define MAX 1000 int main() { int htoi(char s[]); int ...
- 第E题 转换任意进制 (java方法直接解)==输入一个十进制数N,将它转换成R进制数输出
输入一个十进制数N,将它转换成R进制数输出. Input 输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10). Outpu ...
- 写一个函数,输入一个十六进制数,输出相应的十进制数。-----(自己编程)
写一个函数,输入一个十六进制数,输出相应的十进制数.基本思路是16进制数以字符串输入,然后经过转变为相应的10进制数,相应的程序如下: #include <stdio.h> #includ ...
- 写一个函数,输入一个十六进制数,输出相应的十进制数
写一个函数,输入一个十六进制数,输出相应的十进制数(C语言) 题目要求:如标题 思路: 十六进制数为:0,1,2,3,4,5,6,7,8,9,A(10),B(11),C(12),D(13),E(14) ...
最新文章
- 程序员成长路上的团队修炼之道
- 解决eclipse报PermGen space异常的问题
- Java中HashMap、LinkedHashMap和TreeMap区别使用场景
- 【Flink】Flink CDH6.3.2 下的yarn per job模式 savepoint和checkpoint,卡住,没有保存成功文件
- tableau 实战练习数据源分享_数据分析实战训练营学习笔记
- socket 通信之 recv函数
- ImageAssitant插件 — 一件提取网页图片
- 一文详解高功率音频放大器的设计准则与诀窍
- navicat 使用ssh连接腾讯云主机mysql数据库(保姆级教程)
- 秦皇岛公积金计算 Python
- 动态链接 lazy binding 的原理与 GOT 表的保留表项
- 温度变送器转换程序c语言,两线制智能温度变送器的设计
- [hihoCoder] 买零食
- 2022年塑料管材市场规模
- 不买NAS搭建私有云盘:虚拟机安装群晖 1-5
- 计算机丢失msvcr110.dll解决办法
- 网络安全态势感知数据集问题
- 【业务自动化】iTop,全面支持ITIL流程的一款ITSM工具
- 【C++ 科学计算】获取矩阵每个元素绝对值大小值
- SketchUp Pro 2022 Mac版草图大师
热门文章
- 九轴传感器姿态----AHRS算法开源项目推荐
- 打印机用计算机名慢,“电脑连上打印机就超级慢”的解决方案
- 深圳一公司在开源社区表示“要源码上门自取”,引来百万粉大V突袭公司,结果让人意外!...
- 情感分析-英文电影评论
- java斗地主发牌_程序员:Java斗地主部分功能实现:创建牌、发牌并按牌id对其排序...
- 【IOT】Thingsboard学习笔记(1):开源IOT平台thingsboard部署-windows平台
- 2022年十大汽车行业新闻
- Mybatis核心配置文件
- 第八篇order订单专题(2)订单通知及属性
- GNU Bison 中文手册