特权同学

《ModelSim SE Command Reference》笔记1

《ModelSimSECommandReference》命令:.mainclear说明:“.mainclear”命令清除清除脚本。该行为如同:File>Transcript>ClearTranscriptmenu。命令:.wave.treeinterrupt说明:该命令将停止wave窗口的波形绘制,对于终止一个需要很长时间显

Writing Testbench——结构化Testbench

特权同学为testbench的结构化以及可重用性设计发愁许久,终于在《writingtestbench》一书的ch6章节里找到了答案,可谓柳暗花明又一村。原来Testbench还是可以做到可重用化的设计。下面以特权同学常用模块做一个结构化可重用的示例。这是假设的待验证模块的顶层:m

Writing testbench——文件调用

Writing testbench——防止同时调用task

Testben使用的是硬件语言,而其所依赖的环境却是基于PC的软件平台。这也就决定了其独特的代码风格。有时的的确确是以一个软件式的顺序方式在给待测试硬件代码做测试,但是写出来的testbench代码中却时常布满了并行执行的陷阱。这给硬件测试者带来了不少麻烦,既然我们选

Testbench——HDL的并行性

为什么C不能取代verilog和VHDL作为硬件描述语言?因为C缺少了硬件描述最基本的三个思想:连通性(Connectivity),时间性(Time)和并行性(Concurrency)。连通性是指使用一个简单并相互连接的模块来描述设计的能力,原理图

Testbench——封装有用的子程序

modueldisplay_report();//封装一些做测试时有用的报告显示//包括任务error,warning,fatal,terminate//显示warning报告,同时包含显示当前时间和警告内容(由用户输入)taskwarning;input[80*8:1]msg;&

Testbench——关于变量的定义

在编写testbench时,关于变量的定义常犯的错误就是将一个定义的全局变量应用到了两个不同的always块中(如例1所示),那么由于这两个always块独立并行的工作机制,很可能会导致意想不到的后果。例1:integeri;alwaysbeginfor(i=0;i<32;i=i+1)begin