当前位置:网站首页>数字IC手撕代码--投票表决器
数字IC手撕代码--投票表决器
2022-07-02 13:24:00 【FPGA硅农】
题目
设计一个投票表决器,输入为一个5bit的向量,为1表示赞同,为0表示不赞同,当赞同人数大于非赞同人数时,表决器输出为1,否则为0。
思路:一种方法是统计向量中1的个数,若大于等于3,则输出1,否则输出0。另一种方法是考虑所有可能的情况,事实上,只要有三个位的值为1,则表决器就输出1,因此可据此进行枚举( C 5 3 = 10 C_5^3=10 C53=10),得到最终的结果。
代码
`timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 2022/07/01 15:19:05
// Design Name:
// Module Name: top
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//
module top(
input logic clk,
input logic rst,
input [4:0] vote,
output logic r1,
output logic r2
);
//1
[email protected](posedge clk,posedge rst)
if(rst)
r1<=0;
else
r1<=(vote[0]&vote[1]&vote[2])
|(vote[0]&vote[1]&vote[3])
|(vote[0]&vote[1]&vote[4])
|(vote[0]&vote[2]&vote[3])
|(vote[0]&vote[2]&vote[4])
|(vote[0]&vote[3]&vote[4])
|(vote[1]&vote[2]&vote[3])
|(vote[1]&vote[2]&vote[4])
|(vote[1]&vote[3]&vote[4])
|(vote[2]&vote[3]&vote[4]);
//2
logic s1;
logic c1;
logic s2;
logic c2;
logic [2:0] sum;
assign {
c1,s1}=vote[0]+vote[1]+vote[2];
assign {
c2,s2}=vote[3]+vote[4];
assign sum={
c1,s1}+{
c2,s2};
[email protected](posedge clk,posedge rst)
if(rst)
r2<=0;
else if(sum>=3)
r2<=1;
else
r2<=0;
endmodule
测试平台
module test;
logic clk;
logic rst;
logic [4:0] vote;
logic r1;
logic r2;
logic error;
//clk
initial
begin
clk=0;
forever
#5 clk=~clk;
end
//rst
initial
begin
rst=1;
#100
rst=0;
end
//
[email protected](posedge clk,posedge rst)
if(rst)
vote<=0;
else
vote<=$urandom%32;
//
assign error=(r1!=r2)?1:0;
top U(.*
/* input logic clk, input logic rst, input [4:0] vote, output logic r1, output logic r2 */
);
endmodule
结果

总结
对于N输入的表决器(N为奇数),我们同样可以采用类似的方法:
1.通过加法器求1的个数,若和大于(N-1)/2,则输出为1
2.枚举这N个输入的(N+1)/2组合(共 C N ( N + 1 ) / 2 C_N^{(N+1)/2} CN(N+1)/2项),然后将它们或起来。
边栏推荐
- Global and Chinese market of desktop hot melt equipment 2022-2028: Research Report on technology, participants, trends, market size and share
- Text intelligent expansion and contraction control of swiftui text component (tutorial includes source code)
- Mathematical analysis_ Notes_ Chapter 6: Riemann integral of univariate function
- PCL point cloud image transformation
- [North Asia data recovery] data recovery case of raid crash caused by hard disk disconnection during data synchronization of hot spare disk of RAID5 disk array
- Yyds dry inventory uses thread safe two-way linked list to realize simple LRU cache simulation
- (practice C language every day) the sum of the nearest three numbers
- unity Hub 登錄框變得很窄 無法登錄
- Effectively use keywords to increase Amazon sales
- Yyds dry goods inventory student attendance system based on QT design
猜你喜欢

sim2real环境配置教程

路由模式:hash和history模式

数学分析_笔记_第5章:一元微分学

外企高管、连续创业者、瑜伽和滑雪高手,持续迭代重构的程序人生

Yyds dry goods inventory hands-on teaching you to carry out the packaging and release of mofish Library (fishing Library)

Kubernetes family container housekeeper pod online Q & A?

La boîte de connexion du hub de l'unit é devient trop étroite pour se connecter

Which software is good for machine vision?

SSM integration exception handler and project exception handling scheme

Interview summary of large factories
随机推荐
mysql min() 求某条件下最小的值出现多个结果
Yyds dry goods inventory has not revealed the artifact? Valentine's Day is coming. Please send her a special gift~
绝对真理和相对真理思考
流批一体在京东的探索与实践
What is the difference between self attention mechanism and fully connected graph convolution network (GCN)?
Where can I open computer administrator permissions
虚假的暑假
总结|机器视觉中三大坐标系及其相互关系
月报总结|Moonbeam6月份大事一览
What is normal distribution? What is the 28 law?
[fluent] dart data type string type (string definition | string splicing | string API call)
Download blender on Alibaba cloud image station
According to the atlas of data security products and services issued by the China Academy of information technology, meichuang technology has achieved full coverage of four major sectors
Global and Chinese markets for carbon dioxide laser cutting heads 2022-2028: Research Report on technology, participants, trends, market size and share
Understand the key technology of AGV -- the difference between laser slam and visual slam
LeetCode 1. Sum of two numbers
PyC file decompile
unity Hub 登錄框變得很窄 無法登錄
How to choose the right kubernetes storage plug-in? (09)
Global and Chinese markets for airport baggage claim conveyors 2022-2028: technology, participants, trends, market size and share Research Report