=================引言===================================================

昨天从某宝上买了一个很简单AG1280Q48的最小系统核心板,简单跑起来了小灯,跟几个朋友说好要提供一下操作步骤和详细的操作步骤,借这个BLOG我实现从0开始简单写写。

AG1280Q48是一个国产的CPLD,内部有1280个LE,相当于EPM570逻辑资源量的两倍,并且在传统的CPLD基础上加入了一个PLL 和一个内置的RAM,这就算是福利了。更重要的是当前价格仅仅是在10元RMB之内,可以说非常香甜。

==================关于FPGA/CPLD开发的两个基本阶段===========================

FPGA开发软件大约的工作流程是这样的:

步骤1,首先将我们的VERILOG代码进行分析编译成基本的LUT表和寄存器,虽然是相同的LUT表,但是给内部赋予不同初始数值就可以实现不同功能。如果用到了其他内部硬核比如PLL,DSP,RAM需要进行实例化。这一步骤的结果我们成为网表(NETLIST)。

步骤2,NETLIST里面就好像一个原理图结合PCB库导入到PCB文件里,接下来要进行布局和布线,将原件放在实际的位置上,生成对每个FPGA/CPLD内部连接的开关以及LUT的初始化文件。这一步可以叫做布局布线,或者叫做实现“Implament”。

当然这只是最简单步骤,忽略了寄存器复制,RETIMING,时序约束等各种其他细节。

第一步骤实际是公式化的,只要知道一个FPGA/CPLD里面用到的基本逻辑单元,就可以根据成熟的积累的算法实现到verilog代码到基本逻辑单元的映射。这也就是为什么有SYNPLIFY灯灯第三方综合软件的出现。尤其在QUARTUS和ISE综合能力不是那么强的年代,这些第三方软件还有一定市场。其生成NETLIST给厂家对应的EDA进行布局布线最终实现生成配置的BIT流。

我们想,如果我们设计一个CPLD/FPGA硬件,内部采用的是基本逻辑元素是跟现有厂家某一个型号兼容的,则我们可以上述的第一步可以用现有厂家的编译工具产生网表(NETLIST),有了这个NETLIST我们再根据自己的芯片内部LUT的放置和延迟等信息具体确定某个LUT放在哪个位置,必要时候为了达到时许要求还要进行寄存器复制等。这些工作是需要用到具体厂家芯片内部的各种信息,只能有厂家的来写这个软件。

===================AG1280Q48软件开发的思路==============================

上面讲了两个基本步骤,其实比较难的是第一步骤,但是国外有成熟的算法和积累的,经历了几十年的发展,已经成熟。国内人做产品还是比较机智的,第一步骤借用了国外的开发工具生成NETLIST,之后自己之要做好第二步骤来生成BIT流,最后再实现一个下载方案将生成BIT流烧入到此CPLD就行。

另外在纯粹的RTL综合时要确保不产生BRAM和其他的所选ALTERA的FPGA/CPLD内置硬核。

具体而言:AQ1280Q48使用的基本逻辑单元是兼容CYCLONE 4的,我们做一个简单的不不包含任何硬核的纯粹RTL设计,用VERILOG写好代码,再QUARTUS里面里面选定任意一个CYLONE 4的型号进行编译,确保代码没有错误。在AG软件软件下指定QUARTUS项目目录,之后AG软件在另外一个目录自动转换成了另外一个QUARTUS项目,将这个QURTUS项目编译一下再次生成NETLIST。之后就进入AG软件进行布局布线了。

上述步骤是纯RTL的编译,而AG1280Q48里面还赠送了两个硬核一个是PLL一个是BRAM,由于这两个不是纯RTL不能转换成LUT,所以要对应进行以下的骚操作:

1,将PLL或者BRAM设置为DESIGN PARTITION。

2,加入仿真文件,用里面的描述替代真实的PLL和BRAM模块

基本这样的步骤我们下一个BLOG就详细实践一下这个过程。

有了上面的原理分析下面的这些实际操作步骤就很容易理解和操作了

下面是几个连接可以参考:

https://github.com/xjtuecho/agmpill

AG1280Q48 最小系统板 V1 - 嘉立创EDA开源硬件平台

分享一个国产CPLD/FPGA芯片资料:AGM的AG1280Q48 / Xilinx/Altera/FPGA/CPLD/Verilog / WhyCan Forum(哇酷开发者社区)

国产AGM FPGA设计流程的详细介绍-电子发烧友网

国产CPLD中AG1280Q48进行开发的实践之一:思路分析相关推荐

  1. app中使用用户名/邮箱/手机号登录的思路分析

    摘要:app中使用用户名/邮箱/手机号登录的思路分析 1.客户端 客户端需要传递2个参数 account 代表:用户名/邮箱/手机号 password 代表:密码这里问题来了,那么如何判断识别用户输入 ...

  2. SBO系统中销售订单日志的跟踪统计思路分析

    在一个客户做项目的时候,客户碰到一个问题,就是销售人员在作了销售订单后,在后续过程中由于客户的原因或其他原因需要不断的调整销售订单的行交期,导致生产及仓库及管理人员无法及时监控这种变化,尽管SBO的销 ...

  3. ios开发 mvp实践_实践中开发人员的工作流程-我们如何在30天内建立​​MVP

    ios开发 mvp实践 by Léna Faure 莱娜·福雷(LénaFaure) 实践中开发人员的工作流程-我们如何在30天内建立​​MVP (The developer's workflow i ...

  4. 信息系统开发与实践课现状调研 批发零售领域中的信息系统实践现状调研 大学编程作业(TUST 天津科技大学 2023年)

    信息系统开发与实践课现状调研 批发零售领域中的信息系统实践现状调研 大学编程作业(TUST 天津科技大学 2023 年) 信息系统开发与实践课现状调研 批发零售领域中的信息系统实践现状调研 大学编程作 ...

  5. web前端开发最佳实践_学习前端Web开发的最佳方法

    web前端开发最佳实践 为什么要进行网站开发? (Why web development?) Web development is a field that is not going anywhere ...

  6. Web前端开发最佳实践(8):还没有给CSS样式排序?其实你可以更专业一些

    前言 CSS样式排序是指按照一定的规则排列CSS样式属性的定义,排序并不会影响CSS样式的功能和性能,只是让代码看起来更加整洁.CSS代码的逻辑性并不强,一般的开发者写CSS样式也很随意,所以如果不借 ...

  7. 在Visual Studio 2012中使用VMSDK开发领域特定语言(一)

    前言 本专题主要介绍在Visual Studio 2012中使用Visualization & Modeling SDK进行领域特定语言(DSL)的开发,包括两个部分的内容.在第一部分中,将对 ...

  8. 《微信公众平台开发最佳实践》——第3章 基 础 接 口 3.1 接收用户消息

    本节书摘来自华章出版社<微信公众平台开发最佳实践>一 书中的第3章,第3.1节,作者:方倍工作室,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 第3章 基 础 ...

  9. 《微信公众平台开发最佳实践》——2.4 本章小结

    本节书摘来自华章出版社<微信公众平台开发最佳实践>一 书中的第2章,第2.4节,作者:方倍工作室,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 2.4 本章小 ...

最新文章

  1. 数据库-优化-为什么要进行数据库优化
  2. cobaltstrick4.0系列教程(2)---用户接口
  3. ASIO 腾空出世 (那些年我们追过的网络库.PartII)
  4. 语音识别揭秘:你的手机究竟有多理解你?
  5. AcWing 892. 台阶-Nim游戏(nim博弈变种)
  6. 使用git作为首页以及克隆上传创建下载删除
  7. rpo流程图模板_Visio Pro 2019下载-Microsoft Visio Pro(流程图制作软件)下载2019x64 简体中文版-西西软件下载...
  8. android实现半透明,Android应用开发中半透明效果实现方案总结
  9. java打印菱形图案_如何使用java打印出菱形图案
  10. ACdream 1121 喵喵的IDE
  11. 中国城市乞丐的五大经典表情
  12. 运筹优化学习08:Repairing MIP infeasibility through local branching
  13. Java反射的底层原理,以及Java反射的性能分析及优化
  14. gallery3D(3)
  15. Object类型转换为Integer类型
  16. 全栈工程师实战:从 0 开发云笔记
  17. lt19264a+c语言程序,可以直接显示汉字的19264液晶驱动C语言程序
  18. python 下载 JPG 图片
  19. php 签名 bom,PHP与Unicode签名(BOM,Byte Order Mark)
  20. 大爱无疆,德泰先行——刘煊苗与他的德泰堂

热门文章

  1. 问题--联通研究院面试
  2. B1030 (完美数列)
  3. 从苏宁电器到卡巴斯基第04篇:我的本科时光(补)
  4. mysql实现分组查询每个班级的前三名
  5. Docker Swarm 快速入门
  6. vue 中 v-for 遍历 二维 对象数组
  7. 如何对查询好的快递单号物流进行删除的几种方法
  8. 《Java SE实战指南》01-09:常见问题及其解决方案
  9. 从Intel和ARM双雄争霸读懂芯片的前世今生
  10. 移动端浏览器预览word、excel、ppt