您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 16乘16乘法器电路
EDA技术课程设计报告──────────────────────────────────────────────I摘要随着现代数字技术的高速发展,乘法器在高速实时信号处理中特别是在数字信号处理和数字图像处理系统中起到了重要的作用。乘法器已经是现代计算机中必不可少的一部分。随着乘数和被乘数位数的增加,乘法器电路中的加法器位树也要相应的增加。通过研究CLA电路的特性,也可以在乘法器中开发出更快的加法阵列。纯组合逻辑构成的乘法器虽然工作速度比较快,但过于占用硬件资源,难以实现宽位乘法器。这里介绍由十六位加法器构成的以时序逻辑方式设计的十六位乘法器,具有一定的实用价值,而且由FPGA\CPLD构成实验系统后,可以很容易的用ASIC大型集成芯片来完成,性价比高,可操作性强。其运算速度是决定逻辑运算单元(ALU)工作频率的关键,并在很大程度上决定了系统的性能。由于DSP芯片是串行执行,速度慢、功耗大,所以现在高速实时信号处理中一般采用FPGA\CPLD来进行并行处理。现在很多系统设计中,要求速度越来越快,功耗越来越小,因此研究高速低功率的乘法器相当重要。在此次课设中我将在modelsim的环境下完成十六位的乘法器的设计。关键词FPGA;加法器;Modelsim;锁存器,;移位寄存器EDA技术课程设计报告──────────────────────────────────────────────II目录引言...............................................11总体电路结构设计...................................21.1电路功能与性能...............................................21.2关键功能电路设计.............................................31.3电路接口.....................................................31.4电路功能框图.................................................51.5验证方案.....................................................62模块的设计.......................................72.1输入信号处理模块设计.........................................82.216位移位寄存器模块..........................................92.316位计数器模块..............................................92.4输出信号处理模块...........................................103设计仿真与测试...................................123.1仿真与测试的功能列表........................................123.2仿真平台构建和仿真结果......................................123.2.1顶层仿真平台与激励......................错误!未定义书签。3.2.2电路功能仿真结果........................错误!未定义书签。3.2.3电路后仿真结果..........................错误!未定义书签。3.3测试环境的搭建与测试结果.....................错误!未定义书签。3.3.1测试环境模拟...........................................153.3.2电路测试结果...........................................164电路约束与综合实现...............................174.1时序约束....................................................174.2引脚锁定约束................................................174.3电路综合报告................................................184.4设计实现与下载..............................................19结论.............................................20参考文献..........................................21EDA技术课程设计报告──────────────────────────────────────────────IIIEDA技术课程设计报告──────────────────────────────────────────────1引言随着数字电子技术的高速发展,EDA技术日益普及,可编程器件FPGA\CPLD也得到了广泛的应用。本次课程设计要完成十六位乘法器的电路仿真。硬件乘法器,其基础就是加法器结构,其模型就是基于“移位和相加”的算法。在该算法中,乘数与被乘数都是16位,所以输出应为一个32位的数。所需器件,乘法运算控制电路控制乘法运算;16位加法计数器的输出值控制移位次数;16位移位寄存器控制被乘数右移;32位加法器进行乘数与锁存器中的数相加。采用时序逻辑设计方法,电路将部分已经得到的乘积结果右移,然后与乘积项相加并保存和值,反复迭代上述步骤直到计算出最终乘积。乘法运算控制电路的START信号的上升沿与高电平有两个功能,即32位寄存器清零和将被乘数ain加载至移位寄存器中;它的低电平则作为乘法使能信号[1]。乘法时钟信号从乘法运算控制电路的CLK输入。与此同时一16位加法计数器的输出值控制移位次数及何时将结果输出。当被乘数加载至16位右移寄存器后,随着每个时钟节拍,由低位至高位逐位移出。当被乘数移出位为1时,与门打开16位乘数bin在同一节拍进入16位加法器与上一次锁存在32位的寄存器的高16位进行相加,其和在下一时钟节拍的上升沿向右移一位锁进此锁存器中;当被乘数移出位为0时,与门全零输出,此时锁存器中的值在下一时钟节拍的上升沿向右移一位锁进此锁存器中。如此往复,直至16个时钟脉冲后,由乘法运算控制电路控制乘法运算过程自动中止,乘法控制电路输出高电平,点亮发光管,以示乘法结束。此时32位锁存器中的输出值即为最后乘积。此乘法器的优点是节省芯片资源,它的核心元件只有一个16位加法器,其运算速度取决于输出时钟频率。EDA技术课程设计报告──────────────────────────────────────────────21总体电路结构设计1.1电路功能与性能16位乘法器的功能主要体现7个部分进行16*16的乘法计算但其设计原理可用来计算更多位的乘法计算。电路的具体功能可罗列如下:(1)乘法运算控制电路ARICTL输入一信号START,与其同步时钟。START信号的上升沿将32位锁存器清零,其高电平与CLK上升沿将被乘数加载至16位移位寄存器中,低电平作为乘法运算的使能信号。(2)将START与CLK输出信号接入16位移位寄存器的LOAD与CLK输入接口,将乘数进行从高位到低位依次移出,其输出信号作为ANDARITH的一信号输入,控制把0还是乘数送入加法器。(3)ANDARITH电路控制将0还是被乘数送到加法器中,若乘数移出位为1,则其把被乘数送到加法器;若乘数移出位为0,则其把0送到加法器。(4)加法运算,在计数器计数值小于15时,32位锁存器的值的高16位就会送到加法器中,若此时ANDARITH送来被乘数则其与被乘数相加,若为0则其与0相加。(5)32位移位寄存器,把加法器送来的值向右移一位,左端添零补齐,并将移位后的结果送到32位锁存器中。(6)将START与CLK输出信号接入32位锁存器的CLR片选接口与CLK时钟输入接口,其用来将32位移位寄存器送来的数据进行锁存,并控制是将其值的高16位送进加法器还是输出运算结果:当计数器计数值小于15时,则将其值的高16位送到加法器,若计数器计数值等于15,则输出运算结果。(7)将CLK信号接入16位计数器的时钟输入接口,通过计数来控制移位寄存器的移位次数,以及运算完成输出指示:计数器计数值为16时,done输出高电平,其接口LED灯将被点亮,即乘法运算结束;计数器计数值为15时,32位锁存器的输出值即为最后乘积;计数器计数值小于15时,32位锁存器将其值高16位送到加法器中。EDA技术课程设计报告──────────────────────────────────────────────31.2关键功能电路设计本电路设计的主要难点在于如何将两个16位的二进制数相乘,经过功能分析,决定采用加法器的方式来实现乘法运算。先将被乘数加载到移位寄存器中,锁存器清零。当被乘数移出位为1时则ANDARITH打开将乘数加载到锁存器,与锁存器中值的高16位相加,并将结果向右移一位;当被乘数移出位为0,则ANDARITH把0加载到锁存器,即锁存器中的数向右移一位,其高16位不与乘数相加,只是向右移一位,当乘数最后一位移出后,最后锁存器中的值即是乘积结果。当输入信号输入时其相应的状态如表1.1表1.1各器件状态控制表输入信号当前状态乘法控制器移位寄存器加法器锁存器计数器rstn清零清零清零清零清零STARTSTART上升沿将锁存器清零;高电平将乘数送到移位寄存器中;低电平作为乘法运算的使能端乘数加载到移位寄存器中清零清零清零,开始计数1.3电路接口整个设计接口可以分为4部分,分别是线路START信号时钟,数据输入数据和时钟,接收使能与完成指示信号,数据显示接口。需要注意的是这里所有的信号(所有的输入,输出,START信号,及完成指示信号[2])都来自开关或按键。注意拨档开关设定两个输入数据,当输入第一个数据时,完成拨档开关设定后,由一个控制信号控制完成设定值的输入,该信号由按键完成。具体接口如下表1.2。EDA技术课程设计报告──────────────────────────────────────────────4表1.2接口功能表名称IO属性描述备注clkin输入时钟,2M频率rstnin异步清零信号,低电平清零,高电平进行运算低电平有效STARTin上升沿将32位锁存器清零;其高电平与CLK上升沿将被乘数加载至16位移位寄存器中;低电平作为乘法运算的使能信号S0in为0输入乘数,为1输入被乘数S1in与s2结合控制输入乘数或被乘数的哪位:若为00输入ain[3:0](或bin[3:0]),为01输入ain[7:4](或bin[7:4]),为10输入ain[11:8](或bin[11:8]),为11输入ain[15:12](或bin[15:12])S2in同s1S3in在s1,s2结合的情况下,输入乘数与被乘数的相应位数S4in在s1,s2结合的情况下,输入乘数与被乘数的相应位数S5in在s1,s2结合的情况下,输入乘数与被乘数的相应位数S6in在s1,s2结合的情况下,输入乘数与被乘数的相应位数S7out控制输出相乘结果是高位还是低位,s7为1输出低位,s7为0输出高位doneout输出乘法运算结束信号EDA技术课程设计报告──────────────────────────────────────────────51.4电路功能框图依照功能路分为7个功能模块:加法器模块ADD_16,用于乘数与锁存器中值的高16位做加法;乘法运算控制模块ARICTL,用于控制
本文标题:16乘16乘法器电路
链接地址:https://www.777doc.com/doc-5445596 .html