vhdl相关内容
我是VHDL语言的新手,我正在为XNOR门编写一个测试台。简单的解决方案是手动检查两个输入的每个组合,但如果输入更多,这将花费太长时间。如何在VHDL语言中将其编写为for循环? process begin p0
..
我有以下进程,它应该右移其输入(INPUT_1),直到它达到0,然后结束循环: DFF_PROCESS: process (input_0, input_1, input_2, CLK) variable eX : integer; ... begin eX := input_1; ... while (eX > 0) loop if ( CLK'event an
..
我有这个SystemVerilog测试台,我想在其中使用一个用VHDL语言编写的包。 当我这样做时:'include "desired_pkg.vhd",它显然是一个Verilog包,如ModelSim报告的: Error: (vlog-13069) ** while parsing file included at C:/Users/VHDL/CO_code/CO_18_03/simula
..
我在实例化VHDL模块PWM的VHDL测试台上收到一个编译错误:“正式端口‘Duty_Cycle’没有实际值或缺省值”。站在“dev_to_test:pwm”代码行时出现错误。在实例化的PWM模块中,DUTY_Cycle STG_LOGIC_VECTOR被强制转换为UNSIGNED,然后被赋值为整数,但不要认为这会影响端口实例化。 我试图在端口映射中传递“00001111”向量值,但结果是相同的错
..
我在使用VHDL-2008中的to_01转换函数时出现了一些意外的行为。我的预期是,可以清楚地解释为高或低的向量位分别映射到‘1’和‘0’。剩余的矢量位应转换为‘0’位。 但是,使用下面描述的代码,我将整个向量转换为全‘0’。 此行为正确吗?或者这是模拟器软件(ALDEC Riviera-PRO)中的错误? 有没有符合我期望的IEEE函数,或者我必须编写自己的函数才能实现? li
..
我想知道$clog2(DATA_WIDTH)对应的VHDL码是什么,例如下面这行: parameter DATA_OUT_WIDTH = $clog2(DATA_WIDTH) 以及本例中的符号“-:” if ( Pattern == In[i_count-:PATTERN_WIDTH] ) 如果有人能帮我,我将不胜感激。 推荐答案 您可以这样做 constan
..
是否可以将std_logic_arith算术库和numeric_std库一起声明? 因为当我删除它们时,代码不起作用,但当我同时使用它们时,它会给出一个错误,表明这两个库之间存在冲突。 推荐答案 std_logic_arith和numeric_std包都声明了名为unsigned的类型。 因此,如果use两个包都使用.all,则很可能会遇到冲突。 建议只使用IEEE标准包
..
在一些测试台代码中,我使用一个过程来处理信号。然后,我在不同的信号上按顺序多次使用这个过程。只要我显式定义信号,这就可以很好地工作;只要我索引循环中的信号,它就会失败 (vcom-1450)形式“%s”的实际(索引名称)不是静态信号名称。 为什么这是不可能的,我如何解决它? 或许我可以将其移至for ... generate,但随后我希望do_something以定义良好的顺序被调用。
..
我们正在用VHDL实现一个以太网MAC控制器。 开始时,这里是我的代码的一段代码片段。 -- next state PROCESS(p_state, phy_start, phy_ctr, phy_clk) BEGIN CASE p_state IS WHEN sIDLE => IF(phy_start = '1' or rising_edg
..
我正在尝试使用开关和祸不单行显示修改做和(例如)和其他数学函数的源代码。 这是主代码: library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; use work.seven_segment_pkg.all; entity Switch7Segment is port ( SW :
..
我有一个FSM,它可以工作。然而,合成器抱怨有“acc_x”、“acc_y”和“data_out”的锁存器,我理解它为什么不好。然而,我不知道如何重写FSM,以便状态部分转到时钟进程。有什么主意从哪里开始呢?以下是FSM的代码: library IEEE; use IEEE.std_logic_1164.all; use IEEE.numeric_std.all; entity stor
..
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; entity RAM_controler is port( clk_50 : in std_logic; clk_baud : in std_logic;
..
用VHDL语言进行了移位寄存器的结构设计。当WriteShift为1时,我得到移位,当它为0时,移位寄存器加载价格。虽然当我在Testbench中将WritesShift设置为1时,LOAD工作得很好,但在模拟中我得到了00000。 我的代码如下: entity ShiftRegis is Port ( Din : in STD_LOGIC_VECTOR (4 downto
..
不理解为什么我在以下代码中得到错误&011111111111&qot;.我所要做的就是将VHDL时间截断到最接近的1/100毫秒. library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_textio.all; use std.textio.all; entity tb is end entity; architect
..
我第一次注意到这个问题是在this这里的帖子中。我现在已经做了一个MCVE。DUT: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.NUMERIC_STD.ALL; use work.top_pkg.all; entity top is Port ( clk : in std_logic; ce : i
..
我在这上面花了太多时间,完全糊涂了。我有一个记录类型: --t_dp_sosi record TYPE t_fft_sosi_out IS RECORD -- Source Out or Sink In sync : STD_LOGIC; bsn : STD_LOGIC_VECTOR(c_dp_stream_bsn_w-1 DOWNTO 0); -- ct
..
此问题是此处显示的另一个问题的扩展,VHDL Process Confusion with Sensitivity Lists 但是,由于我的代表点不到50个,我无法评论以作进一步的解释。 因此,我在链接中遇到了相同的问题,并接受了显示的答案。然而,现在我感兴趣的是推荐的方法是什么,以便将模拟与合成后行为相匹配。链接中接受的答案指出,不建议将电平敏感闩锁作为解决方案,因为它们会导致更多
..
我正在用VHDL语言设计一个停车场闸门。当我使用Quartus VWF文件模拟它时,我得到了未知值(X),但我不知道原因。 基本上,您只需验证您的卡(Sin),大门就会打开10秒。 而当一辆车离开停车场(Sout)时,它会统计停车场内此刻的车辆总数。 我已经为计时器创建了信号Ncarros(计算车数)和s_count。 都可以正确编译。但是当我使用VWF文件测试它时,我得到的是: O
..
我收到错误“Error:xst:827-”C:/1553/decder_copy/decder.vhd“第265行:无法合成信号NO_WORD,同步描述不正确”。 process(rst_n,dword_int,sync_csw_reg,sync_dw_reg) begin if(rst_n='1')then noofwords
..
我使用的是Quartus Prime Lite Edition,我想在STD_LOGIC_VECTOR上使用一元运算符NAND,如下所示 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity example1 is port( BIN : in std_
..