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的更多相关文章

  1. 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. ...

  2. 嵌入式Linux驱动学习之路(二十三)NAND FLASH驱动程序

    NAND FLASH是一个存储芯片. 在芯片上的DATA0-DATA7上既能传输数据也能传输地址. 当ALE为高电平时传输的是地址. 当CLE为高电平时传输的是命令. 当ALE和CLE都为低电平时传输 ...

  3. (一)Nand FLASH 原理讲解

    NAND FLASH  优势 : 可以用当硬盘   这里好像型号是 K9F2G08 基本结构: 不是很难自己看看,暂时不要看

  4. 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 ...

  5. Nand Flash,Nor Flash,CFI Flash,SPI Flash 之间的关系

    前言:    在嵌入式开发中,如uboot的移植,kernel的移植都需要对Flash 有基本的了解.下面细说一下标题中的中Flash中的关系 一,Flash的内存存储结构    flash按照内部存 ...

  6. 硬件初始化,nand flash固化操作,系统启动简单流程

    2015.3.27星期五 晴 链接脚本定义代码的排放顺序 硬件系统初始化:一:arm核初始化:(里面有指令)初始化ARM核的时候需要看arm核的手册指令:1.异常向量(最起码有个复位异常,初始化模式- ...

  7. 第8章 NAND FLASH控制器

    8.1 NAND Flash介绍和NAND Flash控制器使用 NAND Flash在嵌入式系统中的地位与PC上的硬盘类似 NAND Flash在掉电后仍可保存 8.1.1 Flash介绍 有NOR ...

  8. RAM,SRAM,DRAM,SDRAM,DDR RAM,ROM,PROM,EPROM,EEPROM,NAND FLASH,NOR FLASH的区别

    RAM:由字面意思就可以理解,SDRAM SRAM DRAM(下面蓝色字体的这几种)都可以统称RAM,random access memory(随机存取存储器)的缩写,下面是51hei.com为大家整 ...

  9. nand以及yaffs2

    用的是tiny210+1312的SDK,友善之臂给的文件系统居然有300多兆,烧写系统可是要人命了,那个等啊...所以,想着把系统给做小一点.和其他一样,我的知识仅限于理论阶段,嘿嘿.今天实践一下. ...

  10. 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 ...

随机推荐

  1. Spring_AOP 实现原理与 CGLIB 应用

    转自:https://www.ibm.com/developerworks/cn/java/j-lo-springaopcglib/index.html AOP(Aspect Orient Progr ...

  2. JAVA核心技术I---JAVA基础知识(不可变对象和字符串)

    一:不可变对象 不可变对象(Immutable Object) –一旦创建,这个对象(状态/值)不能被更改了–其内在的成员变量的值就不能修改了. –典型的不可变对象 • 八个基本型别的包装类的对象 • ...

  3. Spring+Mybatis+SpringMVC+Atomikos多数据源共存+不同数据库事物一致性处理

    网上找了一大堆的例子,没一个跑通的,都是copy转发,哎,整理得好辛苦..做个笔记,方便正遇到此问题的猿们能够得到帮助....废话不多说,贴代码..... 项目结构说明: 1.dao层的admin.w ...

  4. layui(六)——upload组件常见用法总结

    layui中提供了非常简单的文件上传组件,这里写了一个上传图片的栗子,上传成功后返回图片在服务器的路径,并设置为页面中img的src属性.因为上传十分简单,没什么可说的,就直接上代码了. html代码 ...

  5. 免费开源.net的pdf操作控件PdfiumViewer

    最终我找到了pdffiumViewer.开源免费的.net组件. 亲测,可以按第一个下载地址,改写开发.如果对源码感兴趣,可以上GitHub网站 效果图:  1.源代码下载地址: https://do ...

  6. 能使 Oracle 索引失效的六大限制条件【转】

    . 引用自: http://www.cnblogs.com/orientsun/archive/2012/07/05/2577351.html  总结得非常到位 Oracle 索引的目标是避免全表扫描 ...

  7. 【由浅入深理解java集合】(五)——集合 Map

    前面已经介绍完了Collection接口下的集合实现类,今天我们来介绍Map接口下的两个重要的集合实现类HashMap,TreeMap.关于Map的一些通用介绍,可以参考第一篇文章.由于Map与Lis ...

  8. 一.ArrayList原理及实现学习总结

    一.ArrayList介绍 ArrayList是一种线性数据结构,它的底层是用数组实现的,相当于动态数组.与Java中的数组相比,它的容量能动态增长.类似于C语言中的动态申请内存,动态增长内存. 当创 ...

  9. 新浪某站CRLF Injection导致的安全问题

    CRLF攻击的一篇科普:新浪某站CRLF Injection导致的安全问题(转) 转:https://www.leavesongs.com/PENETRATION/Sina-CRLF-Injectio ...

  10. luogu 1550 [Usaco2008 Oct]打井 最小生成树+小技巧

    此题似乎显然最小生成树,小技巧需要注意: 在每个点出井水,需要花费,实际上可以把井水视作所有井下统一的一点,需要走路径到达此点,新图上再最小生成树 将点化作边处理 还有题目写的数据范围一般不可信,开大 ...