- 博客(12)
- 收藏
- 关注
原创 超前进位加法器 verilog代码
因此设计64位的超前进位加法器可以采用多级分层实现的方案。将64位输入分解为16组4位的超前进位加法器,第一级得到得到的16组为超前进位的第二级,该级组间仍然使用超前进位的逻辑进行实现,可以进一步再分为4组,形成第三级。由于行波进位加法器具有明显的延迟,从图中可以看出延迟主要是由进位传播链引起的,因此如何可以快速得到每一位的进位信号是加速计算的关键,这里提出了一种新的设计思想,即让每一位进位的产生近依赖于同一输入信号,这样便可以同时计算得到每一位的进位信号。上图为32位加法器示意图,64位架构与其相同。
2023-03-28 20:37:00
1980
7
原创 行波进位加法器设计 Verilog实现
2.半加器仅考虑两个加数本身,而没有考虑低位进位的加法运算。设计思想:按照正常的加法运算逻辑,由低位向高位依次进行计算,进位依次从低位传递到高位。1.全加器能进行被加数、加数和来自低位的进位信号相加,并根据结果给出该位的进位信号。加法器整体由全加器串联构成,每一位的计算对应一个全加器,进位输入由相邻低位产生。图中红色路径为此加法器的关键路径,加法器的延迟和操作数尾数成正比。
2023-03-28 20:30:21
1543
原创 人工智能(一种现代方法) MiniMax 算法 (α-β剪枝)C++实现
人工智能(一种现代方法) MiniMax 算法 (α-β剪枝)C++实现
2023-02-09 13:33:41
704
原创 求两个数的最大公约数 C++
求两个数的最大公约数,在数学上有辗转相除法。即两个数a,b(令a>b,z(a,b)为二者最大公约数)则z(a,b)=z(b,a%b);因为: 设c=a%b;也就是 a=nb+c, c = a-bn;则c可以被z(a,b)整除,即z(a,b)=z(b,a%b);当a%b==0时,返回b即为最大公约数。C++程序如下:int getmaxgys(int a,int b){ return b==0?a:getmaxgys(b,a%b);}...
2021-10-27 23:54:54
422
原创 Codeforces Round #751 (Div. 2)B. Divine Array
其实这题没啥好说的,纪念一下第一次玩codeforces吧题目如下:B. Divine Arraytime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputBlack is gifted with a Divine array a consisting of n (1≤n≤2000) integers. Each position in a has
2021-10-26 21:10:46
222
2
原创 双向栈的基础操作
双向栈:一个双向栈是在同一向量空间实现的两个栈,它们的栈底分别设在向量空间的两端。双向栈有什么优点?入栈时,各自的栈顶向中间伸展,仅当两个栈的栈顶相遇时才可能发生上溢。由于两个栈之间可以做到互补余缺,使得每个栈的可利用空间均有可能超过n/2。这不仅减少了栈溢出的可能性,也增加了空间的利用率。什么时候用双向栈?可以看到,当两个栈对空间的需求有相反关系的时候,也就是一个栈的空间增长,另一个栈的空间缩小时,可以使用双向栈。在会手写栈的基础上,不难写出双向栈的代码。下面给出本人写的C语言的双向栈(只
2021-10-03 22:50:28
2746
转载 生成{0,1,2,...,n-1}的所有子集 C++ 2021-07-21
可以考虑用二进制来表示集合:从右往左第i位表示元素i是否在集合A中。如 0100011000110111可以表示集合{0,1,2,4,5,9,10,14}那么{1,2,3,4,…,n-1}可以表示成十进制的2^n-1,其子集分别对应十进制的0~2^n-1(0代表空集)可以写出打印子集s的函数:void print_subset(int n,int s){//s为0~2^n-1的某个十进制数 for(int i=0;i<n;i++) if(s&(1<<i)) pri
2021-07-21 16:39:08
195
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人