tag 标签: fpga入门

相关博文
  • 热度 20
    2016-6-16 21:58
    2040 次阅读|
    0 个评论
    Xilinx FPGA 入门连载 83 : RTC 时间的 LCD 显示和 UART 设置 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1jGjAhEm   1 功能简介          该实例工程的功能框图如图所示。 PC 可以通过 UART 发送串口帧数据对 RTC 芯片的当前时间进行调整; FPGA 内部定时读取 RTC 芯片的最新时间,将此时间通过 3.5 寸的 LCD 显示出来; LCD 的字模数据则存储在 FPGA 内嵌 ROM 中。   2 模块划分          本实例模块划分如图所示。          这些模块几乎前面的实例中都使用过,本实例只是将他们整合在一起,唯一需要特别进行设计的是 lcd_controller.v 模块中字模显示位置以及相关逻辑的实现。   3 板级调试 连接好下载线,连接好 SF-SP6 核心板和 SF-LCD 子板,给它们供电。 打开 ISE ,进入 iMPACT 下载界面,将本实例工程下的 sp6.bit 文件烧录到 FPGA 中在线运行。          此时,可以看到 LCD 上显示了黑底蓝字的时间信息。          如图所示,打开“串口调试器”,做好设置,然后输入数据“ aa10553055 ”,其中 aa 表示帧头, 55 表示帧尾,时间设定为“ 10:55:30 ”。点击“手工发送”,则可以看到液晶屏上的时间也跟着变化了,这是因为 RTC 芯片已经写入了新的时间数据。        
  • 热度 21
    2016-6-14 21:51
    1291 次阅读|
    0 个评论
    Xilinx FPGA 入门连载 82 : LCD 字符显示驱动之实验概述 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1jGjAhEm     1 功能简介          如图所示,本实例除了 SF-SP6 开发板,还需要 SF-LCD 子板用于连接 3.5 寸 320*240 的真彩色液晶屏。 FPGA 内部产生例化一个预存储好字符的 ROM IP 核,在驱动 LCD 显示时,这个字模将显示在 LCD 上。   2 模块划分          本实例模块划分如图所示。 ●   lcd_controller.v 模块产生 LCD 驱动时序和显示字符处理。 ●   rom_controller.v 模块为例化的 ROM IP 核,预存储字模数据。   3 装配          SF-SP6 开发板和 SF-LCD 子板的装配连接如图所示。   4 板级调试 连接好下载线,给 SP6 开发板供电。 打开 ISE ,进入 iMPACT 下载界面,将本实例工程下的 sp6.bit 文件烧录到 FPGA 中在线运行。          如图所示,可以看到 LCD 上出现字符 A 。      
  • 热度 19
    2016-6-12 22:03
    1669 次阅读|
    0 个评论
    Xilinx FPGA 入门连载 81 : LCD 字符显示驱动之之 ROM 配置 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1jGjAhEm   1 ROM 初始化文档创建          Xilinx FPGA 的片内 ROM 支持初始化数据配置。如图所示,我们可以创建一个名为 rom_init.coe 的文件,注意后缀一定是“ .coe ”,前面的名称当然你可以随意起。          ROM 初始化文件的内容格式如下所示。是这个 64*32bit 大小 ROM 的初始化数据。 MEMORY_INITIALIZATION_RADIX=16;// 表示 ROM 内容的数据格式是 16 进制 MEMORY_INITIALIZATION_VECTOR= 00000000,        0000C000, 0003C000, 0003C000, 0007E000, 0007E000, 0007E000, 0006E000, 000CF000, 000CF000, 000CF000, 000CF000, 00187800, 00187800, 00187800, 00187800, 00303C00, 00303C00, 00303C00, 00303C00, 00701C00, 00601E00, 00601E00, 00601E00, 00E00E00, 00C00F00, 00C00F00, 00FFFF00, 01FFFF00, 01800F80, 01800780, 01800780, 03800780, 030007C0, 030003C0, 030003C0, 070003C0, 060003E0, 060001E0, 060001E0, 0E0001E0, 0E0001F0, 1F0001F8, 7FC00FFE, 7FC00FFE, 00000000, 00000000, 00000000, 00000000, 00000000, 00000000, 00000000, 00000000, 00000000, 00000000;     // 每个数据后面用逗号或者空格或者换行符隔开,最后一个数据后面加分号   2 新建源文件 打开 ISE 工程,如图所示,在“ Design à Implementation à Hierarchy ”中的任意位置单击鼠标右键,弹出菜单中选择“ New Source.. ”。 在“ New Source Wizard ”中,做如图所示的设置。 ●   “ Select Source Type ”中选择新建文件类型为“ IP (CORE Generator Architecture Wizard) ”。 ●   “ File name ”即文件名,我们命名为“ rom_controller ”。 ●   “ Location ”下面输入这个新建文件所存放的路径,我们将其定位到工程路径下的“ ipcore_dir ”文件夹下。 ●   勾选上“ Add to project ”。          完成以上设置后,点击“ Next ”进入下一步。   3 IP 选择 在“ Select IP ”页面中,如图所示,我们在“ View by Function ”下面找到“ Memories Storage Elements à RAMs ROMs à Block Memory Generator ”,单击选中它,接着点击“ Next ”进入下一步。          弹出“ Summary ”页面后,点击“ Finish ”即可。   4 ROM 配置          弹出的第 1 个页面中,如图所示,“ Interface Type ”选择“ Native ”,然后点击“ Next ”到下一个配置页面。          弹出的第 2 个页面中,如图所示,“ Memory Type ”选择“ Single Port ROM ”,其他配置默认即可,然后点击“ Next ”到下一个配置页面。          弹出的第 3 个页面中,如图所示, ROM 位宽“ Read Width ”输入“ 32 ” bit ; ROM 深度“ Depth ”输入“ 64 ”。其他配置默认即可,然后点击“ Next ”到下一个配置页面。          第 4 个配置页面中,如图所示勾选“ Memory Initiazation ”下的“ Load Init File ”,然后点击“ Browse ”定位到前面创建的 rom_init.coe 文件所在路径。          余下 2 个页面均使用默认设置即可,点击“ Generate ”生成 ROM 。        
  • 热度 15
    2016-6-7 22:13
    2054 次阅读|
    0 个评论
    Xilinx FPGA 入门连载 80 : LCD 字符显示驱动之字符取模 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1jGjAhEm   1 字符取模 要显示字符,首先需要获得字模数据,我们使用字模软件 PCtoLCD2002 。该字模软件用 1bit 代表一个像素点,即它只能表示 2 种颜色的图像,当然不是仅仅局限于黑和白了,用户可以根据需要来决定这 1bit 数据( 0 或 1 )代表的色彩。 下面说明我们的设计中需要的字符是如何取模的,启动取模软件 PCtoLCD2002 ,点击菜单栏的“模式”,选择“字符模式”。再点击菜单栏的“选项”(或点击如图所示的齿轮图标),在弹出的对话框中设置如图所示(行后缀为英文的“ ; ”)。此外,在主界面中,我们设置字符宽度为 64*64 (实际上如果我们是给字符取模,它默认为 32*64 ),在主界面下方的字模输入框中输入了大写字母 A ,接着点击它右侧的“生成字模”按钮(图中没有示意),则在输出栏中出现了一大串 32bit 一行,并且行后缀为“ ; ”的字符, copy 他们,后面马上就会用上。          32*64 点阵的字符“ A ”取模后的数据如下。实际上这些数据如果我们用二进制的 0 和 1 一位位的将他们排列开来,则我们可以看到 1 可以排列出一个字母“ A ”出来。正是根据这个原理,我们后面会每行 32 位的将他们送往液晶屏显示,一共有 64 行这样的显示。 A (0)   00000000; 00000000; 00000000; 00000000; 00000000; 00000000; 00000000; 00000000; 00000000; 00000000; 0000C000; 0003C000; 0003C000; 0007E000; 0007E000; 0007E000; 0006E000; 000CF000; 000CF000; 000CF000; 000CF000; 00187800; 00187800; 00187800; 00187800; 00303C00; 00303C00; 00303C00; 00303C00; 00701C00; 00601E00; 00601E00; 00601E00; 00E00E00; 00C00F00; 00C00F00; 00FFFF00; 01FFFF00; 01800F80; 01800780; 01800780; 03800780; 030007C0; 030003C0; 030003C0; 070003C0; 060003E0; 060001E0; 060001E0; 0E0001E0; 0E0001F0; 1F0001F8; 7FC00FFE; 7FC00FFE; 00000000; 00000000; 00000000; 00000000; 00000000; 00000000; 00000000; 00000000; 00000000; 00000000;/*"A",0*/ 基于前面取到的字模数据,我们假定从屏幕的( 0 , 0 )坐标到( 31 , 63 )坐标区域(对应就是 32*64 的点阵)内显示字符。那么 当坐标计数器刷新到( 0 , 0 )坐标点的时候我们就要相应判断第一行数据的 bit31 的值,然后决定送哪种色彩( 0 代表一种色彩, 1 代表另一种色彩)。 当坐标计数器刷新到( 1 , 0 )坐标点的时候我们就要相应判断第一行数据 的 bit30 的值……直到刷新到( 31 , 0 )时判断第一行数据的 bit0 的值,由此完成了首行字模数据的译码。往后的译码都和首行类似, 64 行字模数据寻址完毕后,大写字母“ A ”便出现在我们的屏幕上。 当然了,为了显示得美观,我们特意将这个 32*64 的大写字母“ A ”放到了 320*240 的 LCD 的正中央。那么它的坐标就不是( 0 , 0 )到( 31 , 63 )的区域了。而是( 144 , 104 )到( 175,135 )这个区域。我们这个实例最终要显示的效果如图 7.86 所示。在( 144 , 104 )到( 175,135 )这个区域内,字符“ A ”以蓝( 16’h001f )字红( 16’hf800 )底显示, LCD 的其他显示区域则为黑色( 16’h0000 )。      
  • 热度 14
    2012-6-26 11:34
    1180 次阅读|
    2 个评论
    亲,您好,这里首先介绍下FPGA入门的一些步骤。 1、先了解FPGA和Verilog,知道这两个东西能做什么,用在哪里。 2、知道FPGA和Verilog的重要性后,您得抓紧时间学习了,一万年不太久,只争朝夕! 3、如何学习FPGA和Verilog呢,最好有个导师指导,但是,这个一般可遇不可求。没有导师辅导的情况下,只能靠自己,这里建议大家买个开发板学习。开发板会送很多资料,还有程序以及硬件知识,对您学习FPGA和Verilog有非常大的帮助,只有动手实践了,学到的东西才是您自己的。 4、购买开发板之后,遇到问题可以咨询卖家,一般来讲服务都是比较好的。 5、买到开发板之后,先对Altera的芯片有个基本了解,知道FPGA有AS和JTAG两种下载模式,然后安装配套软件,初期安装QUARTUS即可,后期可以安 装NIOS II和Modelsim。 6、程序安装完成后(需要按照**说明进行**哦),可以跑几个光盘里的基本功能程序,大概有个感觉,此时需要掌握如何下载程序到FPGA里面哦。 7、现在可以学习Verilog了,Verilog我们的光盘里有视频教程,挨着看就好了,ZLG的视频很好的,主要掌握基本的语法就可以了,太复杂的暂时不要去花时间,我写了5年的代码,几个大型项目,都不需要用到非常复杂的语法。另外有啥不懂的直接问我。 8、如果您没有数字电路基础,那需要把光盘里的基本程序(门电路、组合逻辑)掌握哦,有基本的数字电路基础也可以再复习下。 9、现在可以对着提供的配套程序分析代码了,也可以自己试着写几个练手,要多写哦。 10、Verilog学习累了,就看看FPGA的基本结构,了解下什么是查找表LUT等基本的FPAG单元,知道ALTERA的系列型号,还是比较有意思的。 11、基本的程序会写之后,可以适当编写负责的程序,我们的光盘里面分了几个阶段,就是针对不同阶段的您准备的。 12、RTL代码是需要验证的,需要编写测试环境进行UT单元测试,我们的光盘里也有配套资料的,好好学习吧。 13、现在您应该基本入门了,可以找几个大的程序练手吧,推荐SDRAM和CPU设计程序。