【Z-turn Board试用体验】+ 【第三贴】:PL部分(简单的一个串口收发) - 问答 - 电子技术论坛 - 最好最受欢迎电子论坛!

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

mytom520 ( 楼主 ) 2015-6-9 22:02:51  只看该作者 倒序浏览
本帖最后由 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.4写好测试脚本,添加到工程:AddSimulation SourcesàRun Behavioral Simulation

调用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.5功能仿真完毕, 添加约束Add or Create Constraints,单击Synthesis,选中右侧的Synthesis Designàsourceà Constraints,在default layout下三角中选I/O planning,在I/O ports下(可以在主菜单window下面找到)添加引脚

1.6 生成比特流文件到FPGA
利用上位机自发自收数据

1个回复

myir.tom 发表于 2015-6-11 09:49:18
还可以这样用,开眼界了
您需要登录后才可以回帖 登录 | 注册

本版积分规则


关闭

站长推荐上一条 /6 下一条

小黑屋|手机版|Archiver|电子发烧友 ( 湘ICP备2023018690号 )

GMT+8, 2024-10-20 03:33 , Processed in 0.446327 second(s), Total 39, Slave 28 queries .

Powered by 电子发烧友网

© 2015 bbs.elecfans.com

微信扫描
快速回复 返回顶部 返回列表