1 / 30

在工程路径下的文件夹“ ipcore_dir ”下,生成两个重要文件: rom_16x8.v : IP 的行为模型,用于功能仿真

§Xilinx IP Core — — 基于块 RAM 的单口 ROM. 在工程路径下的文件夹“ ipcore_dir ”下,生成两个重要文件: rom_16x8.v : IP 的行为模型,用于功能仿真 rom_16x8.ngc : IP 综合产生的网表文件,是 Xilinx 自有文件格式,为二进制文件,且被加密. §Xilinx IP Core — — 基于块 RAM 的单口 ROM. clkdiv :时钟分频( 95HZ ) debounce :去抖电路 clock_pulse :单脉冲发生器 counter :地址计数器.

hope-combs
Download Presentation

在工程路径下的文件夹“ ipcore_dir ”下,生成两个重要文件: rom_16x8.v : IP 的行为模型,用于功能仿真

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. §Xilinx IP Core — — 基于块RAM的单口ROM • 在工程路径下的文件夹“ipcore_dir”下,生成两个重要文件: • rom_16x8.v:IP的行为模型,用于功能仿真 • rom_16x8.ngc:IP综合产生的网表文件,是Xilinx自有文件格式,为二进制文件,且被加密 VLSI系统设计

  2. §Xilinx IP Core — — 基于块RAM的单口ROM • clkdiv:时钟分频(95HZ) • debounce:去抖电路 • clock_pulse:单脉冲发生器 • counter:地址计数器 VLSI系统设计

  3. §Nexys3TM主要模块的设计(1)— — 按键 按键去抖电路 • 按下任何按钮,在稳定之前都会有几毫秒得轻微抖动,导致输入在0和1之间变 • 化,而时钟沿到来时发生这种抖动,将导致将错误的值所存到寄存器中。 • 上图为基于移位寄存器的去抖电路,时钟信号clk必须足够低,这样开关都动在 • 3个时钟周期前即可结束。 • 只有输入信号在连续3个时钟周期都为1时,输出才为1,从而去除抖动。 VLSI系统设计

  4. §Nexys3TM主要模块的设计(1)— — 按键 单脉冲生成器 VLSI系统设计

  5. §Xilinx IP Core — — 基于块RAM的单口RAM • 基于块RAM的单口ROM: • 利用CORE Generator创建一个大小为16×8bit的基于块RAM的单口RAM。 • 分别用按钮btn[0]和btn[1]控制写RAM和读RAM。每按一次btn[0],将写入地 • 址+1,并在写使能的控制下,将8个slide switch表示的8位数据写入的RAM相 • 应地址;每按一次btn[1],将读取地址+1,从RAM相应地址读取一个8位数据, • 用7段数码管显示。此外,用LED灯显示写地址和读地址。 • Tips:每当使用一个新IP的时候,需要仔细阅读Data Sheet,保证配置和使 • 用的正确性、高效性。 VLSI系统设计

  6. §Xilinx IP Core — — 基于块RAM的单口RAM • clkdiv:时钟分频(95HZ) • debounce:去抖电路 • clock_pulse:单脉冲发生器 • counter:读/写地址计数器 • sel_addr:RAM地址生成器 • binbcd8:8位二进制转BCD VLSI系统设计

  7. §Xilinx IP Core — — 基于块RAM的单口RAM 存储器类型 时钟设置(双端口RAM/ROM) 同步时钟/异步时钟 字节写使能 RAM/ROM构造算法 VLSI系统设计

  8. §Xilinx IP Core — — 基于块RAM的单口RAM Memory Type配置 单端口ROM 单端口RAM 单端口RAM 双端口 RAM 简单双端口 RAM 一个读端口(A) 一个写端口(B) 两套完全独立的读写端口 VLSI系统设计

  9. §Xilinx IP Core — — 基于块RAM的单口RAM WriteEnable配置 • WriteEnable: (写字节使能位)允许将向地址指定的RAM单元内,写入特定字节 • 8bit宽度:每个字节不带奇偶校验位,存储单元宽度必须是8的整倍数。 • 9bit宽度:每个字节带1位奇偶校验位,存储单元宽度必须是9的整倍数。 • WE[N-1:0]:N是写入数据的字节数,写操作过程中,输入数据对应为“1”的字 • 节被写入存储器。 VLSI系统设计

  10. §Xilinx IP Core — — 基于块RAM的单口RAM Memory Algorithm配置 最小面积算法:使用最少数目的块RAM基元,同时减少输出端多路分支数目。 最低功耗算法:减少读写期间被访问的块RAM的数目。 固定基元(primitives)算法:允许设计者选定块RAM基元类型。 VLSI系统设计

  11. §Xilinx IP Core — — 基于块RAM的单口RAM • 表示端口读/写操作的关系 • -WriteFirst • -ReadFirst • NoChange • 对于双端口RAM,当发生地址 • 冲突时,要特别注意该项配置 • 设置存储器宽度(width) • 设置存储器深度(depth) VLSI系统设计

  12. §Xilinx IP Core — — 基于块RAM的单口RAM OperatingMode配置 WriteFirstMode VLSI系统设计

  13. §Xilinx IP Core — — 基于块RAM的单口RAM OperatingMode配置 ReadFirstMode VLSI系统设计

  14. §Xilinx IP Core — — 基于块RAM的单口RAM OperatingMode配置 NoChangeMode VLSI系统设计

  15. §Xilinx IP Core — — 基于块RAM的单口RAM 设置输出端口寄存器 存储器初始化 VLSI系统设计

  16. §Xilinx IP Core — — 基于块RAM的单口RAM OptionalOutputRegisters配置 • 为块RAM/ROM的输出端口设置寄存器,以提升其性能(工作频率) • -blockramprimitive的输出端设置寄存器 • 整个memory的输出端设置寄存器 • 配置寄存器将使RAM/ROM的读操作延长1个时钟周期 分离多路选择器延迟对性能的影响 减少blockram基元clock-to-out延迟对性能的影响 VLSI系统设计

  17. §Xilinx IP Core — — 基于块RAM的单口RAM 设置复位/置位端 VLSI系统设计

  18. §Xilinx IP Core — — 基于块RAM的单口RAM 仿真时,发生读/写,写/写冲突时产生警告 VLSI系统设计

  19. §Xilinx IP Core — — 基于块RAM的单口RAM 使用双端口RAM的问题 —— 冲突 • 对于双端口RAM而言,两个端口是相互独立并且等价的,但两个端口上的地址相同时(访问同一存储单元)就会发生数据冲突 • 采用异步时钟:当一个端口在写数据时,另一个端口不可能同时触发写/读数据 • 采用同步时钟: • 写写冲突:发生在两个端口同时向同一个存储单元写数据,造成存储单元 • 中的数据不确定;当设置了写字节使能后,向同一个存储字不同的字节单 • 元同时写数据,不发生写写冲突。 • 读写冲突:发生在两个端口同时向同一个存储单元发出读/写请求,这时存 • 储单元的内容会被写端口更新,但会造成输出数据的不确定,取决于 • operatingmode的设置 • READ_FIRST MODE:读端口数据会被正确读出。 • WRITE_FIRST/NOCHANGEMODE:读端口数据不会被正确读出, • 为不确定值,并且对于写字节使能,被更新的字节不会被正确读出。 VLSI系统设计

  20. §Xilinx IP Core — — 基于块RAM的单口RAM 使用双端口RAM的问题 —— 冲突 ADDRA = ADDRB=0 写写冲突 ADDRA = ADDRB=0并且B是读端口 读写冲突 VLSI系统设计

  21. §Xilinx IP Core — — Clock Wizard(分频电路) • Spartan 6中主要包含三类时钟资源 • DCM(Digital Clock Management) • PLL(Phase locked loop) • 各类Buffer • DCM是基于DLL(Delay locked loop )的时钟管理和控制模块,可实现时 • 钟的延时、频率的合成、时钟相位调整等工作。 • PLL可以产生不同频率、不同相位的高质量信号。 • DLL和PLL的差别 • DLL主要是用于产生一个精准的时间延迟,优势在于抑制skew • PLL 优势在于抑制clock jitter • DLL是数字电路;PLL是模拟电路 • 对于大多数FPGA设计两者区别不大,可利用clock wizard实现自动化选择 VLSI系统设计

  22. §Xilinx IP Core — — Clock Wizard(分频电路) VLSI系统设计

  23. §Xilinx IP Core — — Clock Wizard(分频电路) 设置输入时钟频率 允许的时钟范围 VLSI系统设计

  24. §Xilinx IP Core — — Clock Wizard(分频电路) 设置分频/倍频时钟 VLSI系统设计

  25. §Nexys3TM主要模块的设计 (2) — Cellular RAM • Cellular RAM:MICRON公司出品的PSRAM。 • PSRAM:pseudo-static RAM,伪静态随机存储器 • 内部的内存颗粒(一个单晶体管的DRAM储存格)跟SDRAM的颗粒相似, • 但外部的接口跟SRAM的接口是一样的,不需要SDRAM那样复杂的控制 • 器和刷新机制。 • 主要应用于手机,电子词典,掌上电脑等消费类电子产品,其体积小,功 • 耗低,价格只比相同容量的SDRAM稍贵一点点,比SRAM便宜很多,智 • 能手机基本采用256MB以上的PSRAM,很多采用512MB。 • 支持异步、同步、burst(突发)三种工作模式。 • Nexys 3TM板上的Cellar RAM: • 容量16Mbytes,23位地址线,16位数据线,支持8/16位两种数据访问。 • 异步工作模式下,读/写周期为70ns;同步工作模式下,主频为80MHZ。 VLSI系统设计

  26. §Nexys3TM主要模块的设计 (2) — Cellular RAM DATA为双向端口,控制时要特别注意 output enable write enable clock address valid wait chip enable lower byte enable upper byte enable control register enable VLSI系统设计

  27. §Nexys3TM主要模块的设计 (2) — Cellular RAM VLSI系统设计

  28. §Nexys3TM主要模块的设计 (2) — Cellular RAM 异步工作模式: 最少70ns 异步读时序 异步写时序 VLSI系统设计

  29. §Nexys3TM主要模块的设计 (2) — Cellular RAM 双向端口的控制:是通过控制三态门来实现的 FPGA外部 FPGA内部 z • 当z=1时,上面的通道导通,数 • 据从 FPGA内部向外部器件输出。 • 当z=0时,上面的管子被置为高 • 阻态,数据不能从上面的管子输 • 出,此时数据只可以从下面的通 • 道由FPGA外部期间向FPGA内 • 部输入。 • inout dinout • //双向端口只能声明为wire类型 • assign dinout = (z)? a : 1’bz a dinout VLSI系统设计

  30. §Nexys3TM主要模块的设计 (2) — Cellular RAM • 设计一个Cellular RAM控制器; • 以80ns的速度向Cellular RAM写入数据; • 以1s左右的速度从Cellular RAM中读出数据,并在7段数码管上进行显示。 采用UltraEdit参看所生成的二进制文件 逻辑设计基础

More Related