UISRC工程师学习站
标题: 04使用安路TD开发工具创建FPGA工程 [打印本页]
作者: uisrc 时间: 2022-7-3 20:10
标题: 04使用安路TD开发工具创建FPGA工程
软件版本:Anlogic -TD5.6.1-64bit
操作系统:WIN10 64bit
硬件平台:适用安路(Anlogic)FPGA
1.1概述实验目的:
1:掌握基于TD创建FPGA工程的方法
2:掌握基于TD新建FPGA代码文件
3:掌握基于TD调用PLL IP CORE
4:掌握基于TD添加时序约束
5:掌握基于TD添加PIN脚约束
1.2如何利用TD创建FPGA工程启动TD软件
[attach]8980[/attach]
创建一个新的空的工程(虽然是国产FPGA厂家,但是目前国内主流FPGA厂家都是采用英文菜单,这个符合FPGA开发的习惯)
[attach]8981[/attach]
Project Name:新建一个fpga工程名,这里米联客的教学类fpga工程统一命名为fpga_prj
Project Path:工程路径设置,这里我们需要根据自己的磁盘和文件管理路径合理设置
Device Family:设置器件的系列,这里设置EG4,因为我们的开发板采用的是EG4D20EG176这颗FPGA芯片
Device Name:设置芯片的名字,这里选择EG4D20EG176
[attach]8982[/attach]
一个空的FPGA工程创建完成后入下图所示
[attach]8983[/attach]
以下是对软件工具的大概介绍更多可以结合具体应用加以理解:
[attach]8984[/attach]
1.3TD创建或者添加代码首先根据米联客的代码管理规范,在对应的FPGA工程路径下创建uisrc路径,并且创建以下文件夹
01_rtl:放用户编写的rtl代码
02_sim:仿真文件或者工程
03_ip:放使用到的ip文件
04_pin:放fpga的pin脚约束文件或者时序约束文件
05_boot:放编译好的bit或者bin文件(一般为空)
06_doc:放本一些相关文档(一般为空)
[attach]8985[/attach]
1:如何新建FPGA代码文件右击Hierarchy可以看到弹出的菜单中可以选择新建fpga代码或者添加已经存在的fpga代码
[attach]8986[/attach]
比如新建FPGA代码选择New Source
File Type:如下图所示,可以支持多种编程语言,这里选择verilog
[attach]8987[/attach]
File Name:设置文件名
Location:设置文件路径,这里放到uisrc/01_rtl路径下方便管理
[attach]8988[/attach]
当只有一个文件的时候,默认是Top文件
[attach]8989[/attach]
当有多个文件软件无法确认top文件的时候,可以右击文件名设置
[attach]8990[/attach]
双击代码,可以看到TD默认输入了2行代码
[attach]8991[/attach]
编写以下测试代码,其中关于PLL IP核调用的部分我们提前调用了接口,用户也可以在PLL核产生后再调用
`timescale 1ns / 1ps
module pll_test( input sysclk, output [1:0]up_led );
wire clk0; wire pll_lock; reg [25:0] cnt;
assign up_led = {cnt[25:24]};
mypll mypll_u( .reset (1'b0), .refclk (sysclk), .clk0_out (clk0),//single output up to 200MHz .extlock (pll_lock) );
always @ (posedge clk0)begin cnt <= cnt + 1'b1; //cnt power on initial value is all 1 end endmodule |
2:添加PLL IP核[attach]8992[/attach]
[attach]8993[/attach]
[attach]8994[/attach]
[attach]8995[/attach]
[attach]8996[/attach]
[attach]8997[/attach]
[attach]8998[/attach]
[attach]8999[/attach]
[attach]9000[/attach]
[attach]9001[/attach]
[attach]9002[/attach]
3:调用PLL双击IP内部的代码,查看PLL的调用接口(由于我们提前编写的代码正确调用该PLL所以可以看到PLL包含在顶层代码的下一级中,否则会和顶层代码平级)
[attach]9003[/attach]
添加调用PLL的端口
mypll mypll_u( .reset (1'b0), .refclk (sysclk), .clk0_out (clk0),//single output up to 200MHz .extlock (pll_lock) ); |
修改完代码后,记得保存文件。
1.4添加约束文件TD软件可以通过多种方式添加约束文件
为了可以通过向导定义约束,需要线综合下,双击综合
[attach]9004[/attach]
综合完成后,对应的符合上打了✔
[attach]9005[/attach]
1:如何通过向导添加1.1:添加IO约束利用向导方式,一定要先完成综合,这样软件才能识别出来端口
[attach]9006[/attach]
[attach]9007[/attach]
根据原理图中的定义,正确填写IO号,如下所示:
我们根据原理图填写好Location 以及IOStandard其他默认,对于一些高速应用我们可能还要设置输出输出延迟
Name:信号名字
Direction:IO输入输出方向
Bank:FPGA的IO所在的BANK(FPGA的IO会分布在多个BANK)
Location:IO的具体位置,这也是我们重点需要约束的,这里需要看原理图找到PIN脚定义
IOStandard:IO的电平模式,需要正确设置,一般单端的有LVCMOS33\ LVCMOS25\ LVCMOS18等
DriverStrength:驱动能力,数值越大,驱动能力越强
PullType:上拉下来类型
SlewRate:转换速度,对于低速场合选择SLOW高速场合选择FAST
InDelay:可以手动设置IO输入延迟
OutDelay: 可以手动设置IO输出延迟
DifferentioalPair:差分对
其他一些设置暂时都用不到
[attach]9008[/attach]
设置好后,单击保存,一般选择single Line方式,阅读起来比较简洁
[attach]9009[/attach]
保存Pin脚约束到文件路径uisrc/04_pin,命名为fpga_pin.adc
[attach]9010[/attach]
之后会提示是否添加到本工程,单击YES
[attach]9011[/attach]
可以看到现在已经添加进来了
[attach]9012[/attach]
双击查看文件
[attach]9013[/attach]
1.2:添加时序约束首先双击综合
[attach]9014[/attach]
[attach]9015[/attach]
由于刚刚添加完成PIN脚约束,所以会有以下警告提示单击Continue,由于我们确认代码没修改,因此继续添加
[attach]9016[/attach]
本方案比较简单,我们只添加周期约束
[attach]9017[/attach]
[attach]9018[/attach]
继续添加PLL时钟约束
设置时钟约束的Generated clock的Targets属性
[attach]9019[/attach]
[attach]9020[/attach]
单击创建
[attach]9021[/attach]
单击Finish完成工程的创建
如果之前没有定义过时序约束文件,会提示保存文件
[attach]9022[/attach]
我们不使用默认的命名,我们修改到路径uisrc/04_pin路径下,并且命名为timing.sdc
[attach]9023[/attach]
最后点击save
[attach]9024[/attach]
[attach]9025[/attach]
[attach]9026[/attach]
可以双击查看约束
[attach]9027[/attach]
2:如何移除约束文件单击需要移除的约束文件,然后右击
[attach]9028[/attach]
分别移除fpga_pin.adc和timing.sdc文件
[attach]9029[/attach]
3:如何添加已有约束文件有2个位置都可以添加已经存在的约束文件,一个是project Hierarchy中右击constraint添加,另外一个是在FPGA Flow中双击User Constraints中的Add ADC file和Add SDC File
[attach]9030[/attach]
分别右击constraint添加PIN脚约束文件和时序约束文件
[attach]9031[/attach]
[attach]9032[/attach]
1.5工程编译1:一键编译[attach]9033[/attach]
完成编译后如下
[attach]9034[/attach]
2:查看控制台报告[attach]9035[/attach]
3:查看Log Tree报告[attach]9036[/attach]
4:查看资源利用报告[attach]9037[/attach]
5:查看时序分析报告[attach]9038[/attach]
1.6下载演示1:硬件连接请确保下载器和开发板已经正确连接,并且开发板已经上电(注意JTAG端子不支持热插拔,而USB接口支持,所以在不通电的情况下接通好JTAG后,再插入USB到电脑,之后再上电,以免造成JTAG IO损坏)
[attach]9039[/attach]
2:程序下载单击下载按钮
[attach]9040[/attach]
可以看到已经识别到芯片,但是请注意,实际芯片是EG4D20EG176,而识别出来的变成了EAGLE_S20_EG176,但是这个不影响我们下载,所以继续。
[attach]9041[/attach]
2.1:下载bit选择bit文件
[attach]9042[/attach]
选中后单击Run
[attach]9043[/attach]
下载成功
[attach]9044[/attach]
可以看到LED开始运行。
2.2:固化到FLASH在Mode中选择 PROGRAM_FLASH,之后单击RUN
[attach]9045[/attach]
下载成功
[attach]9046[/attach]
3:运行结果[attach]9047[/attach]
附录:常见问题1联系方式
米联客社区FPGA/SOC QQ群:
群1:516869816 群2:543731097
群3:86730608 群4:34215299
技术微信:18951232035
技术电话:18951232035
官方微信公众号(新微信公众号):
[attach]9048[/attach]
2售后1、7天无理由退货(人为原因除外)
2、质保期限:本司产品自快递签收之日起,提供一年质保服务(主芯片,比如FPGA 或者CPU等除外)。
3、维修换货,需提供淘宝订单编号或合同编号,联系销售/技术支持安排退回事宜。
4、以下情形不属于质保范畴。
A:由于用户使用不当造成板子的损坏:比如电压过高造成的开发板短路,自行焊接造成的焊盘脱落、铜线起皮 等
B:用户日常维护不当造成板子的损坏:比如放置不当导致线路板腐蚀、基板出现裂纹等
5、质保范畴外(上方第4条)及质保期限以外的产品,本司提供有偿维修服务。维修仅收取器件材料成本,往返运 费全部由客户承担。
3销售
销售电话:18921033576
公司地址:常州溧阳总部:常州溧阳市中关村吴潭渡路雅创高科智造谷10-1幢楼
南京研发基地:南京市栖霞区仙林大道181号5幢1820室
4在线视频5软件下载6经验分享7官方博文
欢迎光临 UISRC工程师学习站 (https://www.uisrc.com/) |
Powered by Discuz! X3.5 |