0. 简介 在FPGA程序调试时,我们除了仿真还经常的会用到SignalTap进行板级调试,其可以真实有效的反应某些变量的变化,方便我们理解内在跳转,方便Debug的运行.SignalTap需要制定时钟,根据需求进行选择,其采样遵循奈奎斯特因采样定律. 我们在Debug中有时会经常遇到这样的情况,在SignalTap中并不能观察到所有的变量值.有些变量添加进入面板后会变红,这就表示SignalTap抓取不到此数值.出现这一现象的原因是,综合器在综合时对一些变量进行了优化,所以就显示不出来了.下文…
Abstract撰寫Verilog時,雖然每個module都會先用ModelSim或Quartus II自帶的simulator仿真過,但真的將每個module合併時,一些不可預期的『run-time』問題可能才一一浮現,這時得靠SignalTap II來幫忙debug. Introduction使用環境:Quartus II 8.0 + DE2-70 (Cyclone II EP2C70F896C6N) 實際使用SignalTap II時,會發現有些reg與wire可以觀察,有些又無法觀察,在…
wire表示直通,即只要输入有变化,输出马上无条件地反映:reg表示一定要有触发,输出才会反映输入.wire表示直通,即只要输入有变化,输出马上无条件地反映:reg表示一定要有触发,输出才会反映输入. 不指定就默认为1位wire类型.专门指定出wire类型,可能是多位或为使程序易读.wire只能被assign连续赋值,reg只能在initial和always中赋值.wire使用在连续赋值语句中,而reg使用在过程赋值语句中.        不指定就默认为1位wire类型.专门指定出wire类型,…
本文转自:http://www.cnblogs.com/thymon/archive/2010/06/09/1754541.html //------------------------------------------------------------------------------------ 1.简单来说硬件描述语言有两种用途:1.仿真,2.综合. 对于wire和reg,也要从这两个角度来考虑. 1.1从仿真的角度来说,HDL语言面对的是编译器(如Modelsim等),相当于软件思…
每次写verilog代码时都会考虑把一个变量是设置为wire类型还是reg类型,因此把网上找到的一些关于这方面的资料整理了一下,方便以后查找. wire表示直通,即只要输入有变化,输出马上无条件地反映:reg表示一定要有触发,输出才会反映输入. 不指定就默认为1位wire类型.专门指定出wire类型,可能是多位或为使程序易读.wire只能被assign连续赋值,reg只能在initial和always中赋值.wire使用在连续赋值语句中,而reg使用在过程赋值语句中. 在连续赋值语句中,表达式右…
C# 2012 step by step 学习笔记8 CHAPTER 9 使用枚举和结构创建值类型 本章内容 声明一个枚举类型 创建并使用一个枚举类型 声明一个结构类型 创建并使用一个结构类型 解释结构和类之间行为的区别 声明一个枚举         enum Season { Spring, Summer, Fall, Winter } 使用枚举         You can assign a value that is defined by the enumeration only to…
简介工具篇系列的第三本教程,讲述各种与SignalTap II 有关的调试技巧. 目录[黑金原创教程] FPGA那些事儿<工具篇III>:File01 - 上线调试与下线调试[黑金原创教程] FPGA那些事儿<工具篇III>:File02 - SignalTap 扫盲[黑金原创教程] FPGA那些事儿<工具篇III>:File03 - SignalTap 启动![黑金原创教程] FPGA那些事儿<工具篇III>:File04 — 上调的思想准备[黑金原创教程…
0. 简介 在数电FPGA中,FSM是一个重要的部分,藉此可以完成一些复杂算法的硬件实现等.其中有关于FSM的写法按照always块的个数来划分,又分为一段式.两段式.三段式状态机.顾名思义,一段式就是状态机由一个always块组成:同理,两段式为两个always块,三段式为三个always块组成. 我们以Moore状态机来进行一段.两段.三段式状态机的讨论,Moore状态机的结构如图1所示. 图1, 时钟同步的Moore状态机结构 1. 三段式状态机(推荐使用) 上文中我们说道三段式状态机为三…
Try-Catch: 将可能发生异常的代码放到try中,在catch中进行捕获. 如果try中有一行代码发生了异常,那么这行代码后面的代码不会再被执行了. Try写完了以后,紧接着就要写Catch  中间不能有其它的代码 Try-Catch-finally Finally:不管出现没出现异常,finally中的代码都会被执行,多用于资源的释放. Try { Int a=Convert.Toint32(string a); Console.Write("成功"); } Catch {  …
本文将比较二种查询字符串在同一个oData查询方法中的不同,另外,还将介绍如何比较不同方法返回的GUID的值. 用同一个oData查询方法,如果传入查询的字符串不一样,返回结果的格式竟然完全不一样. 1. oData查询方法: //OData查询 ODataRetrieve: function (oDataString) { var retrieveReq = new XMLHttpRequest(); retrieveReq.open("GET", encodeURI(Xrm.Pag…