一:错误原因,顶层信号声明类别错误 错误前 更改后 二:综合时警告 更改前: 错误原因:调用子模块时 输出端口只能用wire类型变量进行映射 这是verilog语法规定的 tx_done在uart_tx模块中初始化时的赋值是0,send_en需要在初始化后置为1.而我这样写,初始化后send_en仍然是0,逻辑出现问题.需要将tx_done取反后再赋值.这样逻辑就正确了.再次综合后就没有这个警告了  三:this signal is connected to multiple drivers错误…
一.硬件描述语言Verilog 粗略地看Verilog与C语言有许多相似之处.分号用于结束每个语句,注释符也是相同的(/* ... */和// 都是熟悉的),运算符"=="也用来测试相等性.Verilog的if..then..else语法与C语言的也非常相似,只是Verilog用关键字 begin和end代替了C的大括号.事实上,关键字begin和end对于单语句块来说是可有可无的,就与C中的大括号用法一样.Verilog和C都对大小写敏感.  当然,硬件和软件的一个重要区别是它们的&…
问题: 什么是锁存器? 什么时候出现锁存器? 锁存器对电路有什么影响? 如何在FPGA设计中避免锁存器? 在FPGA设计中应该避免锁存器.实际上,锁存器与D触发器实现的逻辑功能基本相同,都有暂存数据的功能.但如果两者都由与非门搭建的话,锁存器耗用的逻辑资源要比D触发器少(D触发器需要12个MOS管,锁存器只需6个MOS管),锁存器的集成度更高.所以在的ASIC设计中会用到锁存器.但锁存器对毛刺敏感,无异步复位端,不能让芯片在上电时处在确定的状态:另外,锁存器会使静态时序分析变得很复杂,不利于设计…
本文属于EDA技术概述类文章 1 EDA技术及其发展 概念 EDA(Electronic Design Automation),指的是以计算机为工作平台,以EDA软件工具为开发环境,以PLD期间或者ASIC专用集成电路为目标期间设计实现电路系统的一种技术. 电子CAD(Computer Aided Design) 狭义的CAD 偏重于"制图"和"建模"(几何模型),广义CAD即覆盖了所有利用计算机进行辅助设计的过程,在这个意义上,CAE和EDA 也可以理解为是CAD…
在使用Synplify综合时,此工具会自动优化我的设计. 当然此功能有好有坏,最近有个项目需要使用Chipscope观察内部信号,打开inserter就懵了,信号列表中我的设计有的是名字被改了,有的是干脆给优化没了. 网上当然也有人提出这个问题, 例如 http://www.xilinx.com/support/answers/5249.html 就提供了一个 /* synthesis syn_keep = 1 */ 的语法来保留自己的设计. 随后又以 /* synthesis syn_keep…
话不多说先上图 前言 在做这个实验的时候在网上找了许多资料,都是关于使用单片机驱动LCD显示,确实用单片机驱动是要简单不少,记得在FPGA学习交流群里问问题的时候,被前辈指教,说给我最好的指教便是别在玩这个了,多看看关于FPGA方面的书籍,比做这个单片机做的东西价值强多了.现在想来确实,自从学习FPGA以来,看过的书没有多少,只是想做个什么了,就在网上找找例程,照抄下来,把算法推理一遍,下个板子实现了,便以为自己会了懂了,要是自己在写一个便问题百出.那么菜鸟始终是菜鸟.自己根本没有掌握FPGA的…
!干货! 为设计指定输入驱动强度 set_driving_cell set_drive set_input_transition 本文转自:自己的微信公众号<集成电路设计及EDA教程> 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教程. 考虑到微信公众平台上面发布的很多推文百度搜索不到,所以以后的推文也会在这里进行转载. 推文主要内容: 为设计指定输入端口驱动强度: set_driving_cell命令: set_drive命令:…
Web API核查表:设计.测试.发布API时需思考的43件事   当设计.测试或发布一个新的Web API时,你是在一个原有的复杂系统上构建新的系统.那么至少,你也要建立在HTTP上,而HTTP则是基于TCP/IP创建的.TCP/IP建立在一系列的管道上.当然,你也需要考虑Web服务器.应用程序框架或者是API框架. API从设计到测试以至最终的发布需要经历一个漫长的过程,本文将主要探讨Web API从设计到最终发布,开发者可能忽略或者应该注意的东西. HTTP篇 HTTP 1.1规范RFC2…
数组的综合应用 // 打印数组 public static void printArray(int[] arr) { for(int x=0;x<arr.length;x++) { if(x!=arr.length-1){ System.out.print(arr[x]+","); }else{ System.out.print(arr[x]); } } } 数组转字符串 // 数组转换成为字符串 // 结果返还为字符串,参数为数组 public static String to…
转自http://ninghechuan.com 我不生产知识,我只是知识的搬运工. Handshake Protocol握手协议!为了保证数据传输过程中准确无误,我们需要加上握手信号来控制信号的传输.本篇文章使用Verilog设计一个简单的Valid-Ready握手协议电路. 为了保持数据的传输,通常使用握手信号.握手协议的原则是: 当Valid和Ready信号同时高有效时,数据在时钟上升沿传输. 本设计可以实现数据的流入和数据的流出,这样一个双端口握手协议通道传输. 对于Valid和Read…