【中科亿海微EQ6HL45开发平台测评体验】+03.流水灯仿真和上板测试(zmj)
中科亿海微EQ6HL45开发平台提供了非常丰富的接口测试DEMO。
本节通过LED流水灯的仿真和上板测试,了解elinx软件开发FPGA的开发流程和仿真流程,同时也检验板上LED灯是否正常。
//------主要参考文档
//------eLinx软件使用手册 UG102_eLinx_Design_Suite_User_Guide_ehiway_v2021.11.pdf //------中科亿海微EQ6HL45开发板DEMO手册 EQ6HL45FPGA开发平台用户手册.pdf
中科亿海微的亿灵思®设计套件(eLinx Design Suite)使用第三方软件Mentor公司的ModelSim作为仿真工具。因此开始仿真前需要安装Modelsim,并且配置好eLINX的库文件。
我的电脑使用的是ModelSim-10.0c,具体安装过程此处不做额外展开描述。
//------ModelSim安装教程
//------ModelSim安装教程 https://www.bilibili.com/read/cv14582310?from=search //------其他 1.笔记本:w7系统 64位; 2.软件:modelsim-win64-10.6d-se(安装文件及破解文件) 3.百度网盘下载地址 链接:https://pan.baidu.com/s/1dGcmGHL2q1wzh2vX1OMm5w 提取码:ox09
安装好ModelSim之后,还需要指定仿真库和仿真软件的索引目录。
其中仿真库(Simulation_Library)为第三方软件提供FPGA的IP模型等内容,如果是纯RTL代码仿真的话可以无需设置此项。
//------亿灵思软件eLINX仿真设置
//------亿灵思软件eLINX仿真设置(根据实际路径进行填写) //---仿真库设置Simulation_Lib: C:/Program Files (x86)/eHiWay/eLinx2.0/Simulation/elinx_lib //---第三方仿真软件ModelSim设置: C:/altera/modeltech64_10.0c/win64
工程代码flow_led如下所示:
`timescale 1 ps/ 1 ps ////////////////////////////////////////////////////////////////////////////////// // Company: // Engineer: // // Create Date: 10-28-2021 09:38:40 // Design Name: // Module Name: flow_led // Project Name: // Target Devices: // Tool Versions: // Description: // // Dependencies: // // Revision: // Additional Comments: // ////////////////////////////////////////////////////////////////////////////////// module flow_led( input sys_clk , //系统时钟 input sys_rst_n, //系统复位,低电平有效 output reg [3:0] led //4个LED灯 ); //reg define reg [23:0] counter; //***************************************************** //** main code //***************************************************** //计数器对系统时钟计数,计时0.2秒 always @(posedge sys_clk or negedge sys_rst_n) begin if (!sys_rst_n) counter <= 24'd0; else if (counter < 24'd1000_0000) counter <= counter + 1'b1; else counter <= 24'd0; end //通过移位寄存器控制IO口的高低电平,从而改变LED的显示状态 always @(posedge sys_clk or negedge sys_rst_n) begin if (!sys_rst_n) led <= 4'b0001; else if(counter == 24'd1000_0000) led[3:0] <= {led[2:0],led[3]}; else led <= led; end endmodule
仿真代码sim_led如下所示:
`timescale 1 ns/ 1 ps module sim_led( ); //------parameter parameter PERIOD_100M = 10 ;//100MHz = 10ns //------ reg sys_clk ;//100MHz reg sys_rst_n ;//active low wire [03:00] led ; //------ initial begin sys_clk = 0 ; end always #(PERIOD_100M / 2) sys_clk = ~sys_clk ; initial begin sys_rst_n = 0 ; $display("************************************************"); $display("//---This is a simulation for flow_led."); $display("************************************************"); #1_000; sys_rst_n = 1 ; $display("//---Simulation is start."); $display("//---..."); #1000_000_000 ;//1000ms $display("//---Simulation is stop."); $stop(); #1_000_000 ;//1ms $finish; end //------ flow_led u_flow_led( .sys_clk (sys_clk ),//系统时钟 .sys_rst_n (sys_rst_n ),//系统复位,低电平有效 .led (led ) //4个LED灯 ); endmodule
添加仿真代码步骤如下:
//------添加仿真代码 a.双击flow_Led.epr,打开流水灯工程。 b.右键Simulation_Sources,选择添加文件Add_Sources。 c.创建sim_led文件。
上述步骤完成之后,可以进行仿真功能测试。
双击“Run_Behavioral_Simulation”,ModelSim自动仿真(注意:自动执行仿真代码,very-nice),仿真OK。
//------运行仿真步骤: a.进入工程目录,双击flow_Led.epr,打开流水灯工程。 b.创建或者添加仿真文件sim_led.v。 c.运行仿真Run_Behavioral_Simulation。 d.此时会自动打开ModelSim,并自动执行仿真指令“run -all”开始执行仿真代码。
上板测试步骤如下所示,上板验证OK:
//------上板测试 //---准备: a.编译工程生成Bitstream; b.JTAG烧录器连接开发板,打开板卡电源。 //---JTAG烧录bit步骤: a.Auto-Detect:JTAG扫描FPGA,此处扫描到EQ6HL45; b.Add-Files:添加烧录文件flow_led.jpsk; c.勾选“Program/Configure”; d.点击“Start”开始烧录。
//------END
引用: qzc飘曳 发表于 2022-11-6 19:41 这开发平台看着挺高级啊啊 ...
国产FPGA,PIN-to-PIN的替代spartan系列。
虽然不像Vivado那样自带仿真工具,但是关联ModelSim之后直接一键自动运行确实很惊艳。
国产FPGA,PIN-to-PIN的替代spartan系列。
虽然不像Vivado那样自带仿真工具,但是关联ModelSim之后直接一键自动运行确实很惊艳。
楼主的帖子非常好!
集成开发环境IDE用的是自己的吗?仿真软件用ModelSim挺好的,quarutsII也是这样的。
引用: hustjtj0806 发表于 2022-11-7 06:48 集成开发环境IDE用的是自己的吗?仿真软件用ModelSim挺好的,quarutsII也是这样的。
是的,中科亿海微的亿灵思eLINX软件。
引用: mars4zhu 发表于 2022-11-8 10:45 其实就是山寨Altera的Stratix系列的EP1S40/60/80系列。 eLinx软件就是个套壳Quartus 11.0。。 ...
我的个人理解是eLINX外观偏向于Quartus系列软件,但是功能更倾向于Vivado软件。因为代码中是支持部分Xilinx的一些综合语法。
芯片功能的话,我使用的开发测试平台是中科亿海微EQ6HL45,它使用的中科亿海微6系芯片。该款FPGA对标的是AMD-Xilinx公司的Spartan-6 CSG324,封装一致,片内Bank完全兼容,管脚定义几乎完全一致。按照厂家介绍EQ6HL45能够完美的实现原位替换。
引用: 卿小小 发表于 2022-11-8 14:45 我的个人理解是eLINX外观偏向于Quartus系列软件,但是功能更倾向于Vivado软件。因为代码中是支持部分Xili ...
你仔细观察eLinx软件的安装目录,以及它综合过程调用的进程,不难看出就是套壳Quartus,