首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

双向数据inout

双向数据inout

我的程序是这样的 其中 d : INOUT STD_LOGIC_VECTOR (7 downto 0); ipc : INOUT STD_LOGIC_VECTOR (7 downto 0); led ut STD_LOGIC;--接一个发光二极管 signal dw: std_logic_vector(7 downto 0); signal cw: std_logic_vector(7 downto 0); process(clk) ... dw(7 downto 0)<=ipc(7 downto 0); 这句在模拟的时候是正确的, 但程序烧到CPLD里后ipc总线上的数据并没有被传到d总线上; led<=dw(0); 这句模拟不正确,二极管不能被点亮; led<=ipc(0); 这句模拟正确,硬件工作也正常,二极管能被点亮。 当然给led的赋值语句只能用一句 cw<=''1''; ... end process; d<= (others=>''Z'') when cw=''0'' else dw; ... 我要的结果是能把ipc总线上的数据传到d总线上,同时要求d总线是三态总线,我的程序中ipc总线上的数据经过dw中间转换后就不能被正常输出到d总线上,请问大虾我的程序该怎么写?感谢!! [em27][em27][em27][em27]
可以将d<= (others=>''Z'') when cw=''0'' else dw 放在Process(clk)中再试一下啊
返回列表