source language源语
    target language目标语言
    有一些场合需要直接修改source language源语,但大部分场合是不需要的。

    << 逻辑左移=算术左移
    >> 逻辑右移
    >>> 算术右移

    所谓“随机存取”,指的是当存储器中的数据被读取或写入时,所需要的时间与这段信息所在的位置或所写入的位置无关。相对的,读取或写入顺序访问(Sequential Access)存储设备中的信息时,其所需要的时间与位置就会有关系。它主要用来存放操作系统、各种应用程序数据等。
    (摘自百度百科)
    顺序存储器(英语:Sequential Access Memory,缩写SAM)属于计算机存储器。在存取信息时,只能按存储单元的位置,顺序地一个接一个地进行存取的存储器。最典型的是磁带存储器。
    (摘自百度百科)

    leading one-浮点数的1不用存,可以多一位有效数据。相应地,处理浮点数多一个步骤。

    ram易失-volatile
    rom非易失-nonvolatile
    flash-非易失
    易失性存储器(Volatile Memory,VM):电源开启时资料存在,电源关闭则资料立刻流失(资料挥发掉),例如:SRAM(静态随机存取存储器)、DRAM、SDRAM、DDR-SDRAM 等。
    (各种RAM)
    非易失性存储器(Non-Volatile Memory,NVM):电源开启时资料存在,电源关闭资料仍然可以保留,例如:ROM、PROM、EPROM、EEPROM、Flash ROM、FRAM、MRAM、RRAM、PCRAM 等。
    (各种ROM+少数RAM+FLASH)
    FLASH结合二者之长。FLASH是带浮栅的,有点像EEPROM。flash属于广义的EEPROM,因为它也是电擦除的rom。但是为了区别于一般的按字节为单位的擦写的EEPROM,我们都叫它flash。
    flash做的改进就是擦除时不再以字节为单位,而是以块为单位,一次简化了电路,数据密度更高,降低了成本。上M的rom一般都是flash。

    LUT(查找表)通过RAM(常见)来实现。也可以用多路选择器实现。CLB里面包含了LUT,Flip-Flop,Distributed ROM。

    FPGA的基本组分是CLB、I/OB、PI
    1、CLB(Configurable Logic Block)-可编程逻辑块
    2、输入、输出模块I/OB
    3、可编程互联总线PI(Programmable Interconnect)
    image.pngFPGA版图大概的样子
    BRAM-Block RAM
    Dram和bram差别:
    1、bram 的输出须要时钟,dram在给出地址后既可输出数据。
    2、bram有较大的存储空间。是fpga定制的ram资源;而dram是逻辑单元拼出来的。浪费LUT资源
    3、dram使用更灵活方便些

    Q1比较各种memory的速度,养成一个trade-off的思想
    A1image.png
    DRAM需要电容充电,所以最慢
    DRAM的吞吐量还比较低,因为其必须周期性刷新数据,衍生出synchronous DRAM
    (SDRAM) and double data rate (DDR) SDRAM
    DRAM便宜
    一般的FPGA上会搭载DRAM,所以需要构建为下一拍读取,且写CACHE避免频繁访存。

    Q2书中花大量篇幅介绍了MEMORY,思考MEMORY的物理级结构
    A2image.png
    Many ROMs and PLAs use dynamic circuits in place of pseudo-nMOS circuits.
    Dynamic gates turn the pMOS transistor ON for only part of the time, saving power when the pMOS is OFF and the result is not needed. Aside from this, dynamic and pseudo-nMOS memory arrays are similar in design and behavior.
    使用动态芯片代替伪n-MOS门,图中为伪n-MOS门,因为PMOS部分不与PUN连接,只起到电阻作用,有泄漏电流。
    而动态电路能减低功耗,有一个充电和放电过程(可以用多米诺逻辑),功耗上优于伪n-MOS门。

    Q3 PLAs和FPGAs的区别
    A3 PLAs纯组合,FPGAs组合+时序
    This section introduces two types of logic arrays: programmable logic arrays (PLAs), and field programmable gate arrays (FPGAs). PLAs, the older technology, perform only combinational logic functions. FPGAs can perform both combinational and sequential logic.
    书中没有介绍具体的编程方式。已知FPGA中可以将比特流写进RAM,修改查找表。

    mantissa-假数/尾数
    latency-等待时间