集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 2760|回复: 5

verilog不知道对不?

[复制链接]
encounter 发表于 2010-6-28 00:15:08 | 显示全部楼层 |阅读模式
本帖最后由 fpgaw 于 2010-7-6 06:28 编辑

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY cmp IS
PORT(a,b:IN STD_LOGIC;
y:OUT STD_LOGIC);
END ENTITY cmp ;
ARCHITECTURE one OF cmp IS
BEGIN
PROCESS(a,b)
BEGIN
IF a>b THEN
y<='100';
ELSIF a=b THEN
y<='010';
ELSIF a<b THEN
y<='001';
END IF;
END PROCESS;
ENDARCHITECTUREone ;
CTT 发表于 2010-6-28 01:47:38 | 显示全部楼层
不对嘛,Y声明的是STD_LOGIC,怎么可以给它赋100和001呢,应该把Y声明为STD_LOGIC_VECTOR(2 DOWNTO 0),并且Y<="100",Y<="001"
usb 发表于 2010-6-28 02:48:39 | 显示全部楼层
lz 的意思是想设计一个组合电路吧,但是你的毛病就出在这里面<br>
<br>
ELSIF a&lt;b THEN<br>
y&lt;='001';<br>
<br>
在组合电路的最后if 语句必须要用else<br>
<br>
else a&lt;b then<br>
y &lt;= "001"<br>
<br>
只有是时序电路的情况下 iif语句后面的else才可以省略<br>
<br>
还有就是向量是用这个" " 不是单引号
 楼主| encounter 发表于 2010-6-28 04:45:24 | 显示全部楼层
LIBRARY IEEE;<br>
USE IEEE.STD_LOGIC_1164.ALL;<br>
<br>
ENTITY cmp IS<br>
PORT<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; (a : IN STD_LOGIC;<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;b : IN STD_LOGIC;<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;y:&nbsp;&nbsp;OUT STD_LOGIC_VECTOR(2 DOWNTO 0)<br>
);<br>
END ENTITY cmp ;<br>
<br>
ARCHITECTURE one OF cmp IS<br>
BEGIN <br>
PROCESS(a,b)<br>
BEGIN<br>
IF a&gt;b THEN<br>
y&lt;="100";<br>
ELSIF a=b THEN<br>
y&lt;="010";<br>
ELSE a&lt;b THEN<br>
y&lt;="001";<br>
END IF;<br>
END PROCESS;<br>
END&nbsp; &nbsp; one ;
inter 发表于 2010-6-28 04:49:56 | 显示全部楼层
谢谢大家了,我还是个新手,希望以后多多指教.
HDL 发表于 2010-6-28 04:59:04 | 显示全部楼层
不同意4楼.判断条件时怎么能用ELSE呢,用回ELSIF才对.<br>
版主要多 看看书.这些东西实在不应该错吧.<br>
我也是新手.嘿嘿!
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|集成电路技术分享 ( 京ICP备20003123号-1 )

GMT+8, 2024-5-15 14:14 , Processed in 0.072229 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表