ALILNX, FPGA技术解决方案提供商
黑金论坛地址: http://www.heijin.org/forum.php?mod=viewthread&tid=36641&extra=page%3D1 爱奇艺地址: http://www.iqiyi.com/w_19ruggkqf9.html?source=
黑金论坛地址: http://www.heijin.org/forum.php?mod=viewthread&tid=36640&extra=page%3D1 爱奇艺地址: http://www.iqiyi.com/w_19rugglzn1.html?source=
黑金论坛地址: http://www.heijin.org/forum.php?mod=viewthread&tid=36639&extra=page%3D1 爱奇艺地址: http://www.iqiyi.com/w_19rughesgp.html?source=
黑金论坛地址: http://www.heijin.org/forum.php?mod=viewthread&tid=36638&extra=page%3D1 爱奇艺地址: http://www.iqiyi.com/w_19rugh7o7h.html?source=
黑金论坛地址: http://www.heijin.org/forum.php?mod=viewthread&tid=36637&extra=page%3D1 爱奇艺地址: http://www.iqiyi.com/w_19rugii7ut.html?source=
黑金论坛地址: http://www.heijin.org/forum.php?mod=viewthread&tid=36636&extra=page%3D1 爱奇艺地址: http://www.iqiyi.com/w_19rugikndx.html?source=
黑金论坛地址: http://www.heijin.org/forum.php?mod=viewthread&tid=36627&extra=page%3D1 爱奇艺地址: http://www.iqiyi.com/w_19rugik21x.html
简介 一本为完善《设计篇》的书,教你CORDIC算法以及定点数等,内容请看目录。 贴士 这本教程难度略高,请先用《时序篇》垫底。 目录 Experiment 01:认识CORDIC算法 Experiment 02:CORDIC算法的原理 Experiment 03:CORDIC算法简化① Expe...
简介 一本为完善《设计篇》的书,教你CORDIC算法以及定点数等,内容请看目录。 贴士 这本教程难度略高,请先用《时序篇》垫底。 目录 Experiment 01:认识CORDIC算法 Experiment 02:CORDIC算法的原理 Experiment 03:CORDIC算法简化① Expe...
简介 一本为入门图像处理的入门书,另外还教你徒手搭建平台(片上系统),内容请看目录。 注意 为了达到最好的实验的结果,请准备以下硬件。 AX301开发板, OV7670摄像模块, VGA接口显示器, 16GB SDHC卡(闪迪),7" 液晶显示器(可选)。
简介 一本为入门图像处理的入门书,另外还教你徒手搭建平台(片上系统),内容请看目录。 注意 为了达到最好的实验的结果,请准备以下硬件。 AX301开发板, OV7670摄像模块, VGA接口显示器, 16GB SDHC卡(闪迪),7" 液晶显示器(可选)。
简介 一本为入门图像处理的入门书,另外还教你徒手搭建平台(片上系统),内容请看目录。 注意 为了达到最好的实验的结果,请准备以下硬件。 AX301开发板, OV7670摄像模块, VGA接口显示器, 7" 液晶显示器(可选)。
简介工具篇系列的第三本教程,讲述各种与SignalTap II 有关的调试技巧。目录[黑金原创教程] FPGA那些事儿《工具篇III》:File01 - 上线调试与下线调试[黑金原创教程] FPGA那些事儿《工具篇III》:File02 - SignalTap 扫盲[黑金原创教程] F...
简介一本讲述非软硬片上系统的书,另外还是低级建模的使用手册。目录[黑金原创教程] FPGA那些事儿《概念篇》:File01 - 结构的玩笑[黑金原创教程] FPGA那些事儿《概念篇》:File02 - 结构化与标准化[黑金原创教程] FPGA那些事儿《概念篇》:File03 - 面向结构...
实验二十九:LCD模块 据说Alinx 301支持 7”TFT,好奇的朋友一定疑惑道,它们3.2”TFT以及7”TFT等两者之间究竟有何区别呢?答案很简单,前者自带控制器也有图像内存。换之,后者好似缩小版台式的液晶,它除了接口以外什么也没有。
实验二十八:TFT模块 - 触屏 读者在上一个实验所玩弄过的 TFT LCD模块,除了显示大小为 320 × 240,颜色为16位RGB的图像信息以外,它还支持触屏。所谓触屏就是鼠标还有键盘以外的输入手段,例如现在流行平板还有智能手机,触屏输入对我们来说,已经成为日常的一部分。
实验二十七:TFT模块 - 显示 所谓TFT(Thin Film Transistor)就是众多LCD当中,其中一种支持颜色的LCD,相较古老的点阵LCD(12864笑),它可谓高级了。黑金的TFT LCD除了320×240大小以外,内置SSD1289控制器,同时也是独立模块。
实验二十七:TFT模块 - 显示 所谓TFT(Thin Film Transistor)就是众多LCD当中,其中一种支持颜色的LCD,相较古老的点阵LCD(12864笑),它可谓高级了。黑金的TFT LCD除了320×240大小以外,内置SSD1289控制器,同时也是独立模块。
实验二十六:VGA模块 VGA这家伙也算孽缘之一,从《建模篇》那时候开始便一路缠着笔者。《建模篇》之际,学习主要针对像素,帧,颜色等VGA的简单概念。《时序篇》之际,笔者便开始摸索VGA的时序。《整合篇》之际,笔者尝试控制VGA的时序。
实验二十六:VGA模块 VGA这家伙也算孽缘之一,从《建模篇》那时候开始便一路缠着笔者。《建模篇》之际,学习主要针对像素,帧,颜色等VGA的简单概念。《时序篇》之际,笔者便开始摸索VGA的时序。《整合篇》之际,笔者尝试控制VGA的时序。
实验二十五:SDHC模块 笔者曾经说过,SD卡发展至今已经衍生许多版本,实验二十四就是针对版本SDV1.×的SD卡。实验二十四也说过,CMD24还有CMD17会故意偏移地址29,让原本范围指向从原本的232 变成 223,原因是SD卡读写一次都有512个字节。
实验二十三:DS1302模块 DS1302这只硬件虽然曾在《建模篇》介绍过,所以重复的内容请怒笔者懒惰唠叨了,笔者尽可以一笑带过,废话少说让我们进入正题吧。DS1302是执行事实时钟(Real Time Clock)的硬件,采用SPI传输。
实验二十三:DS1302模块 DS1302这只硬件虽然曾在《建模篇》介绍过,所以重复的内容请怒笔者懒惰唠叨了,笔者尽可以一笑带过,废话少说让我们进入正题吧。DS1302是执行事实时钟(Real Time Clock)的硬件,采用SPI传输。
实验二十一:SDRAM模块④ — 页读写 β 未进入主题之前,让我们先来谈谈一些重要的体外话。《整合篇》之际,笔者曾经比拟Verilog如何模仿for循环,我们知道for循环是顺序语言的产物,如果Verilog要实现属于自己的for循环,那么它要考虑的东西除了步骤以外,还有非常关键的时钟。
实验十九:SDRAM模块② — 多字读写 表示19.1 Mode Register的内容。 Mode Register A12 A11 A10 A9 A8 A7 A6 A5 A4 A3...
实验十九:SDRAM模块② — 多字读写 表示19.1 Mode Register的内容。 Mode Register A12 A11 A10 A9 A8 A7 A6 A5 A4 A3...
实验十八:SDRAM模块① — 单字读写 笔者与SDRAM有段不短的孽缘,它作为冤魂日夜不断纠缠笔者。笔者尝试过许多方法将其退散,不过屡试屡败的笔者,最终心情像橘子一样橙。《整合篇》之际,笔者曾经大战几回儿,不过内容都是点到即止。
实验十八:SDRAM模块① — 单字读写 笔者与SDRAM有段不短的孽缘,它作为冤魂日夜不断纠缠笔者。笔者尝试过许多方法将其退散,不过屡试屡败的笔者,最终心情像橘子一样橙。《整合篇》之际,笔者曾经大战几回儿,不过内容都是点到即止。
1. int main() 2. { 3. int A; 4. A = 16; 5. } 代码17.1 话题为进入之前,首先让我们来聊聊一些题外话。那些学过软核NIOS的朋友可曾记得,软核NIOS可利用片上内存作为储存资源,而且它也能利用SDRAM作为储存资源,然而问题是在这里 ... 如代码17.1所示,笔者先建立变量A,然后变量A赋值16。
1. int main() 2. { 3. int A; 4. A = 16; 5. } 代码17.1 话题为进入之前,首先让我们来聊聊一些题外话。那些学过软核NIOS的朋友可曾记得,软核NIOS可利用片上内存作为储存资源,而且它也能利用SDRAM作为储存资源,然而问题是在这里 ... 如代码17.1所示,笔者先建立变量A,然后变量A赋值16。
IIC储存器是笔者用来练习精密控时的经典例子。《整合篇》之际,IIC储存器的解释,笔者也自认变态。如今笔者回头望去,笔者也不知道自己当初到底发什么神经,既然将IIC的时序都解释一番。由于开发上板也嵌着IIC储存器(24LC04),笔者还得循例地介绍一下。
实验十五:FIFO储存模块(同步) 笔者虽然在实验十四曾解释储存模块,而且也演示奇怪的家伙,但是实验十四只是一场游戏而已。至于实验十五,笔者会稍微严肃一点,手动建立有规格的储存模块,即同步FIFO。那些看过《时序篇》的同学一定对同步FIFO不会觉得陌生吧?因为笔者曾在《时序篇》建立基于移位寄存器的同步FIFO。
刚刚拿到骏龙提供的ALTERA MAX10官方评估板,还热乎呢,呵呵!赶紧跟大家分享一下 板子很简单,把IO口都扩展出来了,其他功能基本上没有。 FPGA型号是10M08SAE144C8GES,144引脚封装,单电源供电,集成12bitAD功能,8K逻辑单元,其他大家可以看一下MAX10的DATASHEET http://www.
刚刚拿到骏龙提供的ALTERA MAX10官方评估板,还热乎呢,呵呵!赶紧跟大家分享一下 板子很简单,把IO口都扩展出来了,其他功能基本上没有。 FPGA型号是10M08SAE144C8GES,144引脚封装,单电源供电,集成12bitAD功能,8K逻辑单元,其他大家可以看一下MAX10的DATASHEET http://www.
实验十三:串口模块② — 接收 我们在实验十二实现了串口发送,然而这章实验则要实现串口接收 ... 在此,笔者也会使用其它思路实现串口接收。 图13.1 模块之间的数据传输。 假设我们不考虑波特率,而且一帧数据之间的传输也只是发生在FPGA之间,即两只模块之间互转,并且两块模块都使用相同的时钟频率,结果如图13.1所示。
实验十三:串口模块② — 接收 我们在实验十二实现了串口发送,然而这章实验则要实现串口接收 ... 在此,笔者也会使用其它思路实现串口接收。 图13.1 模块之间的数据传输。 假设我们不考虑波特率,而且一帧数据之间的传输也只是发生在FPGA之间,即两只模块之间互转,并且两块模块都使用相同的时钟频率,结果如图13.1所示。
实验十二:串口模块① — 发送 串口固然是典型的实验,想必许多同学已经作烂,不过笔者还要循例介绍一下。我们知道串口有发送与接收之分,实验十二的实验目的就是实现串口发送,然而不同的是 ... 笔者会用另一种思路去实现串口发送。
实验十一:PS/2模块⑤ — 扩展鼠标 当普通鼠标即三键鼠标再也无法满足需求的时候,扩展鼠标即滚轮鼠标就诞生了,然而实验十一的实验目的就是实现滚轮鼠标的驱动。不过,进入整体之前,先让我们来了解一下鼠标的常用命令。
实验十:PS/2模块④ — 普通鼠标 学习PS/2键盘以后,接下来就要学习 PS/2 鼠标。PS/2鼠标相较PS/2键盘,驱动难度稍微高了一点点,因为FPGA(从机)不仅仅是从PS/2鼠标哪里读取数据,FPGA还要往鼠标里写数据 ... 反之,FPGA只要对PS/2键盘读取数据即可。
实验九:PS/2模块③ — 键盘与多组合键 笔者曾经说过,通码除了单字节以外,也有双字节通码,而且双字节通码都是 8’hE0开头,别名又是 E0按键。常见的的E0按键有,,,,,, 等编辑键。除此之外,一些组合键也是E0按键,例如 或者 。
实验八:PS/2模块② — 键盘与组合键 实验七之际,我们学习如何读取PS/2键盘发送过来的通码与断码,不过实验内容也是一键按下然后释放,简单按键行为而已。然而,实验八的实验内容却是学习组合键的按键行为。
实验七:PS/2模块① — 键盘 实验七依然也是熟烂的PS/2键盘。相较《建模篇》的PS/2键盘实验,实验七实除了实现基本的驱动以外,我们还要深入解PS/2时序,还有PS/2键盘的行为。不过,为了节省珍贵的页数,怒笔者不再重复有关PS/2的基础内容,那些不晓得的读者请复习《建模篇》或者自行谷歌一下。
实验六:数码管模块 有关数码管的驱动,想必读者已经学烂了 ... 不过,作为学习的新仪式,再烂的东西也要温故知新,不然学习就会不健全。黑金开发板上的数码管资源,由始至终都没有改变过,笔者因此由身怀念。
实验五:按键模块④ — 点击,长点击,双击 实验二至实验四,我们一共完成如下有效按键: l 点击(按下有效) l 点击(释放有效) l 长击(长按下有效) l 双击(连续按下有效) 然而,不管哪个实验都是只有两项“功能”的按键模块而已,如今我们要创建三项“功能”的按键模块,亦即点击(按下有效),长击,还有双击。
2014年已经过去快一半了,才出黑金2014年的FPGA原创教程规划,有点对不起大家了,哈哈! 俗话说,亡羊补牢,为时不晚,希望大家谅解啊,对于大家的支持,我们黑金人一向是感激、感恩、感谢! 下面大概说一下2014年的原创教程规划: 我们正在连载的是【FPGA那些事儿-驱动篇I 】,这本教程连载完成以后,后续还有【FPGA那些事儿-驱动篇II 】、【FPGA那些事儿-工具篇III】、【FPGA那些事儿-体验篇】。
实验四:按键模块③ — 单击与双击 实验三我们创建了“点击”还有“长点击”等有效按键的多功能按键模块。在此,实验四同样也是创建多功能按键模块,不过却有不同的有效按键。实验四的按键功能模块有以下两项有效按键: l 单击(按下有效); l 双击(连续按下两下有效)。
实验三:按键模块② — 点击与长点击 实验二我们学过按键功能模块的基础内容,其中我们知道按键功能模块有如下操作: l 电平变化检测; l 过滤抖动; l 产生有效按键。 实验三我们也会z执行同样的事情,不过却是产生不一样的有效按键: l 按下有效(点击); l 长按下有效(长点击)。
实验二:按键模块① - 消抖 按键消抖实验可谓是经典中的经典,按键消抖实验虽曾在《建模篇》出现过,而且还惹来一堆麻烦。事实上,笔者这是在刁难各位同学,好让对方的惯性思维短路一下,但是惨遭口水攻击 ... 面对它,笔者宛如被甩的男人,对它又爱又恨。
实验一:流水灯模块 对于发展商而言,动土仪式无疑是最重要的任务。为此,流水灯实验作为低级建模II的动土仪式再适合不过了。废话少说,我们还是开始实验吧。 图1.1 实验一建模图。 如图1.1 所示,实验一有名为 led_funcmod的功能模块。
前言: 无数昼夜的来回轮替以后,这本《驱动篇I》终于编辑完毕了,笔者真的感动到连鼻涕也流下来。所谓驱动就是认识硬件,还有前期建模。虽然《驱动篇I》的硬件都是我们熟悉的老友记,例如UART,VGA等,但是《驱动篇I》贵就贵在建模技巧的升华,亦即低级建模II。