32位CLA

2024-01-03 00:40
文章标签 32 cla

本文主要是介绍32位CLA,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

上代码:

//一位全加器
module adder(X,Y,Cin,F,Cout);input X,Y,Cin;output F,Cout;assign F = X ^ Y ^ Cin;assign Cout = (X ^ Y) & Cin | X & Y;
endmodule /******************4位CLA部件************************/
module CLA(c0,c1,c2,c3,c4,p1,p2,p3,p4,g1,g2,g3,g4);input c0,g1,g2,g3,g4,p1,p2,p3,p4;output c1,c2,c3,c4;assign c1 = g1 ^ (p1 & c0),c2 = g2 ^ (p2 & g1) ^ (p2 & p1 & c0),c3 = g3 ^ (p3 & g2) ^ (p3 & p2 & g1) ^ (p3 & p2 & p1 & c0),c4 = g4^(p4&g3)^(p4&p3&g2)^(p4&p3&p2&g1)^(p4&p3&p2&p1&c0);endmodule //四位并行进位加法器
module adder_4(x,y,c0,c4,F,Gm,Pm);input [4:1] x;input [4:1] y;input c0;output c4,Gm,Pm;output [4:1] F;wire p1,p2,p3,p4,g1,g2,g3,g4;wire c1,c2,c3;adder adder1(.X(x[1]),.Y(y[1]),.Cin(c0),.F(F[1]),.Cout());adder adder2(.X(x[2]),.Y(y[2]),.Cin(c1),.F(F[2]),.Cout());    adder adder3(.X(x[3]),.Y(y[3]),.Cin(c2),.F(F[3]),.Cout());adder adder4(.X(x[4]),.Y(y[4]),.Cin(c3),.F(F[4]),.Cout());        CLA CLA(.c0(c0),.c1(c1),.c2(c2),.c3(c3),.c4(c4),.p1(p1),.p2(p2),.p3(p3),.p4(p4),.g1(g1),.g2(g2),.g3(g3),.g4(g4));assign   p1 = x[1] ^ y[1],      p2 = x[2] ^ y[2],p3 = x[3] ^ y[3],p4 = x[4] ^ y[4];assign   g1 = x[1] & y[1],g2 = x[2] & y[2],g3 = x[3] & y[3],g4 = x[4] & y[4];assign Pm = p1 & p2 & p3 & p4,Gm = g4 ^ (p4 & g3) ^ (p4 & p3 & g2) ^ (p4 & p3 & p2 & g1);endmodule //16位CLA部件
module CLA_16(A,B,c0,S,px,gx);input [16:1] A;input [16:1] B;input c0;output gx,px;output [16:1] S;wire c4,c8,c12;wire Pm1,Gm1,Pm2,Gm2,Pm3,Gm3,Pm4,Gm4;adder_4 adder1(.x(A[4:1]),.y(B[4:1]),.c0(c0),.c4(),.F(S[4:1]),.Gm(Gm1),.Pm(Pm1));adder_4 adder2(.x(A[8:5]),.y(B[8:5]),.c0(c4),.c4(),.F(S[8:5]),.Gm(Gm2),.Pm(Pm2));adder_4 adder3(.x(A[12:9]),.y(B[12:9]),.c0(c8),.c4(),.F(S[12:9]),.Gm(Gm3),.Pm(Pm3));adder_4 adder4(.x(A[16:13]),.y(B[16:13]),.c0(c12),.c4(),.F(S[16:13]),.Gm(Gm4),.Pm(Pm4));assign   c4 = Gm1 ^ (Pm1 & c0),c8 = Gm2 ^ (Pm2 & Gm1) ^ (Pm2 & Pm1 & c0),c12 = Gm3 ^ (Pm3 & Gm2) ^ (Pm3 & Pm2 & Gm1) ^ (Pm3 & Pm2 & Pm1 & c0);assign  px = Pm1 & Pm2 & Pm3 & Pm4,gx = Gm4 ^ (Pm4 & Gm3) ^ (Pm4 & Pm3 & Gm2) ^ (Pm4 & Pm3 & Pm2 & Gm1);endmodule //32位并行进位加法器顶层模块
module adder32(A,B,S,C32);input [32:1] A;input [32:1] B;output [32:1] S;output C32;wire px1,gx1,px2,gx2;wire c16;CLA_16 CLA1(.A(A[16:1]),.B(B[16:1]),.c0(0),.S(S[16:1]),.px(px1),.gx(gx1));CLA_16 CLA2(.A(A[32:17]),.B(B[32:17]),.c0(c16),.S(S[32:17]),.px(px2),.gx(gx2));assign c16 = gx1 ^ (px1 && 0), //c0 = 0C32 = gx2 ^ (px2 && c16);endmodule 

测试代码:

`timescale  1ns/1ns
module adder32_tb;reg [32:1] A;reg [32:1] B;wire [32:1] S;wire c32;adder32 adder32(.A(A),.B(B),.S(S),.C32(c32));initial beginA = 32'd0; B = 32'd0;#5;  A = 32'd 456;  B = 32'd234;#5;  A = 32'd 245;  B = 32'd678;$stop;  end
endmodule 

仿真波形:

这篇关于32位CLA的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/564103

相关文章

『功能项目』更换URP场景【32】

上一章已经将项目从普通管线升级到了URP管线 现在我们打开上一篇31项目优化 - 默认管线转URP的项目, 进入战斗场景 将Land的子级全部隐藏 将新的URP场景预制体拖拽至Land子级 对场景预制体完全解压缩 将Terrain拖拽至Land的直接子级 将Terrain设置为Land 与 静态Static 清除烘培 重新烘培 修改脚本:LoadRe

leetcode#32. Longest Valid Parentheses

题目 Given a string containing just the characters '(' and ')', find the length of the longest valid (well-formed) parentheses substring. For "(()", the longest valid parentheses substring is "()", wh

”CSS 网格“二维布局系统(补充)——WEB开发系列32

CSS 网格布局是一种二维布局系统,用于网页设计。通过使用网格,你可以将内容以行和列的形式进行排列。此外,网格布局还能够简便地实现一些复杂的布局结构。 一、什么是网格布局? CSS网格布局是一种二维布局系统,它允许我们创建复杂的网页布局,既可以处理行也可以处理列。与传统的布局方法不同,网格布局将网页分成多个可控的区域,这些区域可以任意排列、对齐和调整大小。网格布局使得创建灵活且响应

大语言模型的32种消除幻觉的技术,你都了解吗?

大模型幻觉问题是计算机语言学中一个重要的研究方向。为减轻幻觉,研究人员提出了多种策略,比如反馈机制、外部信息检索等,但一直缺少一篇详细综述将近期关于幻觉的研究工作串联起来。 今天介绍的这篇文章详细梳理了大语言模型幻觉消除技术,将其系统的分为提示工程和模型开发两大类。 提示工程涉及基于检索增强的方法、基于反馈的策略或提示微调;模型开发则可分为多种方法,包括新的解码策略、基于知识图谱的优化、新增的

32个Python爬虫项目实例,从入门到入坑(附源码)

如果你正在学习Python,那么你需要的话可以,点击这里👉Python重磅福利:入门&进阶全套学习资料、电子书、软件包、项目源码等等免费分享! 学习Python爬虫项目是一个很好的方式来提升你的编程技能,并了解网络数据的获取和处理。以下是一些建议的学习步骤和项目示例,帮助你开始Python爬虫的学习之旅。 学习步骤 基础准备: 熟悉Python编程语言基础,包括数据类型、控制流、函

LeetCode - 32. Longest Valid Parentheses

32. Longest Valid Parentheses  Problem's Link  ---------------------------------------------------------------------------- Mean:  给定一个由'('和')'组成的字符串,求最长连续匹配子串长度. analyse: 定义一个stack<pair

java32:I/O

Java 对操作系统中文件系统的支持 File 类     用于描述操作系统中的一个文件或者目录     通过File 我们可以得知文件的名字,大小,修改时间等信息,但是不能读取文件的内容 package day32;import java.io.File;import java.io.IOException;import java.text.SimpleDateFormat;import

32位操作系统寻址范围与支持的最大内存空间

32位的操作系统能够寻址的地址编号范围是1到2的32次方,而每一个地址都是指的内存中一个字节的地址,所以32位操作系统能够支持访问的的最大内存空间是2的32次方字节,也就是4G的内存空间,根据自己的理解,自己画了张图如下: 一个内存地址代表一个字节的地址不是一bit的地址 背景知识: 在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为 8bit。

芯旺微,车规级32位MCU KF32A芯片简介

文章目录 1. 产品功能特点2. 行业应用3. 开发环境(IDE)4. 开发资源5. KungFu 内核参考 1. 产品功能特点 2. 行业应用 汽车照明汽车车窗控制汽车空调面板汽车控制器 3. 开发环境(IDE)

面了个 32+ 岁 Java 大佬,一言难尽......

有个朋友去阿里面试,面试总共花费了 20 天左右,包含了 4 轮电话面试、1 轮笔试、1 轮主管视频面试、1 轮 hr 视频面试。   据他所说,70% 的人都会载在第一轮面试,要不是他面试之前做足了准备,估计都坚持不到接下来的面试。   其实,第一轮的电话面试除了一些常规的自我介绍外,问的都是一些基础的专业知识,主要目的就是筛选掉一些基础比较弱的人,以免浪费大家的的时间。问的问题主要涉及几个方