【新玩具get】AGM AGRV2K,16.8块钱的MCU+FPGA二合一芯片 / DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 / 哇酷®开发者社区(WhyCan® Forum)

【新玩具get】AGM AGRV2K,16.8块钱的MCU+FPGA二合一芯片 / DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 / 哇酷®开发者社区(WhyCan® Forum)

板子还没到 +1,先看了下 SDK,奇妙(

文档里写过的就不说了,试了下流程,编译了 AgRV_pio\platforms\AgRV\examples\custom_ip,这个例子把 FPGA 里的 M9K 挂在了 alta_rv32 的 AHB 上

PIO 打开工程后:1. PIO 里,Project tasks - dev- Custom - Prepare IP,会在 .\logic 下生成 Quartus 和 Supra 工程;这里 custom_ip.v 是 SDK 给出的,但如果是自己写的话它会根据ve自动生成一个模板 custom_ip_tmpl.v 2. Quartus 里 Compile Design 一下,生成 .\logic\simulation\modelsim\custom_ip.vo3. Supra 打开 .\logic 下的工程,Tools - Compile, Run 一下,生成 FPGA 部分(不带 alta_rv32)的网表 .\logic\custom_ip\custom_ip.vx4. PIO 中,Project tasks - dev- Custom - Update Logic,先 gen_vlog,根据你写的引脚分配 .\top.ve 和刚刚 Supra 生成的 .\logic\custom_ip\,生成整个芯片的 top 到 .\.pio\logic\top.vx,然后再由 gen_logic.tcl 布局布线生成码流5. 生成的时序报告在.\.pio\logic\logic_db\setup*.rpt.gz 和 hold*.rpt.gz 一共四个文件,布局布线后的网表生成到 .\.pio\logic\top_routed.vx,实际烧写到 Flash 最后 100k 处的 bin 是 .\.pio\logic\top.bin (99,944 Bytes)6. 板子还没到,没法烧写,不过大概执行的内容是在 AgRV_pio\platforms\AgRV\builder\main.py 中与 logic_actions 有关的部分吧(

至于引脚,alta_rv32 貌似只能按照 “AGRV2K 逻辑设置” 文档中的 Function pin 列表来复用,但是这个表的每一行应该是都能通过包一层 FPGA 引出到任意的 PIN(?);USB D+D-则是固定的;关于引脚分配的更多注意事项,建议直接在 AgRV_pio\packages\framework-agrv_sdk\etc\gen_vlog 中搜索 ErrorOut (雾)

顺便可以看下综合结果,里面集成的 FPGA 有这些资源(其中 BRAM 是 M9K):

Total Logics : 97/2112 ( 4%)

Total LUTs : 97/2112 ( 4%)

Total Registers : 73/2112 ( 3%)

Total Block Rams : 4/ 4 (100%)

Total PLLs : 1/ 1 (100%)

Total Pins : 12/ 128 ( 9%)

Global Signals : 3/ 5 ( 60%)只是试了下流程,上面提到的不一定准确,如果有误还请指出