实例教学六 流水灯 CPLD FPGA可编程逻辑器件.ppt

实例教学六 流水灯 CPLD FPGA可编程逻辑器件.ppt

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实例教学六 流水灯 CPLD FPGA可编程逻辑器件

流水灯 的VHDL设计 桂林师范高等专科学校 羊日飞 流水灯实例运行环境 红色飓风二代XILINX FPGA开发板 RC2-3S400 流水灯板级硬件电路 CPLD的引脚作输出: 流水灯的点亮方案 周期是15s,这个过程不断循环重复 流水灯芯片级设计框图 1/8分频器(Divider) VHDL语法 ——信号的数据类型 已学:std_logic(标准逻辑位)、std_logic_vector (标准逻辑矢量) 整型 integer VHDL提供了一个预定义整型数据类型,即integer。 integer类型数据的取值范围: -2,147,483,647~+2,147,483,647。 信号定义为整型: 例如:signal A: integer; 定义时,可以指定该信号的取值范围,使用关键字range…to… 例如:signal A: integer range 0 to 100; 整型信号的赋值: 例如: signal A: integer := 4; B=6; 1频器(Divider) 1频器(Divider) 16进制计数器 LED驱动译码器 实体 译码器的VHDL代码 译码器的VHDL代码 模块化的系统设计 三个模块如何组合起来? 它们之间又是通过什么方式连接? VHDL语法 ——层次化建模和元件例化 层次化建模是一种模块化的设计方法。 顶层模块:代表一个完整的设计,它的输入输出端口直接连接到CPLD/FPGA芯片的引脚,顶层模块内部包含若干个子模块。 子模块:实现某个独立功能的实体模块,它的输入输出端口出现在顶层模块内部。 流水灯的层次化建模 顶层模块:flowlight 流水灯的层次化建模 顶层模块:flowlight 流水灯的层次化建模 子模块:clkdiv(分频器)、counter(计数器)、decoder(译码器) VHDL语法 ——层次化建模和元件例化 顶层模块与子模块的关系: 顶层模块包含若干个子模块; 顶层模块中不描述子模块的具体内容,子模块的具体内容在单独的VHDL源文件中,每个子模块也是一个独立的实体。 顶层模块中包含子模块的元件声明和元件例化。 VHDL语法 ——元件声明 语法格式 流水灯的顶层实体 ——结构体部分 VHDL语法 ——元件例化 语法格式 流水灯的顶层实体——结构体部分 流水灯的顶层实体——结构体部分 流水灯的顶层实体——结构体部分 流水灯电路的VHDL代码 ——综合结果 流水灯电路的VHDL代码 ——综合结果 * * “0” LED 亮 “1” LED 灭 时钟源 50MHz 分频器 计数器 LED驱动 8位LED CPLD 1频 输出时钟信号的频率是1Hz,周期为1s。 16进制计数器 即有16种状态,每经过1s计数值加“1”,也即跳到下一个状态。 译码器 将16种状态码转换为相应的8位二进制LED驱动码。 architecture clkdiv_stru of clkdiv is signal count: std_logic_vector(3 downto 0); begin process( reset , clock) begin if reset=‘0’ then count=“0000”; q=‘0’; elsif clock’event and clock=‘1’ then if count=4 then count=“0000”; q= not q; else count=count+ “0001” ; end if; end if; end process; end clkdiv_stru; entity clkdiv is port( clk: in std_logic; q: buffer std_logic; ); end clkdiv; entity clkdiv is port( clk: in std_logic; q: buffer std_logic; ); end clkdiv; 1/8分频器 1频器 实体部分 不变 architecture clkdiv_stru of clkdiv i

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档