第宏功能模块的应用PPT课件

上传人:深*** 文档编号:78254593 上传时间:2022-04-21 格式:PPTX 页数:75 大小:830.33KB
返回 下载 相关 举报
第宏功能模块的应用PPT课件_第1页
第1页 / 共75页
第宏功能模块的应用PPT课件_第2页
第2页 / 共75页
第宏功能模块的应用PPT课件_第3页
第3页 / 共75页
点击查看更多>>
资源描述
7.1 宏功能模块概述Altera公司提供的宏功能模块与LPM函数主要有: 算术组件:包括累加器、加法器、乘法器和LPM算术函数。 门电路:包括多路复用器和LPM门函数。 I/O组件:包括时钟数据恢复(CDR)、锁相环(PLL)、双数据速率(DDR)、千兆位收发器块(GXB)、LVDS接收器和发送器、PLL重新配置和远程更新宏功能模块。 存储器编译器:包括FIFO Partitioner、RAM和ROM宏功能模块。 存储组件:包括存储器、移位寄存器宏模块和LPM存储器函数。第1页/共75页7.2 存储器设计设计 在Quartus 中能接受的初始化数据文件有两种:Memory Initialization File(mif)格式Hexadecimal (Intel-Format)File(hex)格式第2页/共75页7.2 存储器设计设计. 建立mif格式 首先在硬盘上建立一个工作文件夹,然后建立工程文件LMP_ROM并存放在该工作文件夹中。 在Quartus主界面下单击“File”菜单选择“New”命令,并在“New”对话框中单击“Other files”页面,如图7.1所示。第3页/共75页7.2 存储器设计设计图7. 1 选择数据文件 第4页/共75页7.2 存储器设计设计 然后选择“Memory Intialization File”选项,单击OK按钮后弹出如图.所示的对话框,设 ROM中有64 个8 位数据,“Number of word”中填入ROM中的数据数。这里填“64,在“Word size”中填入数据宽度,这里取8位,单击“OK”按钮,弹出图.3所示的空的mif数据表格。第5页/共75页7.2 存储器设计图7.2 设置数据 图7.3 数据表 设计设计第6页/共75页7.2 存储器设计设计 填入数据后如图.4所示 图7. 4 填入数据 第7页/共75页7.2 存储器设计设计 用鼠标右键单击窗口边缘的地址栏弹出格式选择窗口,可以从中选择不同的地址格式和数据格式。表中任意数据对应的地址为左列数和顶行数之和。 例如,表中任意一个数据对应的地址为左列,顶行,则地址为+, 若用进制表示为,表示存储器地址为内的数据为。完成数据输入后,保存文件并命名名为“rom.mif”。 第8页/共75页7.2 存储器设计设计 2.制定ROM模块 数据文件保存完毕后,利用“egWizard Plug-In Manger”来定制宏模块,并将建立好的数据文件加载到此中。步骤如下:()在uartus 主界面下单击“ools”菜单,选择“egaWizard Plug_In Mange”命令,弹出如图7.5所示对话框。第9页/共75页7.2 存储器设计图7. 5 创建新的宏模块 设计设计第10页/共75页7.2 存储器设计设计 选中“reat a new custom megafunction variation”选项,单击“ext”按钮后,弹出如图7.6所示的对话框,在左侧栏选择“emory Complier”项下的“”,再选择器件和语言方式(这里选择ACEX1K器件和语言),最后输入文件存放的路径和文件名。第11页/共75页7.2 存储器设计图 7. 6 选择ROM宏模块 设计设计 第12页/共75页7.2 存储器设计 设计 (2)单击“ext”按钮后弹出如图7.7所示的对话框设置地址线位宽和数据位宽,在数据位宽和数据数一栏中选择“”和“64”;在“hat should the RAM block type be”一栏选择默认的“Auto”;设置完后单击“Next”按钮,弹出如图7. 8所示的对话框,在该对话框中设置寄存器和使能信号等,这里均选择默认设置。第13页/共75页7.2 存储器设计图7. 7 设置ROM的地址线位宽和数据线位 设计设计图7. 8 寄存器、使能信号等设置 第14页/共75页7.2 存储器设计设计(3)单击“Next”按钮后,弹出如图7. 9所示。的对话框进行数据文件的指定,在“Do you want to.”一栏中选择“Yes,use this file for the memory content data”选项并单击“Browse”按钮选择待指定的文件“rom.mif”。 第15页/共75页7.2 存储器设计图7. 9 指定数据文件并命名设计设计第16页/共75页7.2 存储器设计 设计 单击“Next”按钮后弹出如图7. 10所示的对话框,从而可以看到仿真库的信息。图7. 10 仿真库的信息 第17页/共75页7.2 存储器设计设计 单击“Next”按钮后弹出如图7.11所示的对话框,从中可以看到关于此ROM的信息概要,最后单击“Finish”按钮完成ROM的创建。 图7.11第18页/共75页7.2 存储器设计设计(4) ROM创建完成后,将生成的文件为rom.vhd(既可以用于原理图编辑也可以用于顶层文件的实例化),将ROM文件夹中的rom.vhd打开,其代码如例7.1所示。【例7.1】ROM的VHDL源代码LIBRARY ieee;LIBRARY lpm;USE lpm.all;ENTITY room ISPORT( address : IN STD_LOGIC_VECTOR (5 DOWNTO 0); inclock : IN STD_LOGIC ; outclock : IN STD_LOGIC ; q : OUT STD_LOGIC_VECTOR (7 DOWNTO 0); END room;第19页/共75页7.2 存储器设计设计ARCHITECTURE SYN OF room ISSIGNAL sub_wire0: STD_LOGIC_VECTOR (7 DOWNTO 0);COMPONENT lpm_romGENERIC (intended_device_family : STRING;lpm_address_control : STRING;lpm_file : STRING;lpm_outdata : STRING;lpm_type : STRING;lpm_width : NATURAL;lpm_widthad : NATURAL); -接下页第20页/共75页7.2 存储器设计设计PORT (outclock : IN STD_LOGIC ; -接上页address: IN STD_LOGIC_VECTOR (5 DOWNTO 0);inclock: IN STD_LOGIC ;q: OUT STD_LOGIC_VECTOR (7 DOWNTO 0);END COMPONENT;BEGINq ACEX1K,lpm_address_control = REGISTERED,lpm_file = room.mif,lpm_outdata = REGISTERED,-接下页第21页/共75页7.2 存储器设计设计lpm_type = LPM_ROM,lpm_width = 8,lpm_widthad = 6)PORT MAP (outclock = outclock,address = address,inclock = inclock,q = sub_wire0);END SYN;第22页/共75页7.2 存储器设计设计(5) 建立一个图形输入文件,然后点击左边(symbol tool)按钮 ,如图7.12所示。图7.12第23页/共75页7.2 存储器设计设计 打开Library栏中的Project下的ROM,生成的电路符号见图7.13所示。图7.13第24页/共75页7.2 存储器设计设计 也可以对rom.vhd文件创建图元生成电路符号。其中,clock为时钟信号输入端,address5.0为地址输入端,q7.0为数据输出端。至此,对ROM的设置已经完成。接下来,在原理图编辑器中连接成如图7. 14所示电路。 第25页/共75页7.2 存储器设计 设计图7. 14 完成ROM的原理图 第26页/共75页7.2 存储器设计 设计 进行编译和仿真,其功能仿真结果如图7. 15所示, 图7. 15 ROM的功能仿真结果 第27页/共75页7.2 存储器设计设计 RAM的创建过程与ROM基本相同,同样使用“MegaWizard Plug-In Manager”工具进行定制。进入图7. 6所示的对话框后,在左侧选择“Memory Complier”项下的“RAM:1-PORT”选项,器件和语言根据需要进行选择,路径取为lpm_ramramvhd(文件名为ramvhd)。设置对话框如图7.17所示 。第28页/共75页7.2 存储器设计设计图7.17 RAM的参数设置第29页/共75页7.2 存储器设计 器件选择“ACEX1K”,数据宽度选择“8”位,数据数选择64,其他均按默认处理。后面的设置与ROM类似,有所不同的是RAM不需要指定数据文件。创建完成后生成相应的ramvhd文件,创建图元后生成的电路符号如图7.18所示。 设计第30页/共75页7.2 存储器设计图7.18 RAM创建图元后生成的电路符号8 bits64 wordsdata7.0weaddress5.0inclockoutclockq7.0raminst设计第31页/共75页7.2 存储器设计 其中,data7.0为数据输入端,we为读写使能端,address5.0为地址输入端,inclock 和outclock为时钟信号,q7.0为数据输出端。加入输入端口,完成RAM的电路原理图如图7.19所示。设计第32页/共75页7.2 存储器设计图7. 19 完成RAM的原理图设计第33页/共75页7.2 存储器设计 对创建的RAM进行编译和仿真,功能仿真结果如图7.20所示。设计图7.20 RAM的功能仿真结果第34页/共75页7.2 存储器设计设计 FIFO(First-In First-Out)是一个先入先出的双口缓冲储器器,FIFO存储器可以独立进行输人输出,也可以看成是一种双端口存储器,具有两个端口,但它与双端口存储器最大的不同就是一个端口专门用于写入操作,而另一个端口专门用于读取操作。而且,因为数据是按照写人的顺序被读出的,因而没有地址引脚,这也是与双端口存储器的不同之处。第35页/共75页7.2 存储器设计 设计 FIFO的设计方法与ROM、RAM的设计方法基本相同。同样使用“MegaWizard Plug-InManager”工具进行定制。进入图7.6所示的对话框后,在左侧栏选择“Memory Complier”项下的“FIFO“选项,器件和语言根据需要进行选择,路径取为 D:lpm_fifofifovhd(文件名为fifovhd)。参数设置对话框如图7.22所示 第36页/共75页7.2 存储器设计 图7.22 FIFO的参数设置对话框 设计设计第37页/共75页7.2 存储器设计 设计 器件选择“ACEX1K”,数据宽度选择“8”位,数据数选择“64”。单击“Next”按钮还可进行其他参数设置,在如图7.23所示的对话框中可以选择其他的输入输出端口,比如清零端等。在图7.24所示的对话框中可以进行优化方式等设置,这里选择了速度优化。第38页/共75页7.2 存储器设计图7.23 输入/输出端口选择对话框设计设计第39页/共75页7.2 存储器设计图7.24 优化方式等设置 设计设计第40页/共75页7.2 存储器设计 创建完成后生成的FIFO电路符号如图7.25所示。 其中,data7.0为数据输入端,wrreq为写入数据请求信号,rdreq为读出数据请求信号,clock为时钟信号,q7.0为数据输出端,full为存储器溢出指示信号,empty为FIFO空指示信号,usedw5.0为当前已使用的地址数指示, 图7.26 FIFO原理图完成端口连接的FIFO原理图如图7.26所示。 设计设计第41页/共75页7.2 存储器设计图7.26 完成端口连接的FIFO原理图 设计设计第42页/共75页7.2 存储器设计 对创建好的FIFO进行编译和仿真后,得到的功能仿真结果如图7.27所示,时序仿真结果如图7.28所示。图7.27 FIFO的功能仿真结果 设计设计第43页/共75页7.3 乘法器设计 乘法器的创建过程与ROM、RAM等的创建过程类似,均使用“MegaWizard Plug-InManager”工具进行定制。进入图7.29所示的对话框后,在左侧栏选择“Arithmetic”项下的“LPM_MULT”选项, 器件和语言根据需要进行选择,路径取为D:.lpm_multmultvhd(文件名为multvhd)。 第44页/共75页7.3 乘法器设计图7.29 选择乘法器宏模块 第45页/共75页7.3 乘法器设计 单击“Next”按钮后,弹出如图7.30所示的参数设置对话框,设置乘数和被乘数的位宽等选项,这里设为默认值,即乘数和被乘数的位宽均为“8”位。单击“Next”按钮进行其他参数设置,其中在图7.31所示的设置对话框下选择由时钟控制。第46页/共75页7.3 乘法器设计图7.30 乘法器的参数设置第47页/共75页7.3 乘法器设计图7.31 选择时钟控制 第48页/共75页7.3 乘法器设计 创建完成后生成的电路符号如图7.32所示。其中,clock为时钟控制信号,dataa7.0为被乘数,datab7.0为乘数,result15.0为相乘后的结果。加入电路端口,完成原理图设计,如图7.33所示。 Unsignedmultiplicationdataa7.0datab7.0clockresult15.0multinst 图7.32 乘法器 的电路符号 第49页/共75页7.3 乘法器设计图7.33 完成端口连接的乘法器原理图 第50页/共75页7.3 乘法器设计 对乘法器进行编译和仿真后,得到的功能仿真结果如图7.34所示,其时序仿真结果如图7.35所示。观察时钟clock的上升沿,result的输出为与的乘积。图 7.34 乘法器的功能仿真结果第51页/共75页7.4 锁相环设计 Quartus II中的锁相环宏模块也称为嵌入式锁相环,在Cyclone和stratix等系列的FPGA中含有嵌入式锁相环。要对这种嵌入式锁相环进行调用,同样要使用“MegaWizard Plug-In Manager”工具定制。进入图7.36所示的对话框后,在左侧栏选择“I/O”项下的“ALTPLL”选项,器件选择Cyclone系列,路径可取为D:lmp_pllPll.vhd(文件名为Pll.vhd)。第52页/共75页7.4 锁相环设计 图7.36 选择锁相环模块 第53页/共75页7.4 锁相环设计 单击“Next”按钮后弹出参数设置对话框,如图7.37所示,进行器件、参考时钟频率 inclk0和工作模式的设置,这里器件选为“Cyclone”,参考时钟频率选为“100MHz“,工作模式选为“In Normal Mode”。 第54页/共75页7.4 锁相环设计图7.37 锁相环的参数设置 第55页/共75页7.4 锁相环设计 然后单击“Next”按钮,弹出图7.38所示的对话框,在此对话框中进行锁相环控制信号的选择,如使能控制pllena、异步复位areset等。单击“Next”按钮进行其他参数设置,其中在图7.38所示的对话框中进行输出时钟信号的设置,首先选中“Use this clock”选项,表示选择了该输出时钟c0,然后在“Clock multipication”的设置栏中输入倍频因子,这里输入为1,时钟相移和占空比不变,保持默认数据。第56页/共75页7.4 锁相环设计图7.38锁相环c0的参数第57页/共75页7.4 锁相环设计 在此后弹出的对话框中分别选用输出时钟端“c1”和“c2”,并将c1的分频因子设为5,占空比设为60,如图7.39,将c2的倍频设为2将占空比设为70如图7.40所示,点击下一步并完成后续设置。第58页/共75页7.4 锁相环设计图7.39锁相环c1的参数第59页/共75页7.4 锁相环设计图7.40锁相环c2的参数 第60页/共75页7.4 锁相环设计 创建完成后生成的电路符号如图7.41所示。其中,inclk0为参考时钟,areset为复位信号,pllena为锁相环片选信号,c0、c1、c2为输出的时钟端口,locked是相位锁定输出。完成锁相环的顶层原理图,如图7.42所示。 图7.41 锁相环的电路符号 Cyclone IIinclk0 frequency: 100.000 MHzOperation Mode: NormalClk Ratio Ph (dg) DC (%)c01/10.0050.00c11/50.0060.00c22/10.0070.00inclk0pllenaaresetc0c1c2lockedpllinst第61页/共75页7.4 锁相环设计 图7.42 完成端口连接的锁相环原理图 第62页/共75页7.4 锁相环设计 对创建的锁相环进行编译和仿真,由于功能仿真结果与时序仿真结果基本相同所以仅给出时序仿真结果,如图7.43所示。观察波形可知,输出时钟端c0、c1和c2的频率分别为参考时钟频率的1倍、1/5倍和2倍。 图7.43 琐相环的时序仿真结果第63页/共75页7.5 正弦波信号发生器1设计要求 设计一个正弦波信号发生器,采用ROM宏功能模块进行一个周期的数据存储,并通过地址发生器产生正弦波信号。 2设计原理 采用6位二进制计数器作为地址发生 器;正弦波信号的数据ROM采用6位地址线和8位数据线;通过原理图编辑完成顶层设计;输出的数据通过8位DA转换成模拟信号。系统框图如7.44所示。 第64页/共75页7.5 正弦波信号发生器图7.44 正弦波信号发生器的系统框图第65页/共75页7.5 正弦波信号发生器 3.设计方法 采用混合编辑法,电路如图7.45所示。其中,counter模块为地址发生器,其VHDL程序见例7.2所示,其输出端连接到ROM的地址端上。 图7.45 正弦波信号发生器电路图 第66页/共75页7.5 正弦波信号发生器【例7.2】counter地址发生器的VHDL源代码library ieee;entity counter is port(clk:in std_logic; q:out std_logic_vector(5 downto 0);end;architecture str of counter is signal qa:std_logic_vector(5 downto 0);begin process(clk) begin if clkevent and clk=1 then qa=qa+1; -接右 -接左end if; end process; q=qa;end;第67页/共75页7.5 正弦波信号发生器4. 正弦波信号发生器的仿真 正弦波信号发生器的功能仿真结果如图7.46所示,其时序仿真结果如图7.47所示。从图中可以看出,端输出的数据为ROM中的正弦波信号数据。 图7.46 正弦波信号发生器的功能仿真结果第68页/共75页7.6 IP核简介 1. 什么是IP核? IP核(Intellectual Property core)是知识产权核的意思,实际上是一段具有特定电路功能的硬件描述语言程序,该程序与集成电路工艺无关,可以移植到不同的半导体工艺中去生产集成电路芯片。 第69页/共75页7.6 IP核简介2. IP核的分类 由于IP核可以在不同的硬件描述级实现,因此,IP核由此产生了三种内核: 软核、固核和硬核。这种分类主要依据产品交付的方式,而这三种IP内核实现方法也各具特色。第70页/共75页7.6 IP核简介软IP :软核通常称之为软IP ,是用VHDL等硬件描述语言描述的功能块,但是并不涉及用什么具体电路元件实现这些功能。硬IP: 硬核通常称之为硬IP,是提供设计阶段最终阶段产品:掩模。 固IP:固核通常称之为固IP,是软核和硬核的折衷。第71页/共75页7.6 IP核简介3. IP的复用 IP(知识产权)核将一些在数字电路中常用,但比较复杂的功能块,比如把FIR滤波器、SDRAM控制器、PCI接口等设计成可修改参数的模块供设计人员调用。 第72页/共75页7.6 IP核简介3. IP的复用 IP核包括硬IP与软IP: 硬IP最大的优点是确保性能,如速度、功耗等。然而,硬IP难以转移到新工艺或集成到新结构中,是不可重配置的。 软IP是以综合形式交付的,因而必须在目标工艺中实现,并由系统设计者验证。其优点是源代码灵活,可重定目标于多种制作工艺,在新功能级中重新配置。 第73页/共75页第7章 宏功能模块的应用思考题与习题1. 什么是宏功能模块?2. 什么是IP核?IP核分为哪几类?3. 简述IP的复用。4. 试分析在EDA技术中的LPM设计优势?第74页/共75页感谢您的观看!第75页/共75页
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!