马上注册,看完整文章,学更多FPGA知识。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本工程实现的内容是16位乘法器的加法实现方式。在FPGA设计中,我们需要考虑到资源与速度的问题,同样一个功能我们可以用较少的资源去实现,也可以用较多的资源去实现,FPGA设计工程师在设计当中应当在满足系统速度要求的前提先采取更节省自愿的额设计方法。FPGA资源当中,乘法器的运行速度比加法器要慢很多,假如在设计当中用到了乘法器,而该乘法器所在路径刚好成为了关键路径,那么我们提高速度的方法就是把乘法器转化成加法来实现。
具体实现的功能如下: a. ina和inb是被乘数和乘数的输入端口,把要做乘法运算的两个16bit 数据由此输入; b. start 信号是乘法运算触发信号,输入一个脉冲触发运算; c. 运算结果由out端口输出; d. vld标志最终运算结果,在vld有效的同时out是当前乘法器运算结果; e. 用加法器代替了乘法器,比如:3'b011 * 2'b10 = (3'b011 *1'b0)+({3'b011,1'b0}*1'b1); f. 用移位寄存器和选择器得到每一步相加的数。如果乘数是16位,那就是16个数相加。
参考工程代码见下面文档 |