小编use*_*920的帖子

错误(10028):无法解析网络的多个常量驱动程序... VHDL错误

我正在尝试编写一个代码来检测din信号的上升沿,并在此发生后将dout提高5个时钟周期.我在编译时继续遇到不同的错误,我不确定它们是什么意思.我认为我对VHDL中的一些概念缺乏基本的了解,但遗憾的是在线查看并没有帮助我.我仍然不知道软件可以接受哪些操作.

在我的代码中,我目前在第一个进程中有一个上升沿检测器,它将dout提升到逻辑高.第二个过程检查dout是否为高电平,同时从5开始向下计数0,从0开始向下计数从逻辑低电平开始.

这不会编译并返回以下错误:

错误(10028):无法解析net_ext.vhd(31)中net"count [2]"的多个常量驱动程序

错误(10029):在rise_ext.vhd上的常量驱动程序(17)

错误(10028):无法解析网络"count [1]"的多个常量驱动程序在rise_ext.vhd(31)

错误(10028):无法在rise_ext.vhd(31)解析net"count [0]"的多个常量驱动程序

错误(10028):无法在rise_ext.vhd解析net"dout"的多个常量驱动程序(31)

错误(10029):在rise_ext.vhd上的常量驱动程序(19)

错误(12153):无法详细说明顶级用户层次结构

错误:Quartus II 32位分析和综合不成功.7个错误,2个警告错误:峰值虚拟内存:326兆字节错误:处理已结束:2014年1月11日星期六13:13:38错误:已用时间:00:00:04错误:总CPU时间(在所有处理器上):00: 00:02

错误(293001):Quartus II完全编译失败.9个错误,2个警告

    entity rise_ext is
    port ( clk:    in  bit ;
           resetN: in  bit ;
           din:    in  bit ;
           count:  buffer integer range 0 to 6 ;
           dout:   buffer bit ) ;
end rise_ext ;

architecture arc_rise_ext of rise_ext is
    signal s1 , s2 : bit ;
begin
    process ( resetN, clk )
    begin
        if resetN = '0' then
           dout <= '0' ; …
Run Code Online (Sandbox Code Playgroud)

vhdl

2
推荐指数
2
解决办法
5万
查看次数

在VHDL中将8位二进制数转换为BCD

该算法众所周知,您进行 8 次左移,并在每次移位后检查个位、数十位或数百位(每个 4 位)。如果它们超过 4 个,则将 3 个添加到该组中,依此类推...

这是一个基于流程的解决方案,但不起作用。它会编译,但输出不是我想要的。有什么想法可能是什么问题吗?

library ieee ;
use ieee.std_logic_1164.all ;
use ieee.std_logic_unsigned.all ;

entity hex2bcd is
    port ( hex_in  : in  std_logic_vector (7 downto 0) ;
           bcd_hun : out std_logic_vector (3 downto 0) ;
           bcd_ten : out std_logic_vector (3 downto 0) ;
           bcd_uni : out std_logic_vector (3 downto 0) ) ;
end hex2bcd ;

architecture arc_hex2bcd of hex2bcd is
begin
    process ( hex_in )
        variable hex_src : std_logic_vector (7 downto 0) ;
        variable bcd …
Run Code Online (Sandbox Code Playgroud)

binary vhdl bcd

1
推荐指数
1
解决办法
5万
查看次数

具有动态分配数组的类的C ++复制构造函数

刚开始使用C ++(几天后),我就有C背景。

我有一个类,主要包含一个指向带有以下代码的int数组的指针:

class Array
{
private:
    int * _arr;
    int _size;
public:
    Array();
    Array(int size);
    Array(const Array& obj);  // copy constructor
    ~Array();
    void readInValues();
    void mult(int num);
    void add(int num);
    void printArray();
};
Run Code Online (Sandbox Code Playgroud)

_arr是指向int数组的指针,当使用复制构造函数创建新实例时,我会在堆上创建一个新的int数组(我认为)。在复制构造函数中:

Array::Array( const Array & obj )
{
    _arr = new int[_size];

    for(int i=0;i<_size;i++)
        *_arr[i] = *obj._arr[i];
}
Run Code Online (Sandbox Code Playgroud)

我要做的第一件事是为新数组分配内存(_size是原始类型,因此据我所知会自动复制)。我想做的下一件事是使用循环复制数组本身。该部分无法通过编译说非法间接。我不确定为什么...

c++ arrays copy-constructor dynamic-allocation

1
推荐指数
1
解决办法
2万
查看次数

标签 统计

vhdl ×2

arrays ×1

bcd ×1

binary ×1

c++ ×1

copy-constructor ×1

dynamic-allocation ×1