- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实现FPGA对CPLD外的全部利用
通信与电子系统综合设计
院 系: 信息学院6系
姓 名:
学 号:
邮 箱: cxxie@mail.ustc.edu.cn
手 机:
2013年12月27日
设计一 实现FPGA对CPLD外设的全部利用
实验要求
• 编写CPLD程序控制其外设(LED,数码管,输入开关等),并全部提供给FPGA使用
• 编写CPLD与FPGA(XC2V2000)的接口电路,实现FPGA与CPLD外设的直接对应关系.
• 编写FPGA程序测试CPLD的全部外设
实验说明
1.硬件分析
本次实验涉及的硬件包括:4个脉冲触发开关、8个拨码开关、8个7段数码管、32个LED发光二极管以及如图1.1所示的CPLD和FPGA芯片。
图1.1 硬件连接图
2.实验要求分析
要求通过FPGA对CPLD的全部外设进行控制,如果不进行编码则需要4+8+32+16=60根连接线,而实际只有23条,在这种情况下,对于8位拨码开关,可以在CPLD中对进行并串转换,8位需要3位地址线,再用一位表示指定地址的拨码开关的状态,这样就可以用4位将8位拨码开关信号传输到FPGA,在FPGA中将4位表示拨码开关的信号进行串并转换,得到8位信号,然后用这8位信号控制8个7段数码管,用高4位信号表示段码,再用低四位实现功能控制,最多有16种。对于4个脉冲开关,可直接传输,在FPGA中,用这4位信号实现对32位LED发光二极管进行控制;此外,8个7段数码管,需要3根地址线和4根数据线,32个LED发光二极管,需要5根地址线和1位状态位,状态位用来表示指定地址的LED的状态。通过上述分析,总共需要4+4+3+4+5+1=21根连接线,不超过实际的23条连接线,所以上述方案是可实现的。图1.2为FPGA控制CPLD外设的结构示意图。
图1.2 FPGA控制CPLD外设的结构示意图
设计方案
1. CPLD程序设计
CPLD程序分为以下几个功能模块:首先对八位拨码开关信号进行并串转换传输到FPGA中;对脉冲开关信号进行处理,每按一次脉冲开关,经过程序处理得到‘0’或‘1’传输到FPGA;对FPGA传输过来的5位LED地址、数码管3位位选信号和4位段码信号进行译码然后将译码之后的信号传输到外设。CPLD程序主要结构图如如1.3所示。
图1.3 CPLD程序结构图
a) 并串转换
8位拨码开关信号进入CPLD后对其进行并串转换,转换后用4位信号表示,其中高3位表示拨码开关地址,最低位表示开关的状态。在程序模块,用一个3位计数器,每一次时钟上升沿到来时计数器加1,然后根据计数器的值进行选择转换,程序如下:
process(clk,dip,counter)
begin
if(clkevent and clk=1)then
if counter=111 then
counter=000;
else
counter=counter+1;
end if;
end if;
case counter is
when 000 = dip_sw=000dip(0);
when 001 = dip_sw=001dip(1);
……
when 111 = dip_sw=111dip(7);
when others =dip_sw=111dip(7);
end case;
end process;
b) 脉冲开关信号处理
每按一次脉冲开关,对其脉冲信号进行处理,得到1位信号‘0’或‘1’然后传输到FPGA。其处理的程序如下(4个脉冲开关处理过程一样):
process(key1)
variable K1 : std_logic;
begin
if key1event and key1=1 then
K1:=not(K1);
end if;
pul_sw1=K1;
end process;
c)LED地址译码
5位LED地址信号和1位LED状态信号从FPGA传输到CPLD后要对其进行译码,其代码如下:
process(clk)
begin
if clkevent and clk=1 then
case led_addr is
when 00000 = led(0)=led_val;
when 00001 = led(1)=led_val;
……
when 11110 = led(30)=led_val;
when others = led(31)=led_val;
end case;
end if;
end process;
您可能关注的文档
- 安全生产管理制度汇编1005379.doc
- 安全生产管理度汇编683515415.doc
- 安全生产责任考核记录213115509.doc
- 安全监理细 (J2).doc
- 安全监理须狠抓落实.doc
- 安全稳定控制系统检验作业指导书DECSY-10.doc
- 安全管理制度1649060.doc
- 安全管理台账修版--第四册谈睿.doc
- 安全管理制度合(17个).doc
- 安全管理料档案目录.doc
- 2025年消防职业技能鉴定试题预测试卷及参考答案详解【培优A卷】.docx
- 2025年储能电池市场格局与主要厂商竞争态势分析.docx
- 2025年箱包服饰电商全渠道营销策略与新兴市场拓展策略.docx
- 尾矿资源化利用技术突破,2025年生态环境修复技术应用前景展望报告.docx
- 口腔临床操作面试试题及答案2025版.docx
- 农业保险产品创新与农业产业升级服务优化报告.docx
- 2025年保险行业数字化理赔服务与保险理赔效率对比分析.docx
- 2025年消防职业技能鉴定试题预测试卷及参考答案详解1套.docx
- 文化IP跨境授权产业链上下游企业协同创新模式研究报告.docx
- 模具制造数字化设计与仿真技术在2025年的高效节能应用报告.docx
文档评论(0)