问答
直播中

mytom520

13年用户 43经验值
擅长:可编程逻辑 电源/新能源 存储技术
私信 关注

【Z-turn Board试用体验】+ 【第三贴】:PL部分(简单的一个串口收发)

本帖最后由 mytom520 于 2015-6-12 00:08 编辑

最近工作忙,好久没有更新帖子啦
1.1设计代码,在网络找到设计简明,占用资源较少
基本原理:
// 帧格式        |---------- frame ----------|
// rxdin -------___x=x=x=x=x=x=x=x=x=/------x===
//       idle  start   N_bits_data  [P]stop  idle/start
// 起始位总是为低电平,数据位可变长度,校验位[P]可设置无(奇或偶)校验,结束位总是为高电平

// 位采样   |----------- 1 bit -------------|
// rxdin ==x===============================x==
//         | | | | | | | | | | | | | | | | | |
// time    0 1 2 3 4 5 6 7 8 9 A B C D E F 0 1
// sample                O O O
1.2引入工程new projectàRTL Projectàadd filesà暂时不添加IPà暂时不添加约束
1.3单击RTL analysisàOpen Elaborated Design 可以看到工程分为五个模块
分别为:接收转发控制模块、波特率设置模块、发送模块、接受模块
1.6

1.4写好测试脚本,添加到工程:AddSimulation SourcesàRun Behavioral Simulation
1.5
调用Isim进行功能行为仿真。发送A5,一次先发送起始位、低位~高位、无校验、停止位0_10100101_1,即为A5

`timescale 1ns / 1ps

module TB_uart;

        // Inputs
        reg rst;
        reg clk;
        reg rxd;

        // Outputs
        wire txd;

        // Instantiate the Unit Under Test (UUT)
        uart uut (
                .rst(rst),
                .clk(clk),
                .rxd(rxd),
                .txd(txd)
        );

        initial begin
                // Initialize Inputs
                rst = 1;
                clk = 0;
                rxd = 1;

                // Wait 100 ns for global reset to finish
                #20; rst = 0;
                #20; rst = 1;
                // Add stimulus here
                #8680; rxd = 0;
//////////////////////////////////////////////               
                #8680; rxd = 1;
                #8680; rxd = 0;
                #8680; rxd = 1;
                #8680; rxd = 0;

                #8680; rxd = 0;
                #8680; rxd = 1;
                #8680; rxd = 0;
                #8680; rxd = 1;
//////////////////////////////////////////////        

        end

        always #10 clk = !clk;

endmodule
1.4
1.5功能仿真完毕, 添加约束Add or Create Constraints,单击Synthesis,选中右侧的Synthesis Designàsourceà Constraints,在default layout下三角中选I/O planning,在I/O ports下(可以在主菜单window下面找到)添加引脚
1.3
1.6 生成比特流文件到FPGA
利用上位机自发自收数据

回帖(1)

myir.tom

2015-6-11 09:49:18
还可以这样用,开眼界了
举报

更多回帖

发帖
×
20
完善资料,
赚取积分