VIVADO中MSB怎么设置

VIVADO中MSB怎么设置,第1张

第一步:标记需要debug的信号

例如:

VHDL:attribute mark_debug of sineSel : signal is "true"

attribute mark_debug of sine : signal is "true"

Verilog: 在需要debug的信号前加上 (* MARKDEBUG = "TRUE" *)

第二步:设置debug

首先打开synthesis design,可以看到之前标记的debug信号,然后点击tools,选择set up debug

点击find nets to add,可以找到之前标记的信号,把信号添加完毕,检查Clock Domain是否正确,点击下一步。

在下图中,将Capture control和Advanced trigger打上勾,这样在后面的调试中可以使用高级的捕获功能,再下一步,这样ILA的设置工作就完成了。

可以在debug视图中看到,Vivado自动帮我们插入了dbg_bug和ila,接下来生成bit文件,写入FPGA中,在Vivado的调试界面上就能进行在线的波形输出了。

VHDL中只要出现信号的同步赋值就会产生寄存器,这个是不需要刻意去编写的,呵呵,我来给你举个例子吧:

如 a1<=b1*c1

a2<=b2*c2

写成

process (clk)

begin

if (clk'EVENT AND clk = '1') then

a1 <= b1 * c1

end if

end process

process (clk)

begin

if (clk'EVENT AND clk = '1') then

a2 <= b2 * c2

end if

end process

VHDL提供了SIGNAL和VARIABLE这两种对象来处理非静态数据,同时提供了CONSTANT、GENERIC来处理静态数据。

信号可以在PACKAGE、ENTITY和ARCHITECTURE中声明,而变量只能在一段顺序描述代码的内部声明。因此,信号是全局的,而变量通常是局部的。

变量的值通常是无法直接传递到PROCESS外部的。如果需要进行变量值的传递,则必须把这个值赋给一个信号,然后由信号将变量值传递到PROCESS外

部。另一方面,赋予变量的值使即刻生效的,在此后的代码中,此变量将使用新的变量值。这个一点和PROCESS中使用的信号不同,新的信号值通常只有在整

个PROCESS运行完毕后才开始生效。

VHDL中的信号代表的是逻辑电路中的逗硬地连线,既可以用于电路单元的输入/输出端口,也可以用于电路内部各单元之间的连接。实体的所有端口都默认为信号。信号定义的格式如下:

SIGNAL

name:type [range] [:= initial_value];

有关信号的最重要一点是,当信号用在顺序描述语句(如PROCESS内部)中时,它并不是立即更新的,信号值是在相应的进程、函数或过程完成后才进行更新的。当对信号进行赋初始值的 *** 作是不可综合的,只能用来进行仿真。

变量仅用于局部的电路描述。它只能在PROCESS,FUNCTION和PROCEDURE内部使用,而且对它的赋值是立刻生效的,所以新的值可以再下一行中立即使用。仅用于顺序描述代码中。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11572334.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存