ImageVerifierCode 换一换
格式:DOCX , 页数:36 ,大小:3.93MB ,
资源ID:6664672      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-6664672.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(实验7BinaryVGAController.docx)为本站会员(b****4)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

实验7BinaryVGAController.docx

1、实验7BinaryVGAController实验7 Binary_VGA_Controller一、 实验目的1. 了解Binary_VGA_Controller,了解VGA显示;2. 熟悉Binary_VGA_Controller在工程中的应用;3. 改变VGA显示图像里光标形状和颜色。二、简单介绍 VGA控制器 IP核的HDL代码(一)VGA_Controller的HDL代码VGA_Controller的HDL代码位于“D:/SOPC资料/VGAcontroller/IP/ Binary_VGA_Controller /hdl”目录下,包括四个verilog文件,功能如表7-1所示:表7-1

2、 VGA_Controller的HDL代码VGA_NIOS_CTRL.v顶层设计,以及映射到Avalon总线的接口寄存器VGA_Controller.vVGA时序产生、光标叠加VGA_OSD_RAM.v图像帧存储器的读写控制器Img_RAM.v6404801 bits的图像帧存储器(二)VGA_Controller的结构图7-1所示为VGA_Controller的结构,其中的“avs_s1_clk_iCLK”来自Avalon总线的系统时钟(50MHz),“iCLK_25”连接到PLL模块的25MHz时钟输出端。三、 实验步骤(一)硬件初建:新建“demo_vga”工程 鼠标左键双击桌面上的“Q

3、uartus II”快捷方式图标,耐心等待片刻,即可启动 “Quartus II”设计页面,如图7-2所示。在“QuartusII”设计页面内,鼠标左键单击“File New Project Wizard”。弹出“New Project Wizard:introduction”。如图7-3所示。鼠标左键单击“next”按钮跳过此页,进入“New Project Wizard: Directory, Name, Top-level entity”页。如图7-4所示。“the working directory for this project”(工程路径)可以任意填写,例如:本实验中填写为“E:

4、demodemo_VGAcontroller”。 这里需要注意:由于“SOPC Builer”工具不能识别空格、中划线等符号,故实验步骤中如果需要命名,命名中不允许有空格、中划线出现,但“SOPC Builer”工具能识别下划线。工程的“工作目录”如前“E:demodemo_VGAcontroller”,将会在E盘上产生一个文件夹“demo”,在“demo”文件夹里产生另一个文件夹“demo_VGAcontroller”(工程文件夹,保存工程文件),这个实验后续步骤中产生的各种文件会自动保存到路径“E:demodemo_VGAcontroller”下。“the name of this pro

5、ject”(工程名字)也可以任意填写,填写为“demo_vga”。“the name of the top-level design entity for this project”(工程顶层实体名称)会自动与工程名字相同,也为“demo_vga”。 这里需要注意:工程顶层设计实体名称一定要与编写的顶层文件“module *”中模块名字一致。“New Project Wizard: Directory, Name, Top-level entity”页面填写完成后,鼠标左键单击“next”按钮,弹出如图7-5所示的问句。鼠标左键单击“是”按钮,进入“Add Files page 2 of 5”

6、页面,如图7-6所示。由于实验到这里还没有建立任何文档,再加上后面步骤中也可以添加,故这里跳过。鼠标左键单击“Next”按钮跳过此页,进入“Family & Device Settings page 3 of 5”页面。“Family & Device Settings page 3 of 5”页面:“Device family”栏里的“family”选择“Cyclone II”;“Available devices”栏里选择“EP2C70F896C6”器件。其它为缺省设置,如图7-7所示。鼠标左键单击“next”按钮的话,还会出现第4页EDA工具的设置和第5页的“Summary”,如果用到可

7、以在此设置。由于目前没有用到,所以在这里就可以用鼠标左键单击 “Finish”按钮,完成新工程的初建。新建的“Quartus II-E:/demo/demo_VGAcontroller/demo_vga-demo_vga”工程如图7-8所示。页面内“Project Navigator”(工程导航)下面的entity栏里,可以看到“Cyclone II: EP2C70F896C6”下面显示工程名字“demo_vga”。初建的“Quartus II-E:/demo/demo_VGAcontroller/demo_vga-demo_vga”工程页面,会自动保存在路径“E:demodemo_VGAco

8、ntroller”下。任何时候想要完成工程后续设计,可以打开此路径下的工程文件夹“demo_VGAcontroller”,如图7-9所示。鼠标左键双击带有蓝色“Quartus”图标的“demo_vga”文件,就可以打开“Quartus II-E:/demo/demo_VGAcontroller/demo_vga-demo_vga”工程页面。(二)粘贴IP核到工程文件夹“demo_VGAcontroller” 在新建的“Quartus II-E:/demo/demo_VGAcontroller/demo_vga-demo_vga”工程页面内,鼠标左键单击“open”按钮,弹出“打开”对话框。在“

9、打开”对话框的“查找范围”里,找到路径“D:SOPC实验资料VGAcontroller资料”下的IP文件夹,拷贝到路径“E:demo demo_VGAcontroller”下,如图7-10所示。把IP 核拷贝到此实验的工程文件夹“demo_VGAcontroller”后,“SOPC Builder”工具会自动识别IP,此IP与Altera公司提供的其他共用IP核一起出现在“SOPC Builder”工具页面共用IP库中,可以参与硬件配置。(三)利用“SOPC Builder”工具配置硬件配置硬件是个繁琐的事情,如果一个硬件参数配置不对,整个系统就不能用,所以简便而实用的方法是从友晶科技的大师们

10、提供的范例里拷贝硬件配置,另外还可以从已经做通的实验里拷贝硬件配置。在“Quartus II-E:/demo/demo_VGAcontroller/demo_vga-demo_vga”工程页面,鼠标左键单击“open”按钮,弹出“打开”对话框。在 “查找范围”选择某个实验所在的路径,把 “nios0.sopc”文件拷贝到此实验所在的路径“E:/demo/demo_VGAcontroller”下。鼠标左键双击“nios0.sopc”文件,打开后可以重新配置硬件。有些在此实验需要的硬件可以保留,有些用不到的硬件可以一个个删除:鼠标左键单击硬件名称使其蓝色高亮,然后单击硬件默认显示栏下的“Remov

11、e”按钮,即可删去此硬件。在此,作为参考再次把此实验所需硬件完整配置一遍。在“Quartus II-E:/demo/demo_VGAcontroller/demo_vga-demo_vga”工程页面内,鼠标左键单击Tools SOPC Builder。弹出“Create New System”对话框:“System Name”填写“nios0”。“Target HDL”项一般选择“Verilog”。如图7-11所示。鼠标左键单击“OK”按钮,即初步建成了工程的硬件添加系统。在这个页面里可以添加工程所需硬件,形成良好的硬件系统。添加的硬件会显示在默认空白部分,并且可以修改,在此默认空白区还显示硬

12、件的主从连接,如图7-12所示。“SOPC Builer”工程页面的“System Contents”栏下出现“IME of Tsinghua Univ./Binary_VGA_Controller_IF”。选择Verilog,表示“SOPC Builder”会将你稍后所配置的IP,以Verilog表示,若你熟悉VHDL,也可以选择VHDL。这里的设定不是限制了日后只能用Verilog或VHDL写代码,因为Quartus II本来就允许Verilog与VHDL混合編程,也就是说Verilog的module可以使用VHDL的entity,VHDL的entity可以使用Verilog的module

13、,最后都能顺利编译。如果配置硬件的过程中暂停设计,关闭“SOPC Builder”工具页面会弹出一个问句,如图7-13所示。鼠标左键单击“Save”按钮,建立的硬件系统信息就保存到路径“E:/demo/demo_VGAcontroller”下的文件“nios0.sopc”中。任何时候,如果需要打开此工程的“SOPC Builder”工具页面完成后续的硬件配置的话,可以先打开“Quartus II-E:/demo/demo_VGAcontroller/demo_vga-demo_vga”工程页面(方法如图7-9所示),在工程页面内,鼠标左键单击“open”按钮弹出“打开”页面。在“查找范围”找到

14、路径“E:demodemo_VGAcontroller”下的“nios0.sopc”文件,鼠标左键双击 “nios0.sopc” 文件即可打开本工程的“SOPC Builder”工具页面。(四)配置硬件1定义时钟 确认“SOPC Builder”工具页面的“Target/Device Family”是“Cyclone II”。在如图7-14所示的“Clock Settings”栏里可以看到50.0MHz,代表Nios II CPU在DE2-70可以运行在50.0MHz,但这时CPU降频在跑,正常情況下,Nios II CPU在DE2-70可以运行100.0MHz,所以可以用PLL将clk倍频成

15、100.0Mhz。2增加用来保存 Nios程序的片上存储器(On Chip Memory(RAM or ROM))“On Chip Memory”在FPGA芯片内,是DE2-70上所有存储器中存储量最小,但是速度最快的存储器。在“SOPC Builder”工具页面,鼠标左键单击System Contents- Component Library- Memories and Memory Controllers - On Chip - On Chip Memory(RAM or ROM) - Add 。弹出“on chip memory”设置页面,如图7-15所示。在“on chip memor

16、y”设置页面:“Total Memory Size”设置为80960;其他为缺省设置,鼠标左键单击“Finish”按钮。不用管状态框里的错误,添加 Nios处理器后会自动消失。“Total memory size”与能使用的M4K存储器数量、FPGA、Nios II CPU和Megafunction(如fcfifo)都会影响“On-chip Memory”的size,本教程使用 80k。“On Chip Memory”会在“SOPC Builder”工具页面默认空白区有显示如图7-16所示。如果想修改“On Chip Memory”的设置,可以左键双击硬件名称,会重新弹出如图7-15所示的设置

17、页面。对于其他硬件来说,方法类似。把“onchip_memory2_0”改成“onchip_mem”。3添加Nios II/s处理器(Nios II Processor)在“SOPC Builder”工具页面,鼠标左键单击System Contents-Component Library-Nios II Processor - Add,弹出“Nios II Processor”设置页面。在“Nios II Processor”设置页面:CPU设置为Nios II/e处理器;Reset Vector和Exception Vector都指向速度最快的存储器,通常是on-chip memory或SS

18、RAM,如图7-17所示。鼠标左键单击“Finish”按钮,把“cpu_0”改成“cpu”。4添加调试接口(JTAG-UART)在“SOPC Builder”工具页面,鼠标左键单击System Contents-Component Library-Interface Protocols - Serial - JTAG UART -Add,弹出“JTAG UART”设置页,如图7-18所示。使用缺省设置,鼠标左键单击 “Finish”按钮。把“jtag_uart_0”改成“jtag_uart”。JTAG UART是PC与SOPC进行序列传输的一种方式,也是Nios II CPU标准的输出/输入设

19、备。如printf()通过JTAG UART,经过USB Blaster将输出结果显示在PC的Nios II EDS上的console,scanf()通过USB Blaster经过JTAG UART将输入传给SOPC。5添加两个内部定时器(Interval Timer)在“SOPC Builder”工具页面,鼠标左键单击System Contents-Component Library-Peripherals -Microcontroller Peripherals - Interval Timer -Add,弹出“Interval Timer”设置页,按照图7-19所示设置,鼠标左键单击“F

20、inish”按钮。把“timer_0”改成“timer”。6添加系统ID(System ID)在“SOPC Builder”工程页面,鼠标左键单击System Contents-Component Library-Peripherals- Debug and Performance- System ID Peripheral-Add,弹出“System ID peripheral”设置页面,如图7-20所示。使用缺省设置,鼠标左键单击“Finish”按钮,把“sysid_0”的名称改为“sysid”。“SOPC Builder”会使用System ID为每个系统提供识别符号,Nios II E

21、DS可以识别符号防止使用者往FPGA上烧录了与“.ptf”不符合的“.sof”。7增加PLL在“SOPC Builder”工具页面,鼠标左键单击System Contents-Component Library- PLL- PLL - Add。在弹出的对话框里,鼠标左键单击“Launch Alteras ALTPLL MegaWizard”,使按钮周框内侧出现虚方框,如图7-21所示。鼠标左键单击“next”按钮,进入ALTPLL多项设置页面。默认进入的页面是: 1 parameter settings栏的“General / Modes”设置页,显示为: 1 parameter settin

22、gs为深兰色背景,“General / Modes”为General / Modes ,如图7-22左上角所示,此页缺省设置。鼠标左键单击 2 output clocks栏,默认转换到“c0-Core/External output clocks”的设置页面,在“c0-Core/External output clocks”的设置页面: 2 output clocks为深兰色背景,“clk c0”为clk c0,“clk c0”各参数按照图7-23所示页面设置。图7-23鼠标左键单击“Finish”按钮,并且单击经过的所有页面的“Finish”按钮。设置了PLL后,在本工程硬件系统的“SOPC

23、 Builder”工具页面,“Clock Settings” 栏下:“clk_0” 改名为“clk_50”;“pll_0_c0” 改名为“clk_25”,如图7-24所示。8. 添加input PIO在“SOPC Builder”工程页面,鼠标左键单击System ContentsComponent LibraryPeripherals Microcontroller Peripherals PIO(Parallel I/O) Add,弹出“PIO(Parallel I/O)”多项设置页面。默认进入“Parameter Settings”的“Basic Settings”设置页面,如图7-25

24、所示。此页设置:“Width”为 4; “Direction” 为 input;其他为默认值。鼠标左键单击“Input Options”标签,弹出“Input Options”设计页面,按照如图7-26所示设置。将该硬件的名称改为“button_pio”,作为连接KEY01的PIO。9. 添加output PIO在“SOPC Builder”工具页面,鼠标左键单击System ContentsComponent LibraryPeripheralsMicrocontroller Peripherals PIO(Parallel I/O) Add。弹出“PIO(Parallel I/O)”多项设

25、置页面。在此页设置:“Width”为8; “Direction” 为 output;其他为默认值,如图7-27所示。将名称改为“led_pio”,作为连接绿LED的PIO。10. 添加VGA控制器在“SOPC Builder”工具页面,鼠标左键单击System ContentsComponent LibraryIME of Tsinghua Uinv.Binary_VGA_Controller_IFAdd,弹出“Binary_VGA_Controller_IF”设置页,全部缺省设置,鼠标左键单击“Finish”,该硬件名字改为“VGA”。至此,已经完成了“nios0”硬件系统的搭建,结构如图7

26、-28所示。鼠标左键单击各个元器件“Clock”,会出现下拉三角,左键点开下拉三角:全部器件选择“clk_50”。(五)产生“.ptf”文件在“SOPC Builder”工程页面,鼠标左键单击 System AutoAssign Base Addresses,菜单自动设置映射地址;在“SOPC Builder”工程页面,鼠标左键单击System AutoAssign IRQs菜单自动设置中断号,中断号越小,优先级越高。一般把 Timer 的优先级设为最高。 然后,在“SOPC Builder”工程页面,鼠标左键单击“Generate”。如果弹出问句,鼠标左键单击“Save”按钮。 “ Gene

27、rate”过程中,弹出的页面下面有进度提示,如图7-29所示。“Generate”完成后点击“Exit”退出。弹出“是否保存”的问句,鼠标左键单击“Save”。这里需要注意:“ Generate”完成后生成的“.ptf”文件和其他文件都自动保存在路径“E:/demo/demo_VGAcontroller”下。在“Quartus II-E:/demo/demo_VGAcontroller/demo_vga-demo_vga”工程页面,打开此实验的工程文件夹“demo_VGAcontroller”,可以看到生成的文件如图7-30所示。特别需要注意“nios0_inst.v”文件,这个文件内容是编写

28、顶层文件时,例化“nios0”的参考模板。(六)编写顶层文件“SOPC Builder”工具已经产生了“nios0”硬件系统,下面要在 Quartus II里例化 “nios0”,并和其他的逻辑电路、芯片的输入输出管腿连接。例化“nios0”可以用原理图方法,或者用Verilog编写顶层文件。此处,采用“Verilog HDL”语言编写顶层文件例化“nios0”系统。在“Quartus II-E:/demo/demo_VGAcontroller/demo_vga-demo_vga”工程页面,鼠标左键单击File New Verilog HDL File,打开“.v”文件录入区。如图7-31中的

29、红色箭头所示区内可以看到一条闪烁的录入光标。就像平时使用word文档时一样,把下列篇幅中提供的“demo_vga.v”内容拷贝进去。“demo_vga.v”内容:module demo_vga( input iCLK_50, output 9: 0 oVGA_B, output 9: 0 oVGA_G, output 9: 0 oVGA_R, output oVGA_CLOCK, output oVGA_BLANK_N, output oVGA_SYNC_N, output oVGA_HS, output oVGA_VS, input 3: 0 iKEY, output 7: 0 oLEDG

30、); wire reset_n = 1b1; wire clk_25; /Set us up the Dut nios0 ( .avs_s1_export_iCLK_25_to_the_vga (clk_25), /VGA IP Input Clock .avs_s1_export_VGA_R_from_the_vga (oVGA_R), /VGA R output to ADV7123 .avs_s1_export_VGA_G_from_the_vga (oVGA_G), /VGA G output to ADV7123 .avs_s1_export_VGA_B_from_the_vga (

31、oVGA_B), /VGA B output to ADV7123 .avs_s1_export_VGA_CLK_from_the_vga (oVGA_CLOCK),/VGA Clock output to ADV7123 .avs_s1_export_VGA_BLANK_from_the_vga (oVGA_BLANK_N), /VGA Blank output to ADV7123 .avs_s1_export_VGA_SYNC_from_the_vga (oVGA_SYNC_N), /VGA SYNC output to ADV7123 .avs_s1_export_VGA_HS_from_the_vga (oVGA_HS), /VGA HS output to DB15 Socket .avs_s1_export_VGA_VS_from_the_vga (oVGA_VS),/VGA VS output to DB15 Socket .clk_25 (clk_25), /PLL 25MHz output .in_

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2