请教CPLD很菜的问题,望大家不吝赐教

[复制链接]
2336|5
 楼主| mcuhost 发表于 2009-3-25 17:08 | 显示全部楼层 |阅读模式
本人,是做单片机开发的,前些天老板分配个CPLD项目给我,我现在想问一下,如果我想控制某一个特定的IO口输出某一电平,该怎么做?<br />也就是说:以前单片机可以通过直接对端口复实现对IO的操作,但是CPLD如何做呢?<br /><br />比如说:<br />/*<br />多路选择器,a为1则选择b,为0则选择c,结果输出到数码管显示<br />a:&nbsp;key1<br />b:&nbsp;dial[3:0]<br />c:&nbsp;dial[7:4]<br />*/<br />module&nbsp;mux(a,b,c,d,en);<br /><br />input&nbsp;a;<br />input[3:0]b;<br />input[3:0]c;<br />output[7:0]&nbsp;d;<br />reg[7:0]&nbsp;d;<br />output[7:0]en;<br /><br />wire[3:0]&nbsp;d_tmp;<br /><br />assign&nbsp;en=8'b11111110;<br /><br />assign&nbsp;d_tmp=a?&nbsp;b:c;<br /><br />always@(d_tmp)<br />begin<br />&nbsp;&nbsp;&nbsp;&nbsp;case(d_tmp)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'b0000:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d=8'b0000_0011;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'b0001:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d=8'b1001_1111;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'b0010:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d=8'b0010_0101;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'b0011:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d=8'b0000_1101;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'b0100:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d=8'b1001_1001;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'b0101:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d=8'b0100_1001;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'b0110:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d=8'b0100_0001;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'b0111:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d=8'b0001_1111;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'b1000:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d=8'b0000_0001;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'b1001:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d=8'b0001_1001;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'b1010:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d=8'b0001_0001;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'b1011:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d=8'b1100_0001;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'b1100:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d=8'b0110_0011;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'b1101:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d=8'b1000_0101;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'b1110:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d=8'b0110_0001;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4'b1111:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d=8'b0111_0001;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;endcase<br />end<br />endmodule&nbsp;<br /><br />我的数码管应该接到cpld哪个IO上呢?
Fourier00 发表于 2009-3-25 21:59 | 显示全部楼层

看用户手册

看用户手册
 楼主| mcuhost 发表于 2009-3-25 22:27 | 显示全部楼层

无语了

那里都有这样的人,你不愿意说我不拦着你,我是虚心请教,不喜欢这种说法:“看书去”,我要在书上看见了,还来这发帖干嘛?<br />真服了你这种人
wujing198 发表于 2009-3-25 23:42 | 显示全部楼层

Fourier00是懒得说

换我也一样……要从1+1讲起,谁有那个闲心啊。
Fourier00 发表于 2009-3-27 20:40 | 显示全部楼层

LZ

这种东西用户手册上就有,很多引脚做什么用都写的很详细的,<br />如果是不是对这个玩意很熟的人的话都会要去看用户手册才能知道是干什么的,LZ今天是用这个型号的CPLD,可能告诉你你知道了,但是换了一天你换一种芯片的时候,那你还是得查用户手册,所以最直接的方法就是查用户手册了&nbsp;
lelee006 发表于 2009-3-30 17:57 | 显示全部楼层

LZ你的意思是模块弄好了,不知道输入输出该怎么分配引脚么

呵呵,如果是这样的话,只能照Fourier00说的了<br /><br />你也没说什么型号的CPLD,大家也不知道你到底那些IO能用<br /><br />引脚分配是在IDE里边可以设置的,具体放到哪个IO上,得看你用的什么芯片,还有你得对着数据手册上看,哪些引脚能作为IO使用,才可以分配到那些IO上<br /><br />书还是要看的,这些东西虽然不复杂,但是从头讲起,呵呵,没几个人有这个工夫
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

6

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部