mul8_unsigned multipliter
李亚民老师更注重硬件设计思想的训练。
他给出的硬件设计方法更贴近底层硬件,下面看看他的设计思想:
a7a6a5a4a3a2a1a0
* b7b6b5b4b3b2b1b0
--------------------------------------------------
a7b0 a6b0 a5b0 a4b0 a3b0 a2b0 a1b0 a0b0
a7b1 a6b1 a5b1 a4b1 a3b1 a2b1 a1b1 a0b1
a7b2 a6b2 a5b2 a4b2 a3b2 a2b2 a1b2 a0b2
a7b3 a6b3 a5b3 a4b3 a3b3 a2b3 a1b3 a0b3
a7b4 a6b4 a5b4 a4b4 a3b4 a2b4 a1b4 a0b4
a7b5 a6b5 a5b5 a4b5 a3b5 a2b5 a1b5 a0b5
a7b6 a6b6 a5b6 a4b6 a3b6 a2b6 a1b6 a0b6
+ a7b7 a6b7 a5b7 a4b7 a3b7 a2b7 a1b7 a0b7
-----------------------------------------------------------------------------------------------------------------------------------------------------------
//date :2013/6/20
//designer :pengxiaoen
//function : unsigned 8 bit multipliter module mul8_unsigned (
a_in,b_in,
result
);
input [:] a_in, b_in;
output [:] result ; wire [:] ab0 = b_in[] ? a_in : 'd0;
wire [:] ab1 = b_in[] ? a_in : 'd0;
wire [:] ab2 = b_in[] ? a_in : 'd0;
wire [:] ab3 = b_in[] ? a_in : 'd0;
wire [:] ab4 = b_in[] ? a_in : 'd0;
wire [:] ab5 = b_in[] ? a_in : 'd0;
wire [:] ab6 = b_in[] ? a_in : 'd0;
wire [:] ab7 = b_in[] ? a_in : 'd0; assign result = ( ({'b0,ab0[7:0]} +
{'b0,ab1[7:0],1'b0}) +
({'b0,ab2[7:0],2'b0} +
{'b0,ab3[7:0],3'b0}) +
({'b0,ab4[7:0],4'b0} +
{'b0,ab5[7:0],5'b0}) +
({'b0,ab6[7:0],6'b0} +
{'b0,ab7[7:0],7'b0})
); endmodule
这种设计思想很好,但是这个就有点悲剧了
一共用了126个逻辑单元
特权的16bit unsigned multipliter 才用了103个。
吴厚航 PK 李亚民 ,呵呵,不知道怎么样去比较这两个设计思想的优缺点,求指点啊
李老师说如果没有加括号,就也许会顺序执行,但是我加了和么有加么有区别啊
mul8_unsigned multipliter的更多相关文章
- iOS 屏幕适配:autoResizing autoLayout和sizeClass
1. autoResizing autoresizing是苹果早期的ui布局适配的解决办法,iOS6之前完全可以胜任了,因为苹果手机只有3.5寸的屏幕,在加上手机app很少支持横屏,所以iOS开发者基 ...
- iOS开发——屏幕适配篇&autoResizing autoLayout和sizeClass
autoResizing autoLayout和sizeClass,VFL,Masonry详解 1. autoResizing autoresizing是苹果早期的ui布局适配的解决办法,iOS6之前 ...
- ChatCell
import UIKit let chatCellHeight: CGFloat = 72 let chatCellInsetLeft = chatCellHeight + 8 class Chat ...
- 转:iOS 屏幕适配,autoResizing autoLayout和sizeClass图文详解
1. autoResizing autoresizing是苹果早期的ui布局适配的解决办法,iOS6之前完全可以胜任了,因为苹果手机只有3.5寸的屏幕,在加上手机app很少支持横屏,所以iOS开发者基 ...
- MobileNets总结
Google在2017年上半年发表了一篇关于可以运行在手机等移动设备上的神经网络结构--MobileNets.MobileNets是基于深度可分离卷积(depthwise separable conv ...
- (STM32F4) 精準的Delay不透過Timer
從一個厲害的國外工程師看來的delay寫法,使用while loop會使用幾個指令去計算,可能會需要多少時間. while(variable--); 這行代碼執行一次預估會消耗MCU 4 clock ...
- iOS 屏幕适配,autoResizing autoLayout和sizeClass图文详解
=== 1. autoResizing autoresizing是苹果早期的ui布局适配的解决办法,iOS6之前完全可以胜任了,因为苹果手机只有3.5寸的屏幕,在加上手机app很少支持横屏,所以iOS ...
- autoResizing autoLayout和sizeClass
原文网址: http://www.cnblogs.com/cxbblog/p/4166876.html 1. autoResizing autoresizing是苹果早期的ui布局适配的解决办法,iO ...
随机推荐
- 帝国cms数据表详细说明
表 名 解释 phome_ecms_infoclass_news 新闻采集规则记录表 phome_ecms_infotmp_news 采集临时表 phome_ecms_news 新闻主数据记录表 ph ...
- 城通网盘,千军万马,千脑网盘,119g网盘哪个适合做网赚?
转载请注明文章来自 [ofiicexie] 网盘网赚已经流行了有一段时间了,国内流行的几个网盘有城通,千军万马,千脑,119g,今天小编写以此文来比较分析一下这几个网盘的优缺点. 这里,我特意做了个这 ...
- delphi 文件夹权限设置(执行一个小脚本的笨办法)
如题,研究了一天,也没再网上找到比较好的方式,自己做了一个.方法如下: 1.创建一个 cmd 命令文件.2.调用该命令. 代码如下: S:='echo y|cacls h: /t /c /g ev ...
- CodeIgniter结合Bootstrap
CodeIgniter-Bootstrap结合了 cI和bootstrap的长处,一个专注于服务器端,一个专注于ui,这个把2个结合起来了.框架地址: http://www.andyhawthorne ...
- spring中基础核心接口总结
spring中基础核心接口总结理解这几个接口,及其实现类就可以快速了解spring,具体的用法参考其他spring资料 1.BeanFactory最基础最核心的接口重要的实现类有:XmlBeanFac ...
- centos6.5 搭建php5.5+mysql5.5+apache2.4
本文总结了Linux下 root.常用查找命令.卸载软件方法(见二.安装PHP5.5).配置软件源(见二).安装软件(见二)与高版本替换软件(见三.安装MySQL)的方法. 迁移网站,机器上原本已有p ...
- Libev学习笔记4
这一节首先分析Libev的定时器部分,然后分析signal部分. 对定时器的使用主要有两个函数: ev_timer_init (&timeout_watcher, timeout_cb, .) ...
- HashMap和HashTable 学习
1. HashMap 1) hashmap的数据结构 Hashmap是一个数组和链表的结合体(在数据结构称“链表散列“),如下图示: 当我们往hashmap中put元素的时候,先根据key的hash ...
- Shot(三分)
Shot Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- Linux 内核的编译系统
Linux 的编译使用 GNU make 工具来检查整个系统的文件和调用 gcc 工具以及脚本完毕编译源码生成 image 等操作.要了解整个编译系统,我们首先要了解 Linux 内核的 Makef ...