软件版本:Fuxi2022.1 操作系统:WIN10 64bit 硬件平台:适用京微齐力FPGA 1概述实验目的: 1:掌握基于Fuxi创建FPGA工程的方法 2:掌握基于Fuxi新建FPGA代码文件 3:掌握基于Fuxi调用PLL IP CORE 4:掌握基于Fuixi添加时序约束 5:掌握基于Fuxi添加PIN脚约束 2创建FPGA工程2.1创建1个新的工程启动Fuxi2022.1 创建一个新的工程 Project Directory设置工程路径 Project Name 设置fpga工程名称,米联客的教学内容fpga工程一般命名为fpga_prj TopModule Name设置顶层模块的名称 Design Files如果有,可以单击Add添加,也可以工程创建完成后新建或者添加,这里我们还没有创建FPGA代码文件,所有先不添加。 Device Family设置向导: Family:FPGA的系列家族,这里选择P1 Device Type:选择FPGA Package:封装选择BGA324 Flash:P1默认没有内置FLASH所以是NO Flash
Current Select Device选型向导: 选择具体的FPGA型号,这里选择P1P060N0V324C7
Operation Condition:芯片操作设置向导 Junction Temperature:何止工作温度范围 Core Tolerance Range:设置核心工作电压范围,一般选择默认设置 Perform Timing Analysis Base on:设置时序分析策略,一般设置为Typical 2.2创建FPGA程序文件右击创建或者添加文件,把工程文件管理标签切换到Project可以看到fpga_prj工程名。 我们这里创建一个新的pll_test文件,并且编写相应的代码 右击下图空白处,单击Add New File(如果有编写好的代码也可以直接选择Add Existing File) 米联客习惯把一些IP路径根据自己的习惯放到自定义的路径下 创建pll_test.v测试程序文件,并且保持到uisrc/01_rtl路径下
编写测试代码 module pll_test( input sysclk, output up_led ); wire [3:0] up_led;
wire clk0; wire pll_lock; reg [25:0] cnt;
assign up_led = {cnt[25:24] };
mypll mypll_u( .clkin0 (sysclk), .clkout0(clk0),//single output up to 200MHz .locked (pll_lock) );
always @ (posedge clk0)begin cnt <= cnt + 1'b1; //cnt power on initial value is all 1 end
endmodule |
2.3添加PLL IP以上代码中用到了PLL,PLL IP的添加过程如下: 添加IP 选择Phase-Locked Loop 这个IP Number of clock output:输出的时钟数量选择1,最大可以设置6 Delay unity 设置时钟相位偏移的方式,默认是设置角度 Clock0 output: Frequency设置倍频输出的频率 Delay设置相位 其他的Use fraction divider和Dynamic phase shift以及Bypass模式都没用到 可以看到右边mypll ip里面调用 PLLV1 源语 2.4手动更新层次化目前fuxi软件默认需要手动刷新(手动刷新可以防止自动刷新导致某些时候卡顿)后才能看到FPGA的层次结构,切换到Hierarchy,并且单击下右边的箭头位置如图,更新下层次设计 3添加PIN脚约束Fuxi软件目前添加PIN脚约束只能通过向导方式,所以需要先实现RTL的综合,这样软件才能识别到端口的IO名称(后期Fuxi应该也会支持直接添加文本方式的PIN脚约束)。 如果综合有错误,需要修改后重新综合 之后单击IO Editor就可以添加PIN脚了 Port Name:端口信号名称 Location和Pin Name都是可以约束到具体的IO上的,其中location是X芯片封装的IO位置,而Pin Name对应了IO的功能 Direction:代表了信号的传输方向,这个也是由代码的端口信号决定 Operation Mode:操作模式,可以看到Fuxi可以自动识别是时钟还是普通IO信号 Fast Input:是否是高速输入信号 Fast Output:是否是高速输出信号 Bank: IO所在的BANK位置 IO Stander 选择IO电平,正确的IO电平可以达到最大的速度 Drive Strength(mA):电流驱动能力,这里选择默认8ma Bus Keeper:暂时不知道什么功能 Slew Rate:设置信号的速度类型 Transceiver I/O Termination:终端电阻设置 Input Delay:输入延迟时序约束 Output Delay:输出延迟时序约束 设置完成后保存 4添加时序约束单击箭头所指图标 可以选择创建一个新的时序约束文件,或者一个已经存在的时序约束文件 首先对系统输入时钟约束 之后设置正确的时钟频率或者周期 以同样的方式对PLL输出的时钟约束 之后保存约束 提示是否添加到当前的工程,单击YES 刷新下,就能看到timing.sdc添加进来了 5一键编译 单击如下图标编译 可以看到全部编译通过 5查看时序报告6程序下载1:硬件连接请确保下载器和开发板已经正确连接,并且开发板已经上电(注意JTAG端子不支持热插拔,而USB接口支持,所以在不通电的情况下接通好JTAG后,再插入USB到电脑,之后再上电,以免造成JTAG IO损坏)
2:程序下载单击下载按钮 京微齐力推荐程序直接下到FLASH速度更快 下载成功 这个时候已经可以看大LED的运行,断电重启后,程序也能从FLASH启动 3:运行结果7如何压缩程序增加速度选择Settings,设置Bitstream的压缩方式,可以减少下载实际,也可以增加FPGA的加载速度 附录:常见问题1联系方式
米联客社区FPGA/SOC QQ群: 群1:516869816 群2:543731097 群3:86730608 群4:34215299
技术微信:18951232035 技术电话:18951232035
官方微信公众号(新微信公众号): 2售后1、7天无理由退货(人为原因除外) 2、质保期限:本司产品自快递签收之日起,提供一年质保服务(主芯片,比如FPGA 或者CPU等除外)。 3、维修换货,需提供淘宝订单编号或合同编号,联系销售/技术支持安排退回事宜。 4、以下情形不属于质保范畴。 A:由于用户使用不当造成板子的损坏:比如电压过高造成的开发板短路,自行焊接造成的焊盘脱落、铜线起皮 等 B:用户日常维护不当造成板子的损坏:比如放置不当导致线路板腐蚀、基板出现裂纹等 5、质保范畴外(上方第4条)及质保期限以外的产品,本司提供有偿维修服务。维修仅收取器件材料成本,往返运 费全部由客户承担。 3销售
销售电话:18921033576
公司地址:常州溧阳总部:常州溧阳市中关村吴潭渡路雅创高科智造谷10-1幢楼 南京研发基地:南京市栖霞区仙林大道181号5幢1820室 4在线视频5软件下载6经验分享7官方博文
|