安路FPGA开发入门:软件安装与点灯与仿真(TangDynastyModelSim)
- 人工智能
- 2025-09-13 21:12:02

文章目录 前言软件安装开发软件仿真软件 点灯测试代码编写与编译引脚分配固件下载 仿真测试ModelSim添加仿真库TangDynasty仿真设置进行仿真 后记 前言
最近因为工作需要用安路的FPGA,这里对安路FPGA开发相关流程做个记录。作为测试只需要一个核心板(我这里用的 EF2L45LG144B )和下载器( AL-LINK ,我这里是核心板上板载的)。
安路的所有软件和资料都可以在官网上下载到,不过因为权限问题,有些内容可能需要发邮箱给安路申请提升权限: .anlogic /
软件安装 开发软件安路FPGA开发软件是 TangDynasty ,这里使用下面版本,另外还需要下载 license : 之前碰到过笔记本离电性能平衡模式下怎么样装都装不成功,插电高性能下安装就一点都没问题,不知道是不是安装程序哪里有超时机制处理不当的BUG什么的。
软件安装后需要手动把下载的 license 放到安装目录对应位置下(这个许可是过段时间就过期,需要重新下载替换,可以用文本方式查看到有效期限):
软件安装后安装目录对应位置下有下载器的驱动,下载器连接电脑后可能需要手动更新驱动才会正常:
软件安装后可以打开软件找到软件手册: 这个手册基本上用到的东西都有介绍了,熟悉FPGA开发的人直接看这个就能用起来了。
仿真软件ModelSim-英特尔® FPGAs 标准版软件版本: .intel /content/ /cn/zh/software-kit/750666/modelsim-intel-fpgas-standard-edition-software-version-20-1-1.html
点灯测试这里直接就点灯进行测试了。
代码编写与编译首先新建文件:
编写代码如下:
module blink(clk, led); input clk; output reg led = 0; reg [31:0] counter = 0; always@(posedge clk) if (counter == 5_000_000) counter <= 0; else counter <= counter + 1; always@(posedge clk) if (counter == 5_000_000) led <= !led; endmodule我的板子上有个 10MHz 的时钟输入到芯片,我拿它设置了个500ms的计数器,每次计数溢出时翻转一次外接LED的端口电平,实现LED闪烁效果。
运行编译:
引脚分配没有报错的话分配下IO口:
另外未用到的IO口状态可以在下面地方统一设置(默认通常是上拉输入的):
固件下载设置IO口后重新运行编译,成功后可以下载比特流( .bit )文件到芯片中看到LED闪烁效果: 下载时选择 JTAG ,掉电后就会失效;选择 PROGRAM FLASH 掉电后也不会失效。
这里有点问题,官方说 PROGRAM FLASH 是下载到外部Flash, PROGRAM INTERNAL FLASH 是下载到芯片内置的Flash中,我的芯片按理说是选用后者才对,但我这里后面的选项不可选,并且选择前面的也可以正常使用。
仿真测试TangDynasty 使用 ModelSim 仿真可以参考软件手册或者也可以参考下面文章: chipdebug /forum-post/55252.html
下面步骤中在 ModelSim添加仿真库 后其实就直接可以在 ModelSim 中进行仿真了,这个可以参考上面资料。这里介绍的是通过 TangDynasty 生成仿真脚本来进行仿真。
ModelSim添加仿真库ModelSim添加仿真库理论上对于源码和库目录大概是没有硬性要求的,这里参考上面资料的方式进行介绍。
首先在ModelSim目录中新建存放安路器件源码和模块库的目录,并从TangDynasty安装目录中拷贝源码到这里:
需要注意的是如果在上面目录中新建和拷贝需要权限的话,下面打开ModelSim需要以管理员方式打开,否则建立文件等会失败。
启动 ModelSim ,选择 File > Change Directory 将路径转到 anlogic 文件夹下。然后选择 File > New > Library 下新建库:
选择 Compile → Compile 进行编译:
编译完成后可以看到模块和相关文件:
TangDynasty仿真设置TangDynasty可以生成ModelSim用的放在脚本,但是需要进行一些设置。
Process > Properties >
进行仿真
首先根据实际需求在 Process > Properties 设置模块库目录以及仿真时间和精度:
然后准备测试脚本,比如这里用 blink_tb.v ,测试脚本内容如下:
`timescale 1ns/1ns // 仿真时间尺度和精度 module blink_tb(); reg sig_clk; wire sig_led; blink blink_inst( .clk(sig_clk), .led(sig_led) ); initial sig_clk = 0; // 设置初值 always #50 sig_clk = ~sig_clk; // 每 50*1ns 翻转一次sig_clk(即10MHz信号) initial begin // 开始执行 #2_000_000_000; // 延时 2_000_000_000 纳秒(即 2000ms 或 2秒钟) $stop; // 停止执行 end endmoduleTangDynasty中运行到不同的步骤可以执行不同发仿真:
当 HDL2Bit Flow 运行至 Read Design 这一步时,可执行 Behavioral Simulation; 当 HDL2Bit Flow 运行至 Optimize RTL 这一步时,可执行 Post-RTL Simulation; 当 HDL2Bit Flow 运行至 Optimize Gate 这一步时,可执行 Post-Gate Simulation; 当 HDL2Bit Flow 运行至 Optimize Routing 这一步时,可执行 Post-Route Simulation。
例如下面:
接着选择 Tool > Simlation 添加测试脚本:
添加后会生成仿真脚本,注意检查相关内容,如果不对可以在这里直接修改,需要注意的是 -voptargs=+acc 这行:
之后就可以在ModelSim中进行仿真了,首先切换目录:
然后输入命令开始执行仿真:
仿真结果如下:
后记TangDynasty 整体使用还是比较简单的,只有使用ModelSim来仿真稍稍会麻烦些,但也不算特别麻烦。
安路FPGA开发入门:软件安装与点灯与仿真(TangDynastyModelSim)由讯客互联人工智能栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“安路FPGA开发入门:软件安装与点灯与仿真(TangDynastyModelSim)”
 
               
               
               
               
               
               
               
               
   
   
   
   
   
   
   
   
   
   
   
   
  