Types VHDL嵌套转换
这个问题的起源是“VHDL中的转换函数是什么?”这个问题适用于我的应用程序:如果我使用嵌套转换会发生什么?更具体地说,转换函数是否真的创建了一个组合机器,或者它只是对合成器/实现者的澄清。因此,如果我使用嵌套转换,比如对绝对函数使用嵌套转换,会导致任何计时问题。(为简单起见,假设a&b有符号位的空间,并且不会溢出)Types VHDL嵌套转换,types,nested,vhdl,absolute,timing,Types,Nested,Vhdl,Absolute,Timing,这个问题的起源是“VHDL中的转换函数是什么?”这个问题适用于我的应用程序:如果我使用嵌套转换会发生什么?更具体地说,转换函数是否真的创建了一个组合机器,或者它只是对合成器/实现者的澄清。因此,如果我使用嵌套转换,比如对绝对函数使用嵌套转换,会导致任何计时问题。(为简单起见,假设a&b有符号位的空间,并且不会溢出) 信号a:标准逻辑向量(某物); 信号b:标准逻辑向量(某物); 信号c:标准逻辑向量(某物); c您可以使用ieee.numeric\u std软件包 转换函数不需要任何成本,也不
信号a:标准逻辑向量(某物);
信号b:标准逻辑向量(某物);
信号c:标准逻辑向量(某物);
c您可以使用ieee.numeric\u std软件包
转换函数不需要任何成本,也不生成任何逻辑
它们纯粹是对(a)编译器,(b)实现者和最重要的(c)维护者的澄清,后者必须弄清楚您以后做了什么
所以给出了VHDL代码
signal a: std_logic_vector(something);
signal b: std_logic_vector(something);
signal c: std_logic_vector(something);
c <= std_logic_vector(abs(signed(a)-signed(b)));
思考设计;如果类型正确,您可能会发现90%的类型转换消失
哦,我还推荐numeric\u std
而不是非标准的替代品
signal a: std_logic_vector(something);
signal b: std_logic_vector(something);
signal c: std_logic_vector(something);
c <= std_logic_vector(abs(signed(a)-signed(b)));
signal a: signed(something);
signal b: signed(something);
signal c: signed(something);
c <= abs(a - b);