找回密码
 注册
搜索
查看: 969|回复: 1

[讨论] 新手求助,如何用CPLD设计双向开关

[复制链接]
发表于 2006-3-6 18:52:00 | 显示全部楼层 |阅读模式
本人新手入门,初学VerilogHDL,芯片用Xilinx XC9536XL。开发环境用ISE7.1i + Synplify pro 8.1+ ModelSim SE6.1。
想用CPLD的3个IO做一个双向开关,使能时导通,数据可以双向流通,反之断开,功能类似于CD4066。本来Verilog有原语 tranif0或者tranif1,可以直接实现,问题是大多数综合器都不支持这个原语。为了实现目的,我自己尝试了用三态门组合等等几种方法,效果很不理想。从原理上和CPLD的结构上看,都应该很容易实现这个功能,但是至今仍是一头雾水,恳请各位大侠不吝赐教,如何用简单的方法实现这样的双向开关呢?
非常感谢!!
发表于 2006-4-27 08:25:00 | 显示全部楼层
可以采用双端口数据inout呀 嘿嘿 主要部分如下
input   din;
output  dout;
inout biport;
reg din_tmp;
reg dout_tmp;
assign biport=en? din_tmp:1'bz;
assign dout=dout_tmp;
always(posedge clk)
  begin
   din_tmp<=din;
  dout_tmp<=biport;
end
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-11-23 15:45 , Processed in 0.047249 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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