试验四 128 乘法模拟器
一 实验目的
仿真不带符号的阵列乘法器
二 实验内容
1,实验原理
M 位乘 N 位不带符号整数的阵列乘法中加法---移位操作的被加数矩阵.每一部分乘积
项 ab 叫做一个被加数.m*n 个被加数可以用 m*n 个”与门”并行的产生.
以 5 位乘 5 位不带符号的阵列乘法器(m=n=5)为例(如下图):
FA 为一位全加器,FA 的斜线方向为进位输出,竖线方向为和输出,而所有被加数项的排
列和正常的 A*B=P 乘法过程中的被加数矩阵相同.图中用矩形围成的阵列中最后一行构成
一个行波进位加法器,其时间延迟为(n-1)2T.当然,为了缩短加法时间,最后一行的行波进位加
法器也可以用先行进位加法器来代替.这种乘法器实现 n 位×n 位时,需要 n(n-1)个全加器和
n²个”与”门.
三. 源程序
#include "stdio.h"
#include "conio.h"
#define n 10 /*128 位时 10 改成 40 即可*/
#define N 2*n
int Input(char h[n])
{ int i,j,;
char c,p[n];
for(i=0;i<n;i++)
{ p[i]=0;} /* p[i]为辅助数组*/
for(i=0;(c=getchar())!='';i++) /* 输入转换,ASIICC 码形式*/
{ c=c-48; p[i]=c; }
for(i--,j=n-1;i>=0;j--,i--)
{h[j]=p[i]; } /*顺序移入另一数组*/
FA
FA
FA
FA
FA
FA
FA
FA
FA
FA
FA
FA
FA
FA
FA
FA
FA
FA
FA
FA
评论0