请教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)语句那;
我是初学者,请大家多多帮助。
对下列语句不是特别的明白,不知道作者为什么要这样写,大家帮我来分析分析:
// 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]
你能帮我看看吗,我是不是还有什么没有改到位的,或者我上面的修改有问题
不去
