2012年4月25日

关于FPGA设计仿真和硬件实测不一致问题的讨论

摘要: 总结了一下本人项目中遇到的类似问题, 大家如果遇到可以从以下方面着手检查bug.1.寄存器未给初值;一个良好的习惯就是每个寄存器变量都要在reset里面预先定义初值. 看下面一个例子:reg [1:0] unini;always@(posedge clk or negedge rst)begin if(~rst) ;//未给定初值 else begin unini<=2'd1; if(unini<2'd1) a<=b; endend这个例子是笔者在做项目的时候真实经历的一个bug的一个简化描述,实际代码比这个要复杂得多,当时也是找了半天最后才发现是寄存器未给初 阅读全文

posted @ 2012-04-25 08:57 K海风 阅读(598) 评论(1) 推荐(0) 编辑

2012年4月23日

Verilog测试平台(testbench)技术(六)

摘要: 7.随机的时间间隔 前面介绍了如何应用系统任务$random产生随机数据。本节讨论在测试平台中采用随机时间作为输入x赋值语句中的延迟。 如下面描述的测试平台,其中用到$random产生延迟控制,对前面的1101序列检测器进行测试。测试平台中,命名为running的initial语句为电路产生适当的reset和start信号。在这个过程块中,由非阻塞赋值语句生成的时间延迟被作为绝对的时刻值。/*************************************************************************///采用随机时间间隔的测试平台module test_mo 阅读全文

posted @ 2012-04-23 19:48 K海风 阅读(992) 评论(0) 推荐(0) 编辑

Verilog测试平台(testbench)技术(五)

摘要: 6. 交互式测试平台 在下面的几个测试平台里,我们采用了新的待测状态机,如下面代码所示。它是一个有开始 (start) 和复位 (rst) 控制的 1101Moore 序列检测器。它共有 5 个状态,在序列检测器的检测过程中,如果 start 的值变为 0 ,那么状态机复位到初始状态。当前状态到达 e 状态时,输出为 1 。/*************************************************************************/// 带开始 (start) 和复位 (rst) 控制的 1101More 序列检测器`timescale 1ns/100. 阅读全文

posted @ 2012-04-23 19:47 K海风 阅读(611) 评论(0) 推荐(0) 编辑

Verilog测试平台(testbench)技术(四)

摘要: 3. 设置数据限制 测试平台也可以不通过设置仿真时间限制来控制仿真时间,而是通过对 MUT 输入数据的数量进行设置来达到控制仿真时间的目的。同样,也可以停止仿真,避免其无限制地运行。下面 Verilog 代码描述了 moore_detector 模块的第四中测试平台。这里采用 $random 对输入 x 生成随机数据。 initial 块里的 repeat 语句让时钟共执行 13 次变化,每 5ns 变化一次;而 x 共得到 10 个新数据,每隔 7ns 变化一次。这里采用随机信号代替固定的测试数据。这种策略生成数据比较简单,但是分析输出时比较困难,因为它的输入是不可预测的。对于大规模电路.. 阅读全文

posted @ 2012-04-23 19:46 K海风 阅读(979) 评论(0) 推荐(0) 编辑

Verilog测试平台(testbench)技术(三)

摘要: 二、测试平台技术 下面讨论许多有关测试激励生成与输出结果观测的代码编写技术。在这里待测模块我们使用一个如下描述的 Moore 状态机,它是一个 101Moore 序列检测器。当检测到输入序列为 101 时,当前状态值变为 d ,输出 z 的值为 1 。这是一个同步复位电路。/*************************************************************************/ `timescale 1ns/100ps module Moore_detector (input x, rst, clk, output z); parameter [1. 阅读全文

posted @ 2012-04-23 19:45 K海风 阅读(981) 评论(0) 推荐(0) 编辑

Verilog测试平台(testbench)技术(二)

摘要: 2.时序电路测试时序电路测试包括测试电路时钟与输入数据的同步。这里以一个名为misr的模块为例说明时序电路的测试方法。misr模块描述的电路有一个输入时钟、一个复位信号、输入数据与输出数据。该电路有一个poly参数,用于计算让的输出值和数据压缩。每个时钟上升沿到来时,通过已有的misr寄存器数据和输入数据计算新的输出值。其Verilog描述如下。/*************************************************************************/ `timescale 1ns/100ps module misr #(parameter [3:0] 阅读全文

posted @ 2012-04-23 19:43 K海风 阅读(1001) 评论(0) 推荐(0) 编辑

Verilog测试平台(testbench)技术(一)

摘要: 对设计进行功能仿真和时序仿真时,需要给待测模块提供激励输入。对于由Verilog语言描述的设计模块,最好的方法自然同样是用Verilog语言对待测模块施加激励和检测模块的输出响应。实际应用中,Verilog测试平台(testbench)就是用来提供上述功能的。Verilog测试平台是一个例化的待测(MUT)Verilog模块,给它施加激励并观测其输出。由于测试平台是用Verilog语言描述 的,因此可以应用到不同的仿真环境中。待测模块和与之对应的测试平台组成一个仿真模型,应用这个模型可以在不同的测试环境中用相同的激励对待测模块进行调试。下面就对不同电路类型分别介绍verilog测试平台的语言结 阅读全文

posted @ 2012-04-23 19:42 K海风 阅读(3765) 评论(0) 推荐(1) 编辑

FPGA设计者的5项基本功(转载)

摘要: 记得《佟林传》里,佟林练的基本功是“绕大树、解皮绳”,然后才练成了什么“鬼影随行、柳叶绵丝掌”。 在我看来,成为一名说得过去的FPGA设计者,需要练好5项基本功:仿真、综合、时序分析、调试、验证。 需要强调的一点是,以上基本功是针对FPGA设计者来说的,不是针对IC设计者的。对于IC设计,我不懂,所以不敢妄言. 对于FPGA设计者来说,练好这5项基本功,与用好相应的EDA工具是同一过程,对应关系如下: 1. 仿真:Modelsim, Quartus II(Simulator Tool) 2. 综合:Quartus II (Compiler Tool, ... 阅读全文

posted @ 2012-04-23 08:57 K海风 阅读(340) 评论(0) 推荐(0) 编辑

2012年4月16日

modelsim PE DE SE的区别及一些配套工具

摘要: The combination of industry-leading performance and capacity with the best integrated debug and analysis environment makes ModelSim the simulator of choice for both ASIC and FPGA design.Combining single kernel simulator (SKS) technology with a unified debug environment for VHDL, Verilog, SystemVeril 阅读全文

posted @ 2012-04-16 09:13 K海风 阅读(2067) 评论(0) 推荐(0) 编辑

2011年12月19日

Altera发布基于FPGA的1080p/30fps视频分析解决方案

摘要: 延续其在高清晰(HD) 视频监控解决方案上的领先优势,Altera公司 (NASDAQ: ALTR) 发布世界上第一款基于FPGA的全HD 1080p/(每秒30帧) 30fps视频分析解决方案,它采用Cyclone® IV FPGA。Altera的单芯片解决方案进一步提高视频分析的性能,同时实现极大的吞吐量(每秒60-Mpixel),以及传统基于数字信号处理(DSP)方法无法实现的像素精度细节。解决方案包括Eutecus的多核视频分析引擎(MVE™)知识产权(IP),它在FPGA中完成分析功能。由于这一解决方案很容易集成到HD互联网协议摄像机中,因此,它非常适合包括流量监控在内的各 阅读全文

posted @ 2011-12-19 09:14 K海风 阅读(412) 评论(0) 推荐(0) 编辑

2011年12月8日

Gige Vision Camera 和usb,1394 camera的优缺点比较

摘要: 1)GigE Vision相对于模拟标准而言的优势是,它是数字的,无需图像采集卡且更偏重与图像处理功能;相对于Camera Link而言,GigE Vision的优势是它的传输距离长、无需图像采集卡和更偏重于图像处理功能;相对于IEEE 1394而言,GigE Vision的最大数据率更高,传输距离更长;相对于USB 2.0而言,GigE Vision的优势是,它是一项更完整的标准、更高的最大数据率、更长的传输距离。2) 困扰GigE Vision的一个主要问题是,以太网协议是基于包交换的,每次收到数据包的时候都要向CPU发起中断,大数据量的图像传输,使CPU疲于应付数据包的中 断,造成丢包、 阅读全文

posted @ 2011-12-08 16:59 K海风 阅读(1804) 评论(0) 推荐(1) 编辑

2011年10月26日

Avalon-MM接口与Avalon-ST接口(简介)

摘要: 1. Avalon-MM接口:2006.11之前只有这一种接口,许多关于Nios的书里描述的都是这种接口。最早的一本SOPC书籍《挑战SOC》中Avalon总线一段,就是按照2003.7的《Avalon Bus Specification》翻译的。那时的Avalon还被称作总线。此后的相应文档被称作《Avalon InteRFace Specification》。2006.11之后,相应的文档更名为《Avalon Memory-Mapped Interface Specification》,以与《Avalon Streaming Interface Specification》区分。 2. A 阅读全文

posted @ 2011-10-26 09:50 K海风 阅读(2034) 评论(0) 推荐(0) 编辑

2011年10月20日

基于FPGA的UART接口协议设计

摘要: 一、PC终端概述PC终端,Personal Computer 智能终端,通俗的讲,就是利用电脑GUI界面控制我们的外部硬件电路。因此设计到了PC与外部硬件电路的通信接口。对于台式电脑、个人笔记本,最常用的接口就是USB接口、串口、并口、PS2接口、网口。在我们电子设计中的PC终端软件的通信,应用最多的就是串口、其次是USB接口、再就是网口。(对于现在大部分笔记本没有了串口,我们可以用USB专串口线来代替。)这三种接口速度和性质不同,各有千秋:(1)电子产品中,很多低速的数据采集,一些点阵系统的配置,GPRS模块的调试等,都用串口来实现跟PC的通信。甚至一些单片机(宏晶STC)的配置都用串口实现 阅读全文

posted @ 2011-10-20 18:30 K海风 阅读(2394) 评论(1) 推荐(0) 编辑

2011年10月8日

CPLD-FPGA论坛

摘要: 1. OPENCORES.ORG 这里提供非常多,非常好的PLD了内核,8051内核就可以在里面找到。进入后,选择project或者由http//www.opencores.org/browse.cgi/by_category进入。对于想了解这个行业动态人可以看看它的投票调查。http://www.opencores.org/polls.cgi/listOpenCores is a loose collection of people who are interested in developing hardware, with a similar ethos to the free soft 阅读全文

posted @ 2011-10-08 15:40 K海风 阅读(461) 评论(4) 推荐(0) 编辑

导航