在Vivado下在线调试是利用ILA进行的,Xilinx官方给出了一个视频,演示了如何使用Vivado的debug cores,下面我根据这个官方视频的截图的来演示一下: 官方的视频使用的软件版本为2012.2,不过在2015.3下也是差不多的. 第一步:标记需要debug的信号 例如: VHDL:attribute mark_debug of sineSel : signal is "true"; attribute mark_debug of sine : si
传输延迟就是最容易理解的从输入变化到输出变化之间的延迟.对应语法是transport例如 b <= transport a after 20ns 惯性延迟考虑了电容效应,即如果输入是(相对)窄的脉冲的话将被忽略,不会反应到输出.例如 Z<= X after 20ns如果X有个小于20ns的脉冲(即20ns内连续翻转) Z将维持不变 否则会在20ns以后体现这个不小于20ns的脉冲(或单次翻转)
很多国内的教材对于case语句的讲解非常单一,比如: 1 [标号:]CASE 多值表达式 IS 2 WHEN 选择值 => 被赋值变量 <=赋值变量: 3 WHEN 选择值 => 被赋值变量 <=赋值变量: 4 WHEN 选择值 => 被赋值变量 <=赋值变量: 5 ... 6 WHEN OTHERS =>被赋值变量 <=赋值变量: 7 END CASE 这会造成CASE语句"在一个条件下只能执行一条语句"的经典误解,在翻阅了一些资料后我
习惯了自己发现一些小问题,既然发现了,就记下来吧,不然又要忘了,这是多么悲痛的领悟. 今天在用vivado进行块设计时所生成的顶层模块居然是用VHDL语言描述的,这时郁闷了,表示只看过VHDL语法但没写过.暂且不说VHDL模块的内容,我应该如何在测试平台中例化它并对它进行测试呢?稍微查了一下,其实很简单,只要把VHDL中的组件名.端口统统拿出来,按照verilog模块的例化形式就可以了.下面举个简单的例子来说明如何在verilog模块中例化VHDL模块. 2选1多路复用器的VHDL描述: ent
FSDB(Fast Signal Database)是Verdi支持的文件格式,用于保存仿真产生的信号波形.据Verdi文档说明,FSDB比标准的VCD格式节省磁盘空间,处理速度更快.要用VCS仿真器生成FSDB文件,就要调用Verdi提供的FSDB dumping命令,较常用的方法是在Testbench中调用. 首先要把FSDB dumper库的路径添加到LD_LIBRARY_PATH环境变量,32位Linux环境使用的C Shell命令格式如下: if ($?LD_LIBRARY_PATH)
在VHDL中,IF...THEN...ELSE是顺序语句,只能出现在行为描述中(进程体或者子程序中):而WHEN...ELSE是并行语句,可以直接出现在结构体中,但却不能出现在行为描述中.WHEN...ELSE等效于一个进程体为IF...THEN...ELSE语句的进程. 四选一 library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity mm is PORT(A,B,C,D: IN STD_LOGIC; S0,S1:IN STD_LOGI
http://www.actel.com/kb/article.aspx?id=TT1002 Logic Replication vs. Preserve Attributes in Synplicity In general, Synplicity's synthesis tool, Synplify, will try to replicate logic rather than add buffers to stay within the stated synthesis constrai