Nand
1.boolean logic
常用的boolean logic有AND OR NOT,其性质如下

事实上,可用AND和NOT来表示OR
x or y = NOT(NOT(x) AND NOT(y))
但没法只用AND或NOT,于是出来了NAND,x NAND y = NOT(x AND y),其真值表如下

于是可以用NAND表示AND和NOT
NOT(x) = x NAND x
x AND y = NOT(x NAND y)
2. HDL逻辑门接口

3.HDL实现
1)Mux4Way16
/**
* 4-way 16-bit multiplexor:
* out = a if sel == 00
* b if sel == 01
* c if sel == 10
* d if sel == 11
*/
自己做的时候超级傻逼。我就想啊,首先用 And(a = sel[0],b = sel[1],out = outd);这样就能通过outd是否为1判断是否选择d,然后把16个元素依次通过And(a = d[0],b = outd,out = out4[0])得到4个长度为16的输出,再把他们相加就得到了最后的输出,超级麻烦超级傻逼。
然后偷偷瞄了下答案,真是哭了,充分利用二进制的结构特性,先看sel[0]来决定用a还是b 或者 c还是d 得到两个备选,再看sel[1]来决定用最后输出,就两行,真是惊呆...
CHIP Mux4Way16 {
], b[], c[], d[], sel[];
];
PARTS:
// Put your code here:
Mux16(a = a,b = b,sel = sel[],out = out1);
Mux16(a = c,b = d,sel = sel[],out = out2);
Mux16(a = out1,b = out2,sel = sel[],out = out);
}
2)DMux4Way
哈哈这个题做得好搞,完全不动脑型,把Mux的思路逆着来就行
CHIP DMux4Way {
];
OUT a, b, c, d;
PARTS:
// Put your code here:
DMux(],a = out1,b = out2);
DMux(],a = a,b = b);
DMux(],a = c,b = d);
}
Nand的更多相关文章
- BZOJ2908: 又是nand
Description 首先知道A nand B=not(A and B) (运算操作限制了数位位数为K)比如2 nand 3,K=3,则2 nand 3=not (2 and 3)=not 2=5. ...
- 嵌入式Linux驱动学习之路(二十三)NAND FLASH驱动程序
NAND FLASH是一个存储芯片. 在芯片上的DATA0-DATA7上既能传输数据也能传输地址. 当ALE为高电平时传输的是地址. 当CLE为高电平时传输的是命令. 当ALE和CLE都为低电平时传输 ...
- (一)Nand FLASH 原理讲解
NAND FLASH 优势 : 可以用当硬盘 这里好像型号是 K9F2G08 基本结构: 不是很难自己看看,暂时不要看
- NAND flash sub-pages
http://www.linux-mtd.infradead.org/doc/ubi.html#L_subpage NAND flash sub-pages As it is said here, a ...
- Nand Flash,Nor Flash,CFI Flash,SPI Flash 之间的关系
前言: 在嵌入式开发中,如uboot的移植,kernel的移植都需要对Flash 有基本的了解.下面细说一下标题中的中Flash中的关系 一,Flash的内存存储结构 flash按照内部存 ...
- 硬件初始化,nand flash固化操作,系统启动简单流程
2015.3.27星期五 晴 链接脚本定义代码的排放顺序 硬件系统初始化:一:arm核初始化:(里面有指令)初始化ARM核的时候需要看arm核的手册指令:1.异常向量(最起码有个复位异常,初始化模式- ...
- 第8章 NAND FLASH控制器
8.1 NAND Flash介绍和NAND Flash控制器使用 NAND Flash在嵌入式系统中的地位与PC上的硬盘类似 NAND Flash在掉电后仍可保存 8.1.1 Flash介绍 有NOR ...
- RAM,SRAM,DRAM,SDRAM,DDR RAM,ROM,PROM,EPROM,EEPROM,NAND FLASH,NOR FLASH的区别
RAM:由字面意思就可以理解,SDRAM SRAM DRAM(下面蓝色字体的这几种)都可以统称RAM,random access memory(随机存取存储器)的缩写,下面是51hei.com为大家整 ...
- nand以及yaffs2
用的是tiny210+1312的SDK,友善之臂给的文件系统居然有300多兆,烧写系统可是要人命了,那个等啊...所以,想着把系统给做小一点.和其他一样,我的知识仅限于理论阶段,嘿嘿.今天实践一下. ...
- s3c2440 移值u-boot-2016.03 第4篇 支持NAND flash 识别
1, /include/configs/smdk2440.h 中添加 #define CONFIG_CMD_NAND 编译 drivers/mtd/nand/built-in.o: In functi ...
随机推荐
- SpringBoot常用注解使用
1.RequestBody和ResponseBody注解 @RequestMapping(“url”),这里的 url写的是请求路径的一部分,一般作用在 Controller的方法上,作为请求的映射地 ...
- jquery遇到的问题
1.关于$.fn $.fn是指jquery的命名空间,加上fn上的方法及属性,会对jquery实例每一个有效. 如扩展$.fn.abc(),即$.fn.abc()是对jquery扩展了一个abc方法, ...
- 转--select/poll/epoll到底是什么一回事
面试题:说说select/poll/epoll的区别. 这是面试后台开发时的高频面试题,属于网络编程和IO那一块的知识.Android里面的Handler消息处理机制的底层实现就用到了epoll. 为 ...
- 解析ArcGis的标注(二)——认识ArcGis标注标签
该“标注”系列博文的标注引擎使用“标准标注引擎(standard label engine)”,这个概念如不知道,可不理会,ArcGis默认标注引擎就是它. 本篇的标注语句解析使用VBScript,注 ...
- HTML&CSS总结
HTML 如果把网页比作房子的话,那么HTML就是搭建房子的整体结构,CSS就是对房子进行装修,HTML主要涉及各种标签的使用,总结如下,需要补充的一点是行内标签与块级标签的区别 inline:在一行 ...
- Word设置多级标题
选中标题1的内容,点击编号图标,选中一个经典的编号模板,如下图 之后,再次点击编号图标,然后选中“定义新的多级列表”,将打开一个对话框 确保标题1的标号正确: 接着,确保标题2的编号正确: 依次类推, ...
- C#子类重写父类函数的两种方法
(1)使用Virtual关键字Override从写 父类子类代码如下,不能修改public 为其它权限 public virtual void Clear() { UpdateView(); } pu ...
- Volatile关键字理解
Volatile定义 为了确保共享变量能被准确和一致的更新,线程应该确保通过排他锁单独获得这个变量.Java语言提供了volatile,在某些情况下比锁更加方便.如果一个字段被声明成volatile, ...
- Matconvnet环境配置一些坑
1.先安装VS再安装matlab否则安装失败 2.cuda7.5支持MATLABR2016a/b,支持VS2013但是不支持VS2015 3.cuda8.0支持MABTLABR2017a,对应编译需V ...
- python中的*和**的用途
def function_with_one_star(*t): print(t, type(t)) def function_with_two_stars(**d) print(d, ty ...