FPGA入门学习
新手学习FPGA的入门之路
小天才一号
这个作者很懒,什么都没留下…
展开
-
Sdram(三)
SDRAM初始化 SDRAM 初始化参考流程如下: (1) 对 SDRAM 上电,加载稳定时钟信号, CKE 设置为高电平; (2) 等待 T=100us 的时间,此过程中操作命令保持为空操作命令; (3) 100us 等待结束后,写入预充电命令, A10 设置为高电平,对所有 L-Bank 进 行预充电; (4) 预充电指令写入后,等待 tRP时间,此过程中操作命令保持为空操作命令; (5) tRP等待时间结束后,写入自动刷新命令; (6) 自动刷新命令写入后,等待 tRC时间,此过程中操作命令保持为空原创 2021-12-23 18:34:27 · 363 阅读 · 0 评论 -
Sdram(二)
{ CS#、 CAS#、 RAS#、 WE#}构成 SDRAM 操作命令。 NOP:0111 该命令给被选中的 SDRAM 芯片传递一个空操作信息,目的是为了防止 SDRAM 处于空闲或等待状态时,其他命令被写入,此命令对正在执行的命令无影响 Load Mode Register:0000 此命令只有所有 L-Bank 均处于空闲状态时才可被写入,否则配置出错,而且在执行此命令后, SDRAM 必须等待相应的 响应时间 tRSC(Register Set Cycle),模式寄存器配置周期)后,才可写入新的命原创 2021-12-23 17:56:06 · 731 阅读 · 0 评论 -
Sdram(一)
SDRAM(Synchronous Dynamic Random Access Memery)同步动态随机存储器 同步:Sdram的工作时钟与FPGA的时钟频率一致,SDRAM均以此时钟作为基准,同步接口; 动态:电容(存储电荷,但电容会放电,需要不断刷新); 随机:给一个地址,找到存储单元进行读写; 特点:存储空间大,功耗低;发展到五代产品SDRAM、DDR SDRAM、DDR2、DDR3、DDR4 **第一代是单端时钟信号,且数据只在上升沿采样;后面几代均为差分时钟抗干扰,双沿采样;**控制逻辑比较复杂原创 2021-12-23 17:26:41 · 326 阅读 · 0 评论 -
串口顶层模块
串口顶层模块Verilog代码实现 module uart_rs232 ( input sys_clk, input sys_rst, input rx, output tx, ); parameter UART_BPS=14'd9600; parameter CLK_FREQ=26'D50000000; // wire [7:0]po_data; wire po_flag; uart_rx #( .UART_BPS (UART_BPS), //串口波特率 .CLK_FREQ (原创 2021-12-08 15:19:12 · 162 阅读 · 0 评论 -
串口发送模块(二)
串口发送模块Verilog代码实现 module uart_tx //定义参数接口 #( parameter UART_BPS = 9600; parameter CLK_FREQ = 50_000_000 ) ( input sys_clk, input sys_rst, input wire pi_flag input [7:0]pi_data, output reg tx, ); parameter BAUD_CNT_MAX = CLK_FREQ/UART_BPS;原创 2021-12-08 15:04:06 · 320 阅读 · 0 评论 -
串口接收模块(二)
串口接收模块Verilog代码实现 module uart_rx //定义参数接口 #( parameter UART_BPS = 9600; parameter CLK_FREQ = 50_000_000 ) ( input sys_clk, input sys_rst, input rx, output reg [7:0]po_data, output reg po_flag ); parameter BAUD_CNT_MAX = CLK_FREQ/UART_BPS;原创 2021-12-08 11:48:50 · 347 阅读 · 0 评论