测试VHDL代码逻辑的标准方法是用VHDL编写一个测试平台,并使用像ModelSim这样的模拟器;我已经做了很多次了。
我听说,工程师们现在使用Python来测试VHDL代码,而不是用VHDL编写测试平台。
问题:
这是怎么做的?
- Is this done by writing a test bench in Python and then compiling this Python file or linking into Modelsim?
- Is this done in Python using a module like myHDL and then linking
我正在尝试合成一个VHDL模块,它具有如下所示的sintax:
...
adc_0_ram_addr <= address_i when selector="000" else ( others => '0' );
...
但是,在使用ISE进行合成时,我遇到以下错误:
ERROR:HDLCompiler:1690 This construct is only supported in VHDL 1076-2008
我的项目设置为VHDL20XX,而不是93,所以参考这个poing应该没问题。我已经搜索过了,但什么也没有找到。我如何正确地设置我的IS
我对vhdl和系统verilog完全陌生。我必须重新编写包含以下行的vhdl文件:
library ieee;
use ieee.std_logic_1164.all;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
我是否必须包括一些符合系统verilog标准的类似库?在系统verilog中,代码应该是什么样的呢?
要测试的设计是用VHDL编写的,它的端口使用这样的无约束记录:
type forward_stream is record
data : std_ulogic_vector;
-- further members
...
end record;
这些端口现在应该从systemverilog驱动。有没有任何方法可以使用vhdl记录类型的测试台信号?如果是这样,我如何约束systemverilog中的记录?
还是必须创建一个VHDL包来约束记录并将其作为要在testbench中使用的类型提供?
由于HDL支持在不同的工具之间有很大的不同,我特别询问questasim
我正在用累加器编码一个4位二进制加法器:
library ieee;
use ieee.std_logic_1164.all;
entity binadder is
port(n,clk,sh:in bit;
x,y:inout std_logic_vector(3 downto 0);
co:inout bit;
done:out bit);
end binadder;
architecture binadder of binadder is
signal state: integer range 0 to 3;
s
我有一个布尔函数minimize,我想用VHDL创建它。我用电路创建了它,它工作得很完美,但当我用VHDL创建它时,它给出了不同的输出。有人可以检查我的布尔函数和代码并帮助调试吗?
下面是布尔函数
Q0 = A0 + A1 + (~A2 * ~A3 * ~B0 * (B1 + ~B2 * B3))
下面是我用于布尔函数的代码:
Q0 <= (A0) or (A1) or (not A2 and not A3 and not B0 and B1) or (not A2 and not A3 and not B0 and not B2 and B3);
您能在systemverilog文件中导入vhdl包吗?
假设我有一个VHDL包:
library ieee;
use ieee.std_logic_1164.all;
-- FILE: my_pkg.vhd
package my_pkg is
type type1 is record
sig2 : std_logic;
vec1 : std_logic_vector(7 downto 0);
end record;
end package;
我可以在这样的系统Verilog文件中使用它:
我正在尝试使用vim 7.2 (在Windows XP上)自动缩进和格式化一些VHDL和Matlab代码。为此,我尝试使用"gg=G“命令。然而,这并不能正常工作。代码根本没有适当地缩进。
举个例子,我有下面的源代码,它已经被适当地缩进了:
% This function is based on the code_g_generator() function
function [v_code] = get_code(n_code_number)
% There is no need to clear the persistent variables in this function
m
我是VHDL的新手,我有一段代码,我就是找不出其中的错误。传达的信息是:
Error (10500): VHDL syntax error at 3badder.vhd(6) near text "3"; expecting an identifier
我的代码:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity 3badder is
port( a
这是一个简单的VHDL设计的触发器。请告诉我如何将vhdl文件导入systemverilog,以便我可以使用UVM进行验证。如果有更好的方法,那么包装请告诉我。我用的是Questa 10.4d。
library ieee;
use ieee. std_logic_1164.all;
use ieee. std_logic_arith.all;
use ieee. std_logic_unsigned.all;
entity flipflop is
port(D, Clock : in std_logic;
Q : out std_logic);
end flip
首先是Verilog: function [ADDR_WIDTH-1:0] gray_conv;
input [ADDR_WIDTH-1:0] in;
begin
gray_conv = {in[ADDR_WIDTH-1],
in[ADDR_WIDTH-2:0] ^ in[ADDR_WIDTH-1:1]};
end
endfunction 下面是我将Verilog格雷码函数转换成vhdl的尝试: library ieee;
use ieee.std_logic_1164.all;
entity bus_fifo_async is
generic(