分享

zynq中纯PL编程

 Smartyy 2015-11-10

    没接触zynq之前,只用过FPGA,在FPGA中用verilog编程简单明了,后来稍微学习过一点nios ii,就在FPGA中也用过一点点nios ii。所以在刚接触zynq的时候,我就感觉zynq跟altera的FPGA和nios ii的编程肯定会有一些相似的地方。学习zynq的时候,一开始我就想弄清楚三个问题,第一zynq中怎么使用纯PL(programmable logic)部分?(就是把zynq当做普通FPGA用)第二zynq中怎么使用纯PS(process system)部分?(就是把zynq当做一个纯arm使用)第三自然而然就是zynq的PS和PL部分怎么协调工作,谁是主谁是从?

    刚接触的时候好多教程都是教你怎么用PS部分,我捉摸了一段时间弄清楚了怎么使用纯PL部分了。希望大家在初学的时候能把PS和PL部分的关系弄清楚,对学习也会更有帮助的~

    使用纯PL部分的时候,就把zynq当做一个FPGA使用,使用FPGA的时候,有一个引脚是时钟输入引脚,这个特别重要,这个是源头,一般在FPGA中用verilog编程会使用同步操作,也就是在一个主时钟信号下编程。

    首先新建工程,然后在vivado中project manager中add sources,选择design sources,添加.v文件,然后写一个简单verilog程序,如下图。



附代码:

<pre name='code' class='cpp'>module zynq_led(    input clk_pl,    input rst_n,    output[7:0] led    );reg [31:0]state;   always@(posedge clk_pl, negedge rst_n)if(!rst_n)begin    state<=32'b0;endelsebegin    state<=state+1'b1;endassign led=state[31:24];endmodule



    代码写好后就综合,run syhthesis,等待综合完毕后,打开systhesized Design,开始引脚分配。

    首先要找到时钟引脚,然后在分配引脚的时候,把这个引脚分配给时钟信号。我的开发板上K17是时钟输入引脚,所以分配这个引脚到clk_pl,且是输入。然后是复位按键和输出led引脚。(复位按键可以不要)



引脚分配好了之后,就可以开始run implemented,然后等待完成。然后就是导出硬件流,烧写到zynq的PL中去,这样就可以啦。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多