longt 发表于 2010-6-26 02:23:46

verilog代码请大家来看看问题出在哪?

本帖最后由 fpgaw 于 2010-7-12 11:26 编辑

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
-----------------------
ENTITY e_1 IS
PORT(CLK:IN STD_LOGIC;
RET:IN STD_LOGIC;
CLK_OUT:OUT STD_LOGIC);
END;
------------------
ARCHITECTURE ONE OF e_1 IS
SIGNAL COUNT:INTEGER RANGE 0 TO 3;
SIGNAL C_OUT:STD_LOGIC;
BEGIN
PROCESS(CLK)
BEGIN
IF RET='1' THEN
COUNT<=0;
CLK_OUT<='1';
ELSIF CLK'EVENT AND CLK='1'THEN
IF COUNT=3 THEN
COUNT<=0;
CLK_OUT<='1';
ELSE
COUNT<=COUNT+1;
C_OUT<='0';
END IF;
END IF;
END PROCESS;
CLK_OUT <= 'Z' when c_out = '0' else
      '1';
END;
为什么以上代码可以实现高阻态呢?而下面的代码就不可以了呢?
同样仿真通过!为什么没有高阻,,高手分析下~~
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
-----------------------
ENTITY e_1 IS
PORT(CLK:IN STD_LOGIC;
RET:IN STD_LOGIC;
CLK_OUT:OUT STD_LOGIC);
END;
------------------
ARCHITECTURE ONE OF e_1 IS
SIGNAL COUNT:INTEGER RANGE 0 TO 3;
BEGIN
PROCESS(CLK)
BEGIN
IF RET='1' THEN
COUNT<=0;
CLK_OUT<='1';
ELSIF CLK'EVENT AND CLK='1'THEN
IF COUNT=3 THEN
COUNT<=0;
CLK_OUT<='1';
ELSE
COUNT<=COUNT+1;
CLK_OUT<='Z';
END IF;
END IF;
END PROCESS;
END;

encounter 发表于 2010-6-26 03:24:34

在quartus2 6.0 里对这两个程序做了仿真,第2个可以实现高阻<br>
第一个有error 将process里的clk_out改成c_out后消除了错误,仿真结果与第2个相同,都能实现高阻....原帖由 一点不通 于 2006-10-18 21:22 发表<br>
LIBRARY IEEE;<br>
USE IEEE.STD_LOGIC_1164.ALL;<br>
-----------------------<br>
ENTITY e_1 IS<br>
PORT(CLK:IN STD_LOGIC;<br>
&nbsp; &nbsp;&nbsp;&nbsp;RET:IN STD_LOGIC;<br>
&nbsp; &nbsp;&nbsp;&nbsp;CLK_OUT:OUT STD_LOGIC);<br>
END;<br>
------------------<br>
ARCHITEC ...

ICE 发表于 2010-6-26 05:02:03

哦,,您改的大概是我打的时候打错拉,我用第二个在maxplusii可以通过编译但是不出现高阻,q5可以出现高阻么?我的电脑重新专了系统,没有q5拉谢谢你了,那m2 不出现高阻的原因有哪些?是我的软件有问题吗?

CHANG 发表于 2010-6-26 06:24:09

原帖由 一点不通 于 2006-10-19 20:02 发表<br>
哦,,您改的大概是我打的时候打错拉,我用第二个在maxplusii可以通过编译但是不出现高阻,q5可以出现高阻么?我的电脑重新专了系统,没有q5拉谢谢你了,那m2 不出现高阻的原因有哪些?是我的软件有问题吗? max做仿真时,有时会出些问题,是由软件自身造成的,用quartus好些

CHANG 发表于 2010-6-26 06:59:29

恩谢谢!!!

interig 发表于 2010-6-26 07:03:17

支持二楼的说法

VVIC 发表于 2010-6-26 07:47:11

还是换软件吧

Sunlife 发表于 2015-6-17 11:45:16

在quartus2 6.0 里对这两个程序做了仿真,第2个可以实现高阻<br>
第一个有error 将process里的clk_out改成c_out后消除了错误,仿真结果与第2个相同,都能实现高阻....原帖由 一点不通 于 2006-10-18 21:22 发表<br>
LIBRARY IEEE;<br>
USE IEEE.STD_LOGIC_1164.ALL;<br>
-----------------------<br>
ENTITY e_1 IS<br>
PORT(CLK:IN STD_LOGIC;<br>
&nbsp; &nbsp;&nbsp;&nbsp;RET:IN STD_LOGIC;<br>
&nbsp; &nbsp;&nbsp;&nbsp;CLK_OUT:OUT STD_LOGIC);<br>
END;<br>
------------------<br>
ARCHITEC ...
页: [1]
查看完整版本: verilog代码请大家来看看问题出在哪?