微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 请教OPENCORE上的UART16550代码

请教OPENCORE上的UART16550代码

时间:10-02 整理:3721RD 点击:
我现在正在学习OPENCORE上的UART16550代码,在看uart_regs.v文件时;
对下列语句不是特别的明白,不知道作者为什么要这样写,大家帮我来分析分析:
// lsr bit 1 (receiver overrun)
reg lsr1_d; // delayed
always @(posedge clk or posedge wb_rst_i)
  if (wb_rst_i) lsr1_d <= #1 0;
  else lsr1_d <= #1 lsr1;
always @(posedge clk or posedge wb_rst_i)
  if (wb_rst_i) lsr1r <= #1 0;
  else lsr1r <= #1 lsr_mask ? 0 : lsr1r || (lsr1 && ~lsr1_d); // set on rise
是不是和判断上升沿有关系,那为什么不用always @(posedge)语句那;
我是初学者,请大家多多帮助。

这个问题想必你现在极为明了了

小编怎么用的?

你好,我在使用OPENCORE上的UART16550时把FIFO大小改成32个字节,然后使用不是很稳定,你能不能教教我,我源代码没有全部看懂,将
1、uart_defines.v中
    `define UART_FIFO_DEPTH 16
      `define UART_FIFO_POINTER_W 4
      `define UART_FIFO_COUNTER_W 5
改成
    `define UART_FIFO_DEPTH 32
      `define UART_FIFO_POINTER_W 5
      `define UART_FIFO_COUNTER_W 6
2、raminfr.v中
    parameter addr_width = 4;
改成
    parameter addr_width = 5;
3、uart_rfifo.v中
曾加到 fifo[31]
你能帮我看看吗,我是不是还有什么没有改到位的,或者我上面的修改有问题

不去

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top