我知道,它不允许有比较X或Z在一个综合的VHDL代码.但它是否允许编写一个代码,在其中我将信号与信号进行比较0或1检测Z并暂停操作?代码如下:
process(clk)
begin
if rising_edge(clk ) then
if(rst = '0') then
reg_0 <= (others => 'Z');
elsif(btf_start = '1') then
reg_0 <= "ZZ" & frame_in;
elsif(t_btf_finish = '1') then
reg_0 <= (others => 'Z');
end if;
end if;
end process;
process(clk)
begin
if rising_edge(clk) then
if(reg_0(0) = '0' or reg_0(0) = '1') then
-- DO SOME OPERATIONS
else
-- DO NOTHING
end if;
end if;
end process;
Run Code Online (Sandbox Code Playgroud)
不,这不行.物理数字信号可以具有正好2个状态,'0'和'1'.状态由信号上的电压定义:小于某个电压为"0",大于该电压为"1".即使浮动(高z)信号也会有一些电压被解释为'1'或'0'.
'Z'基本上表示某个信号源没有驱动信号,允许不同的信号源驱动'0'或'1'.对于没有源驱动信号的情况,信号通常具有上拉或下拉电阻,以使其默认处于定义的"1"或"0"状态.