8位无符号数乘法运算HDL设计实例_第1页
8位无符号数乘法运算HDL设计实例_第2页
8位无符号数乘法运算HDL设计实例_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

8位无符号数乘法运算HDL设计实例加减乘除是运算的基础,也是我们在小学课堂里的重点必修课。乘除运算虽然对于我们今天来说还是小菜一碟,让计算机做起来也是九牛一毛不足挂齿,但是要真探究一下计算机是如何完乘除运算的,可还真有些学问和技巧,并不是人脑那么9*9一闪而过81出来了,计算机虽然得到结果的时间可能比人要快上不知道多少个数量级,但它怎么说还是需要一个过程的。可能不同的CPU内部的运算原理和机制略有差异,我们也无法完全去把这些运算方式搞清楚,这个例程我们就老老实实的用移位累加的方式完成两个8位无符号数的乘法运算。这里先随便举个例子来说明我们的运算原理,例如8位无符号数189和25相乘。因为计算机只认识0和1,因此一切运算的基础都是0和1,所以我们的运算也必须是基于2进制来进行的。因此,我们首先要完成机制的转换。乘数189对应的2进制数为10111101,被乘数25对应的2进制数为00011001。按照我们最常用的10进制乘法运算的方式,我们可以得到如图1所示的2进制乘法。在这个运算过程中,我们从被乘数的最低位到最高位依次判断其取值是1还是0,如果是1则对乘数累加,否则不累加(即取0),需要累加的乘数根据当前被乘数位需要进行相应的移位,如被乘数的bit3为1,则乘数相应左移3次(即放大8倍)作为累加数。依据此原理,我们要设计的8位无符号乘法也是通过对被乘数进行逐位判断后累加进行左移的乘数而得到最终的结果。图12进制乘法在我们的8位无符号乘法运算中,一些基本的接口信号及其功能为:8位无符号数ain和bin是需要进行运算的两个乘数;输出的结果用16位无符号数yout表示;enable信号为运算使能信号;ready信号为运算完成标志位。用户先给ain和bin赋值,然后将enable信号拉高后即开始运算,大约8个时钟周期后运算输出结果,ready信号输出高电平表示运算结果有效,此后如果enable信号被用户拉低则ready信号也随后拉低,表示完成一次运算。接着用户可以给ain和bin赋新的运算值,然后拉高enable信号继续一次新的运算。Verilog参考实例modulemux(

clk,rst_n,

enable,ain,bin,yout,ready

);inputclk;inputrst_n;inputenable;

(1)input[7:0]ain;

(2)input[7:0]bin;

(3)outputreg[15:0]yout;

(4)outputregready;

(5)reg[4:0]i;

(6)always@(posedgeclk)

if(!rst_n)begin

ready<=1'b0;

yout<=16'h0000;

i<=4'd0;

end

elseif(enable)begin

if(i<4'd8)i<=i+1'b1;

else;

if(i<4'd7)begin

(7)

ready<=1'b0;

if(ain[i])yout<=(yout+{1'b0,bin,7'd0})>>1;

(8)

elseyout<=yout>>1;

(9)

end

elseif(i==4'd7)begin

(10)

if(ain[i])yout<=yout+{1'b0,bin,7'd0};

(11)

else;

(12)

ready<=1'b1;

(13)

end

elseready<=1'b0;

end

elsebegin

i<=4'd0;

yout<=16'h0000;

endendmodule运算使能信号。0表示无操作;1表示将对当前输入的ain和bin进行乘法运算。8位无符号数,他将和bin进行相乘操作。8位无符号数,他将和ain进行相乘操作。16

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论