做fpga也有四年时间了,该有个总结。刚开始那会,学习东西都是死记硬背,去面试也是直接带着答案去了。

时间久了,才懂得设计一些基本思路。

1. 设计输入:

  verilog代码和原理图。画原理图都是懒得做visio架构图的。一般来说设计fpga开始都要有个系统设计架构图。设计原理图也有缺陷,每个软件不能通用,关键每次版本升级以后,原理图容易出问题。

  写verilog的代码,比较累,写连接线,最烦就是怕重复定义,怕位数不对。关键设计初期,要学会总体规划,模块分配。

2.功能仿真

功能仿真用modelsim,写个测试文件。

初学者,写测试文件是很苦逼的事情。几千行代码,慢屏幕的 #时间 驱动.自己还得看仿真后的波形,手动调节时间参数。每次RTL代码一改动,时间需要相当累。

  功底到了一定阶段,你就会放弃这种垃圾的测试方法。在测试代码开始写RTL 代码,或者跟跟随多次时钟。写的很多,直接使用存储表的文件直接测试,查看结果。

  不过技术如何,波形仿真一定要做,要看清初始化状态。没有初始化的信号。

3.约束

  约束包括时钟约束。IO引脚约束,内部布线资源约束。时钟约束,大部分人都知道。为了内部的RAM,移位寄存器,加法器,乘法器规定速度工作,你必须要约束这些时钟线。

  IO引脚约束是包括引脚锁定,IO寄存器约束。引脚锁定,这些大家都知道,没引脚锁定,你下载到fpga是没有工作的。IO寄存器约束知道的人甚少了。当你使用GMII和RGMII,SDRAM,DDR2,你知道多苦逼的事情。因为你不约束他们,他们总线跟时钟是无法在规定时间变化的,fpga也不知道采集数据是否正确,在时钟沿前多少,后应该多少,总线才能完全翻转过来。

4.后仿真

  我开始搞fpga,也学我以前主管,写好代码,做完功能仿真,就用signaltaP了。后来搞cpld之后,功能仿真正确,下进去之后,出问题不知道怎么调试。后来使用软件编译生成后仿真,才会用CPLD。

后仿真,基本没什么文章说这个问题。有人看了红色信号,不输出信号总不知道什么问题。那就是时序违规,仿真软件判断违规时序的。问题在于。第一个,时钟约束达不到,第二个,IO约束达不到。

5.硬件调试。

  很多用了xilinx和altera都觉得自己懂fpga很深了,就是有了内部探测工具。但估计没有多少人去了解上电触发,表达式控制方法。有的信号,上电就挂了,有人用一个十几秒的延时等待。你让编译器累死,时序也会导致不满足。还有不会多个表达式的,看个信号,只要前后,搞缓存特大也看不到,苦逼吧。

6. 下载编程。加密。

下载编程,线一连,点下program就行了。

shop104791135.taobao.com

FPGA流程设计的更多相关文章

  1. FPGA/CPLD设计思想与技巧

    本文讨论的四种常用FPGA/CPLD设计思想与技巧:乒乓操作.串并转换.流水线操作.数据接口同步化,都是FPGA/CPLD逻辑设计的内在规律的体现,合理地采用这些设计思想能在FPGA/CPLD设计工作 ...

  2. 【转载】FPGA算法设计随笔

    FPGA设计算法依次需要完成MATLAB浮点仿真 MATLAB定点仿真 verilogHDL定点运算以及数据对比的流程.其中浮点到定点的转换尤为重要,需要在数据表示范围和精度之间做出权衡.另外掌握定点 ...

  3. FPGA重要设计思想

    FPGA重要设计思想   1.速度和面积互换原则.以面积换速度可以实现很高的数据吞吐率,其实串/并转换.就是一种以面积换速度的思想 2.乒乓操作. 3.串/并转换的思想. 高速数据处理的重要技巧之一. ...

  4. Atitit 修改密码的功能流程设计 attilax总结

    Atitit 修改密码的功能流程设计 attilax总结 1.1. 注意点1 1.2. 设计修改用户密码功能时把用户ID保存在哪里?1 1.3. Ui设计1 1.4. 功能设计源码1 1.5. Agt ...

  5. 审核流(2)流程设计-SNF.WorkFlow功能使用说明--SNF快速开发平台3.1

    流程设计 图形化的流程设计,更方便.直观 1.打开“流程设计“程序,如上.点击”新建“如下: 2.红色部分为必填项,审批对象是选择要审批的程序菜单,单据名称是在审核流流转时用于提示的单据名称,还要选择 ...

  6. asp.net 微信企业号办公系统-表单及流程设计配置实例

    在环境搭建好之后,我们就来学习一下怎样快速创建一个流程,并执行和流转该流程(我们这里讲的只是入门,不涉及到具体流程参数设置). 创建一个流程步骤为:在数据库在创建表-->设计表单-->设置 ...

  7. asp.net 微信企业号办公系统-流程设计--保存与发布

    如果流程未设计完时可以先保存,以后再打开接着设计.点击工具栏上的保存按钮即可保存当前流程设计: 如果下次要接着设计,则可以打开该流程继续设计: 如果流程设计完成,可以点击安装按钮来发布流程,流程安装成 ...

  8. asp.net 微信企业号办公系统-流程设计--流程步骤设置-策略设置

    策略设置包括当前步骤的流转方式,处理人员,退回策略等设置. 流转类型:当前步骤后面有多个步骤时,此类型选择可以决定后续步骤的发送方式. 1.系统控制:由系统根据您在线上设置的流转条件来判断该发送到哪一 ...

  9. FPGA高级设计——时序分析和收敛(转)

    何谓静态时序分析(Static Timing Analysis,简称STA)? 它可以简单的定义为:设计者提出一些特定的时序要求(或者说是添加特定的时序约束),套用特定的时序模型,针对特定的电路进行分 ...

随机推荐

  1. Spring Boot Ftp Client 客户端示例支持断点续传

    本章介绍 Spring Boot 整合 Ftpclient 的示例,支持断点续传 本项目源码下载 1 新建 Spring Boot Maven 示例工程项目 注意:是用来 IDEA 开发工具 File ...

  2. Vue——手机号、验证码登录(设置按钮60s禁用倒计时)

    最近在做一个Vue项目,前端通过手机号.验证码登录,获取验证码按钮需要设置60s倒计时(点击一次后,一分钟内不得再次点击).先看一下效果图: 输入正确格式的手机号码后,“获取验证码”按钮方可点击:点击 ...

  3. Binary Heap(二叉堆) - 堆排序

    这篇的主题主要是Heapsort(堆排序),下一篇ADT数据结构随笔再谈谈 - 优先队列(堆). 首先,我们先来了解一点与堆相关的东西.堆可以实现优先队列(Priority Queue),看到队列,我 ...

  4. Elasticsearch 6.8.4 启动报错解决方法

    运行环境:centos 7,jdk 1.8 问题一: ERROR: bootstrap checks failed max ] ] 原因:无法创建本地文件问题,用户最大可创建文件数太小 解决方案:切换 ...

  5. Tesseract-OCR 4.1.0 安装和使用— windows及CentOS

    OCR(Optical character recognition) —— 光学文字识别,是图像处理的一个重要分支,中文的识别具有一定挑战性,特别是手写体和草书的识别,是重要和热门的科学研究方向 截止 ...

  6. vue学习笔记:Hello Vue

    编写简单例子,了解下基本语法 <!DOCTYPE html> <html> <head> <meta charset="utf-8 "&g ...

  7. git 从创建到推送到远程,到拉取,实操

    https://www.liaoxuefeng.com/wiki/896043488029600/900003767775424 初始化 git init 添加所有文件到暂存区 git add . c ...

  8. K8s / Kubernetes 从入门到入门

    Kubernetes介绍 1.背景介绍 云计算飞速发展 - IaaS - PaaS - SaaS Docker技术突飞猛进 - 一次构建,到处运行 - 容器的快速轻量 - 完整的生态环境 2.什么是k ...

  9. development tool

    Eclipse :        https://www.eclipse.org/downloads/ WebStorm:   http://www.jetbrains.com/webstorm/do ...

  10. [NOI 2011]NOI 嘉年华

    Description 题库链接 给你 \(n\) 个区间,让你选出其中一些分为两组,要求两组区间不能有交集,组内可以有交集.让你最大化两组之间区间个数较小的那一组的选取区间个数.以及对于每个区间 \ ...