[MCU] 【AGM32VF407】fpga开发

啊菠萝   2023-8-22 17:52 楼主

AGM32中最亮眼的就是这款芯片自带2K FPGA逻辑,可以单独使用MCU或FPGA ,当然也可以使用MCU+FPGA功能同时使用。

    那么这篇文章就尝试使用一下,这款芯片自带的FPGA吧。

    首先需要准备两个工具

            1,Quartus II (AGM32建议是在13.0版本以上)

            2,supra工具。(这个工具嘛,就是用来进行工程转换的),官方有下载地址

https://pan.baidu.com/s/1bAQMrJYrR-6JzJFDIGdNBg?pwd=q59e 

最新版本为2023.07。 image.png  

参考文章为:
MANUAL AGRV2K.pdf (1.24 MB)
(下载次数: 21, 2023-8-22 16:57 上传)

接下来就按照参考文章进行测试吧。

进入Supra-2023.07.b0-b2a325f9-win64-all\bin目录中就可以看到supra.exe文件了。

这个东西怎么用呢?主要有以下几个步骤

image.png  

1.打开supra:下面就是supra软件的样子啦。

image.png  

2.创建supra工程:File->project->new project

image.png  

我在D:/desk/TEST目录下创建了一个叫led的supra工程。创建完成后左下角会出现

image.png  

3.打开tools->migrate进行工程转换

image.png  

下面贴一段官方文档的文字

Target Directory 默认为新建的工程目录,Migrate from directory 不填,输入设计名称(这里例如 led),Device 选 AGRV2K 系列型号。选择 ve 文件(管脚分配文件)。IP 文件不用。

选择对应开发 Mode:Native 选项(AGM 自有 EDA 综合工具),Synplicity 选项(第三方综合工具,例如 Synplify,Mentor 等),Compatible 选项(兼容 Altera Quartus II 的综合工具)。

4.编辑ve文件:同样贴一段官方文档的文字

ve 文件为 IO 管脚位置设置,可通过任意文本编辑器自行编辑产生。管脚名称请参考前面的管脚说明表格(PIN_1,PIN_2 格式),全局信号最好选 IO_GB 管脚。ve 文件格式如下(管脚设计名称+空格+封装管脚名称)

image.png  

5.打开quartus编写代码

module  led
#(
    parameter   CNT_MAX = 25'd24_999_999  
)
(
    input   wire    clk     ,   //系统时钟
    input   wire    rst   ,   //全局复位

    output  reg     led         //输出控制led灯
);

//reg   define
reg     [24:0]  cnt;               

//cnt:计数器计数,当计数到CNT_MAX的值时清零
always@(posedge clk or negedge rst)
    if(rst == 1'b0)
        cnt <= 25'b0;
    else    if(cnt == CNT_MAX)
        cnt <= 25'b0;
    else
        cnt <= cnt + 1'b1;

//led_out:输出控制一个LED灯,每当计数满标志信号有效时取反
always@(posedge clk or negedge rst)
    if(rst == 1'b0)
        led <= 1'b0;
    else    if(cnt == CNT_MAX)
        led <= ~led;

endmodule

6.使用tcl脚本

设计完成后,Quartus II 中选择菜单中 Tools -> Tcl Scripts...,窗口中选 af_quartus.tcl,点击 Run进行编译,综合产生网表文件

注意呀,需要选择af_quartus.tcl脚本啊。字体很小,容易选错,哈哈

image.png  

7.回到Supra软件再编译一次得到*.bin文件

Supra 里继续执行 Next,开始进行编译。编译选项,默认即可。

编译成功后可以得到烧写文件,led.bin

image.png  

8.将*.bin文件用supra进行烧录

Supra 软件中选 Tools –> Program,下载线选 JLINK。速度默认即可。可以先点击 Query device ID,查看是否检测到器件,正确 ID 为:40200001选择编程文件 led.bin,点击 program 开始烧写文件。如没有出现错误信息弹出,显示“donewith code 0”,即烧写成功,程序开始运行。

 

注:由于我没有jlink所以没有办法进行烧录这一步。那么我为什么会选择尝试以下呢?因为supra软件下载时可以选择

image.png  

我有一个CMSIS-DAP啊,但是经过我测试不能下载,找不到器件。

image.png  

这是JLINK原理图对吧,那么我将swclk与TCK连接,swdio与TMS连接。结果是不行的。

 

那么好,这个时候打开keil->Debug

选择CMSIS-DAP ->setting 

image.png  

居然可以识别成功。真是小母牛坐飞机了。那么我有一个想法

 

 

哈哈,希望有大佬指点以下怎么用的啊,学stm32的时候买的全是盗版St-link,哈哈。实在没有jlink啊。

好了,以上就是使用fpga的一些步骤啦,希望有jlik的小伙伴们试试啊。

本帖最后由 啊菠萝 于 2023-8-22 17:52 编辑

回复评论 (3)

盗版的jlink也可以用 需要接 TDI TMS TCK TDO 这4根线,还要供电 ,jlink的驱动也要更换


dap我换了好几种,都不能用


点赞  2023-8-23 02:40

我比较反对的是这货不能用 Altera Quartus 的WEB版,因为WEB版比较小,也是免费的,非要强制我们用破解版。

点赞  2023-8-23 09:39
学习了!只是不会fpga!
点赞  2023-8-24 10:01
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复