打印

求教vhdl一个语法的问题,希望大家可以进来看看

[复制链接]
4544|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wangjun403|  楼主 | 2011-3-14 22:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 wangjun403 于 2011-3-14 22:43 编辑
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;

entity test is
port(
clk :in std_logic;
scl :inout std_logic;
sda :inout std_logic
);
end entity;

architecture structural of test is
begin
process(clk)
begin
if clk'event and clk='1' then
scl<='z';
end if;
end process;
end architecture structural;


quartus8.0编译提示的错误为:
Error (10316): VHDL error at test.vhd(21): character ''z'' used but not declared for type "std_logic"

modelsim的提示为:
Enumeration literal 'z' is type std.standard.character; expecting type ieee.std_logic_1164.std_logic.
std_logic类型里已经定了了'Z'的啊,为什么就不行呢?

请问大家这里是那里错了,要怎么修改?

最好可以详细解释下

PS:排除了端口类型设置的问题(inout)和赋值符号的问题(<=)

相关帖子

沙发
atua| | 2011-3-15 09:09 | 只看该作者
高阻态不是由时钟触发的,加上个使能信号即可

使用特权

评论回复
板凳
wangjun403|  楼主 | 2011-3-15 10:51 | 只看该作者
我这是测试语法问题,随便写的

对应的硬件问题,编译器不可能知道吧

使用特权

评论回复
地板
SuperX-man| | 2011-3-15 11:22 | 只看该作者
本帖最后由 SuperX-man 于 2011-3-15 11:35 编辑

俄.是这样的,如果你需要写成高阻的话.
那个Z必须是大写的.这个属于特殊标志.

scl<='Z';

补充一下,小版我一开始没有注意到你使用的是atlera的quartus8.0.
小版我说的是在xilinx的ISE下是这样的.不过可能是国际通用的.呵呵,你就试试看吧

使用特权

评论回复
5
08211004kun| | 2011-3-15 17:28 | 只看该作者
顶楼上

使用特权

评论回复
6
wangjun403|  楼主 | 2011-3-15 19:59 | 只看该作者
谢谢,果然这式样的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

629

帖子

1

粉丝