今天学习了FPGA设计流程的视频,我理解要做一个完整的FPGA系统,所要经历的步骤,先将它简单总结如下:

我在对上面的流程图进行解释:

  第一:设计定义就是我们这个FPGA系统或者FPGA设计所要实现的具体功能。如设计定义为流水灯还是呼吸灯,这就是设计定义。

  第二:设计输入就是我们设计Verilog代码或功能模块。

  第三:仿真包括前仿真和后仿真。前仿真就是寄存器仿真也是功能仿真,是在理想状态下的仿真,没有考虑延迟等。

后仿真则是门级仿真或时序仿真,考虑了时间延迟等不理想因素。

第四,板级验证则是在进行仿真后,没有出现问题,完整实现了设计的功能,直接把工程下载到板子上观察,看是否在开发板或实际电路上实现功能。

  下面讲讲我自己的感悟:

这几个步骤的联系是调试

  由于在进行FPGA设计时,总会有各种问题存在,如逻辑错误,观察到实验现象和预期效果不符,所以我们就需要修改自己的代码和执行逻辑,这就是调试。

  如在进行串口通信实验时,我原本设计发送Recive这个字符,可实验现象是“RRRRRR”,那我就需要定位问题,再修改自己的逻辑,然后观察实验现象看是否正确发送Recive这个字符。

  这就需要进行仿真,观察到发送字母的数据位一直为零,即不管我给了六个不一样的字母,它始终只发送第零位,即R。通过这个现象,那我就可以修改代码,每发送一个字母,如R或e等就让数据位增一,最终就能正确发送字符Recive。

  对调试的总结:调试就是把设计与验证搞成一致。

  观察实验现象是否正确,不正确。则A——定位问题。B——修改对应的代码逻辑。C——继续仿真观察波形是否正确(若不正确则返回A循环)。

  这是我自己看完视频,所做的笔记整理和总结感悟。若老铁们有啥建议,欢迎提出来,一起分享讨论,多谢。

最新文章

  1. Git版本控制管理学习笔记5-提交
  2. 批处理(.bat)For命令使用
  3. MySQL基础 - 外键和约束
  4. python使用rrdtool时 argument 0 must be string的问题
  5. mysql 中的外键key值的详解
  6. Layer 1: Single Objects
  7. 推送 -- error:Not get deviceToken yet
  8. PowerShell3.0中,所有的命令
  9. boost.asio系列——Timer
  10. MySQL浅谈 LEFT JOIN
  11. Springboot 系列(六)Spring Boot web 开发之拦截器和三大组件
  12. 【POJ2230】Watchcow
  13. twitter typeahead控件使用经历
  14. Unable to update the EntitySet 'T_JsAPI' because it has a DefiningQuery and no <InsertFunction> element exists in the <ModificationFunctionMapping> element to support the current operation.
  15. laravel配置路由除了 / 都是404解决办法
  16. PowerDesigner执行脚本 name/comment/stereotype互转
  17. View 的滑动
  18. 【Lua】Lua + openresty遍历文件目录
  19. iframe 模拟ajax文件上传and formdata ajax 文件上传
  20. 3、Angular2 Input

热门文章

  1. NVARCHAR(MAX) 的最大长度
  2. 选题在线提交系统(html+JS+php)
  3. Ueditor富文本编辑器--上传图片自定义上传操作
  4. JSR310-新日期APIJSR310新日期API(完结篇)-生产实战
  5. SpringBoot 全局异常处理 @RestControllerAdvice +@ExceptionHandler 请求参数校验
  6. Visual Studio Code打开后是黑色的什么都没显示
  7. 简单的节流函数throttle
  8. 手写Promise原理
  9. Java中将文件夹复制到另一个文件夹
  10. MATLAB神经网络(2)之R练习