1 / 11
文档名称:

VHDL实验三实验报告.doc

格式:doc   大小:119KB   页数:11页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

VHDL实验三实验报告.doc

上传人:260933426 2017/9/5 文件大小:119 KB

下载得到文件列表

VHDL实验三实验报告.doc

文档介绍

文档介绍:实验三. 四位有符号数除法
实验目的
使用硬件描述语言(VHDL)对除法器进行描述,并进行模拟和验证,熟悉fpga开发基本流程,加深对二进制数运算方法的理解。

设计四位定点有符号整数除法器(op=ai÷bi),软件仿真通过后下载到FPGA板子进行验证:
1、 使用clock为输入时钟信号,其频率为50MHz
2、 使用拨码开关sw7~sw4为被除数ai,其中sw7为MSB(高位),sw4为LSB(低位)
3、 使用拨码开关sw3~sw0为除数bi,其中sw3为MSB,sw0为LSB
4、 使用按钮btn<0>作为输入确定信号,在每次改变输入时按下按钮得到输出结果
5、 以LED7~4为所得商op,LED3为MSB,灯亮代表该位为1.
6、 以LED3~0为所得余数,LED7为MSB
7、若除数为0,则led7闪烁(闪烁频率自定义,以肉眼能分辨为准),led6~0熄灭

对于有符号位数,在被除数与除数均为正数的情况下,使用的是如下的方法:被除数为A:A3,A2,A1,A0,除数为B:B3,B2,B1,B0。其中A3,B3为符号位,算法思想如下:
1、将二个操作数A,B都扩展成7位即:( A3和B3是符号位,不参与具体运算)
A:0 0 0 A2 A1 A0
B:0 0 0 B2 B1 B0
2、将B左移三位得Q: B2 B1 B0 0 0 0
比较A与Q,若A>=Q,商上1,A=A-Q;
否则,商上0,A=A;
B右移一位;
如此循环四次,便得到所要的结果
但是被除数与除数中有一个是负数的情况下,需要分类讨论,具体如下:
(1)被除数为负,除数为正。这种情况需将被除数取其补码,然后按上述方法操作,在得到相应的余数以及商的结果后,需将余数以及商都转为其补码形式再输出。
(2)被除数为正,除数为负。这种情况下需将除数取其补码,然后按上述方法操作,在得到相应的余数以及商的结果后,需将商转为其补码形式输出,余数按正常结果输出。
(3)被除数除数均为负。这种情况需将其两均转化为补码形式,然后按照上述方法操作,在得到相应的余数以及商的结果后,需将余数转为补码输出,商按正常结果输出。

整个主程序划分为四个模块,分别为防按键抖动模块(bounce_eliminating)、除法模块(division)、LED灯控制模块(lout)以及分频模块(clk_divider)。
其中分频(clk_divider)模块将50MHz的频率分为200Hz用于控制刷新拨码开关的状态,2Hz用于控制当除数为零时LED灯的闪烁,分为2Hz是为了人眼的区分。

Device Utilization Summary
[-]
Logic Utilization
Used
Available
Utilization
Note(s)
Total Number Slice Registers
58
1,920
3%
 
    Number used as Flip Flops
49
 
 
 
    Number used as Latches
9
 
 
 
Number of 4 input LUTs
127
1,920
6%
 
Number of occupied Slices
93
960
9%
 
    Number of Slices containing only related logic
93
93
100%
 
    Number of Slices containing unrelated logic
0
93
0%
 
Total Number of 4 input LUTs
168
1,920
8%
 
    Number used as logic
127
 
 
 
    Number used as a route-thru
41
 
 
 
Number of bonded IOBs
18
83
21%
 
    IOB Flip Flops
7
 
 
 
Number of BUFGMUXs
1
24
4%
 
Average Fanout of Non-s

 
 
 
整个的资源利用率较高,对于寄存器的使用情况,这组实验占用了58个,其中使用为触发器的为49个,使用为锁存器的为9个。主要是由于在与本次实验操作中,有些信号的赋值是以另外信号的跳变为条件的(即同步赋值),这些信号经过编译就会生成寄存器。整体说来,本次实验产生的寄存器