完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
一、总体流程
开发工具: Vivado2020 Verilog ARTIX-7 FPGA AX7035 这是我做的完整流程,涉及到初级开发的功能; 新建工程:(RTL Project)芯片选型; 编写程序:源文件,仿真文件,约束文件; 时序仿真; 约束:IO配置; 综合; 实现生成二进制文件,下载验证。 这是网上找的的开发流程框图 二、具体流程 2.1 新建工程 现在进入了开发主界面,认识一下IDE的各部分 可以在右上角把自己拖拽好的布局保存下来。 2.2 编写程序 新建源文件: 然后有3个选择,分别对应约束文件,设计文件和仿真文件。此处先选择设计文件,也就是我们写的功能。 新建程序完成,开始写程序 这里忽视Verilog基础知识,可以先梳理整个流程。 然后反过来再看基础语法,推荐一个:传送门 代码:代码的意思先不说 module myLed( clk, rst_n, led ); input clk; input rst_n; output led; reg [27:0] cnt; //定义一个计数器计时 always @ (posedge clk or negedge rst_n) if(!rst_n) cnt《=0; //复位置0计数器 else if(cnt《=27‘d50000000) //需要经过50000000个周期才达到1s cnt《=cnt+1’d1; else cnt《=0; assign led=(cnt《=25000000) ? 1‘b1:1’b0; //占空比50% endmodule 这里有一个不好,和MATLAB2018一样,输入中文我的搜狗输入法会卡住,这就很烦人哦 2.3 时序仿真 新建仿真文件: 编写仿真文件: `timescale 1ns / 1ps module sim_myLed( ); reg clk; //输入时钟 reg rst_n; //输入复位 //reg [27:0] cnt1; //定义一个计数器计时, how to sew this? wire led; myLed later( .clk(clk), .rst_n(rst_n), //.cnt1(cnt), .led(led) ); initial begin rst_n = 1; clk=1; #100; $finish; //wait for user to click run button simulate, then start sim end always #100 clk = ~clk; // 125M ,as the simulation staeted, it works endmodule 写完仿真文件后,在sim_myLed上右击,set as Top,然后进行仿真 这里需要说明一下,仿真起来要和编写的仿真文件是相关的。仿真文件的编写,下面分析一下。 reg clk; //输入时钟 reg rst_n; //输入复位 //reg [27:0] cnt1; //定义一个计数器计时, how to sew this? wire led; 这三个是当前仿真文件下申明的变量,其中输入时reg,输出是wire。 myLed later( .clk(clk), .rst_n(rst_n), //.cnt1(cnt), .led(led) ); 这个叫做例化。可以理解为一个类的实例化。 其中,myLed是之前的设计文件,later是实例化的名字。 .clk(clk)就是参数,.clk()就是仿真文件里面的变量,括号里面就是myLed里面的。就相当于绑定在一起了。 (类比面向对象中类的实例化) initial begin rst_n = 1; clk=1; #100; $finish; //wait for user to click run button simulate,then start sim end always #100 clk = ~clk; // 125M ,as the simulation staeted, it works 这里initial下面这一段是启动仿真软件是执行的部分,也就是仿真的初始化,#100就是延时100单位时间,$finish就是等待用户进行下面的仿真。 always就是从头到尾一直执行的部分,这里一是是100个单位时间进行一次翻转,也就是时钟信号了。 3.4 约束文件 新建约束文件就略过了。 这里需要知道自己的开发板对应的IO口。 我用的开发板是这个:传送门 先点击左侧Schematic 再双击电路图上面的IO Ports 最后再下面选择Package Pin(需要对照原理图的接线) I/O std 先不要动,还没深入了解 好了之后可以看到约束文件: 觉得熟悉之后直接写约束文件会更高效。 2.5 综合 说一下我遇到的问题,可能大家也会遇到 好长时间综合没反应。 在工程综合的run的目录下运行系统cmd,看看能不能执行目录下面的这个bat文件。 试过论坛的好多方法都没有成功,千万别轻易相信换系统换软件版本的方法,成本太大。 我最后发现是电脑管家拦截了 但是也不绝对,问题现象一样但是原因未必。 2.6 生成二进制文件,下载验证 需要开发板打开电源,安装下载器驱动 |
|
|
|
只有小组成员才能发言,加入小组>>
4508个成员聚集在这个小组
加入小组3334 浏览 0 评论
航顺(HK)联合电子发烧友推出“近距离体验高性能Cortex-M3,免费申请价值288元评估板
4262 浏览 1 评论
4289 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 14:51 , Processed in 0.582547 second(s), Total 75, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号