[Actel FPGA] 谁实践过UART Core吗?

[复制链接]
3576|7
 楼主| LPC300 发表于 2010-2-8 20:39 | 显示全部楼层 |阅读模式
非常郁闷,一个星期调UARTCore,还是出现发送多个字节丢失数据,恳求哪位实践过这个Core的大虾出来讲讲到底应该怎么使用,像我这么使用接收和发送功能到底行不行啊?小弟刚学Verilog几天,实在是能力有限,但事情得交差,万不得已,请大家不吝赐教!

接收
if (1'b1 == rxRdy) begin
        rRecDatBuf = recDat;
        rSendDatBuf = rRecDatBuf;
        rUartRdEn <= 1'b0;

end
else
        rUartRdEn <= 1'b1;

发送
if (1'b1 == TI) begin
    rDataSend = dataBuf;
    rUartWrEn <= 1'b0;

end
else begin
    rUartWrEn <= 1'b1;
end

S3C2440 发表于 2010-2-8 21:51 | 显示全部楼层
Libero里面有自带的UART Core
六楼的窗户 发表于 2010-2-8 22:35 | 显示全部楼层
actel自带的COREUART很好用,我正在用,目前还没出现什么问题。
 楼主| LPC300 发表于 2010-2-24 16:15 | 显示全部楼层
谢谢大家啊!问题已经解决!
Tl590 发表于 2010-2-27 16:21 | 显示全部楼层
我用一个外部总线频率为80M的CPU来连接ACTEL的IP核 有CoreUart CoreGPIO CORERAM 接口部分已经将读写信号都同步到了FPGA的频率上来,用个简单的状态机来实现APB的时序 操作CoreGPIO CORERAM 都正常 唯独CoreUart密密发送会死机,现在还找不出原因
baiguo 发表于 2010-2-28 21:00 | 显示全部楼层
本帖最后由 baiguo 于 2010-2-28 21:06 编辑

to:六楼的窗户
    能不能贴段简单的测试代码?

我使用COREUART时,发送数据很正常,可总接收不到数据。???

rxrdy一直为低
baiguo 发表于 2010-2-28 21:51 | 显示全部楼层
找到原因了,coreuart的时钟不能太快。24MHz肯定是可以的
kingreat 发表于 2015-12-8 08:02 | 显示全部楼层
写COREUART
module uart_tx(clk, rst_n, txrdy, datain, wen, dataout);

input        clk;           // global clock input
input        rst_n;         // global reset input
input        txrdy;         // signs that transmitter is ready
input[7:0]   datain;        

output       wen;
output       dataout;

reg          wen;
reg[7:0]     dataout;
reg          tx_busy;

always @(posedge clk or negedge rst_n)
begin
    if (rst_n == 0)
        wen <= 1'b1;
    else
    begin
        if (tx_busy)
            wen <= 1'b1;
        else
        begin
            wen     <= 1'b0;
            dataout <= datain;
        end
    end
end

always @(negedge clk)
begin
    if (txrdy)
        tx_busy <= 1'b0;
    else
        tx_busy <= 1'b1;
end
      
endmodule

您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:30——驱动高手、流利的英语

107

主题

525

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部