玩转FPGA山寨版

看了《玩转FPGA》,写的不错,写写山寨版和大家交流!

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2011年7月1日

摘要: s3c2410提供了5个16位的Timer(Timer0~Timer4),其中Timer0~Timer3支持Pulse Width Modulation—— PWM(脉宽调制 )。Timer4是一个内部定时器(internal timer),PCLK是Timer的信号源,我们通过设置每个Timer相应的Prescaler和Clock Divider把PCLK转换成输入时钟信号传送给各个Timer的逻辑控制单元(Control Logic),事实上每个Timer都有一个称为输入时钟频率(Timer input clock Frequency)的参数,这个频率就是通过PCLK,Prescaler和 阅读全文
posted @ 2011-07-01 08:52 Neddy11 阅读(2121) 评论(0) 推荐(0) 编辑

2011年6月24日

摘要: /**超级块对象有super_block结构体表示,定义在文件linux/fs.h中**/struct super_block { struct list_head s_list; /* 指向超级块链表的指针 */ dev_t s_dev; /* 设备标识符 */ unsigned long s_blocksize; /* 以字节为单位的块大小 */ unsigned long s_old_blocksize; /* 以位为单位的旧的块大小 */ unsigned char s_blocksize_bits; /* 以位为单位的块大小 */ unsigned char s_dirt; /* 修 阅读全文
posted @ 2011-06-24 09:01 Neddy11 阅读(420) 评论(0) 推荐(0) 编辑

摘要: /** 内核中用page结构表示系统中每个物理页,结构位于linux/mm.h*/struct page { page_flags_t flags; atomic_t _count; atomic_t _mapcount; unsigned long private; struct address_space *mapping; pgoff_t index; struct list_head lru; void *virtual;};/** 系统的页被划分为区,每个区用struct zone表示,定义在linux/mmzone.h*/struct zone { spinlock_t lock; 阅读全文
posted @ 2011-06-24 08:59 Neddy11 阅读(348) 评论(0) 推荐(0) 编辑

摘要: /**索引节点对象由inode结构体表示,定义文件在linux/fs.h中*/struct inode { struct hlist_node i_hash; /* 哈希表 */ struct list_head i_list; /* 索引节点链表 */ struct list_head i_dentry; /* 目录项链表 */ unsigned long i_ino; /* 节点号 */ atomic_t i_count; /* 引用记数 */ umode_t i_mode; /* 访问权限控制 */ unsigned int i_nlink; /* 硬链接数 */ uid_t i_uid 阅读全文
posted @ 2011-06-24 08:53 Neddy11 阅读(399) 评论(0) 推荐(0) 编辑

2011年6月14日

摘要: //头文件#include <linux/miscdevice.h>#include <linux/delay.h>#include <asm/irq.h>#include <mach/regs-gpio.h>#include <mach/hardware.h>#include <linux/kernel.h>#include <linux/module.h>#include <linux/init.h>#include <linux/mm.h>#include <linux/fs 阅读全文
posted @ 2011-06-14 17:22 Neddy11 阅读(1122) 评论(0) 推荐(0) 编辑

2011年6月2日

摘要: 阅读全文
posted @ 2011-06-02 19:56 Neddy11 阅读(338) 评论(0) 推荐(0) 编辑

2011年5月14日

摘要: Flash闪存是非易失性存储器,这是相对于SDRAM等存储器所说的。即存储器断电后,内部的数据仍然可以保存。Flash根据技术方式分为Nand 、Nor Flash和AG-AND Flash,而U盘和MP3中最常用的内存就是Nand Flash。 Nand Flash也有几种,根据技术方式,分为SLC、MCL、MirrorBit等三种。SLC是Single level cell的缩写,意为每个存储单元中只有1bit数据。而MLC就是Multi-Level-Cell,意为该技术允许2 bit的数据存储在一个存储单元当中。而MirrorBit则是每个存储单元中只有4bit数据。 SLC的技术存储比 阅读全文
posted @ 2011-05-14 16:51 Neddy11 阅读(810) 评论(0) 推荐(0) 编辑

2011年4月25日

摘要: #include "GUI.h"#include "system.h"#include "io.h"#include "alt_types.h"#include"stdio.h"#include"unistd.h"#include"bitmap.h"#include"graphics.h"#include"string.h"int main(void){ GUI_Init(); int i; while(1) { G 阅读全文
posted @ 2011-04-25 13:37 Neddy11 阅读(1368) 评论(0) 推荐(0) 编辑

摘要: /////////////////////////////////////////////////////////////////////////////////////////////////date.h/////////////////////////////////////////////////////////////////////////////////////////////////#ifndef DATE_H_#define DATE_H_#include "io.h"#include "GUI.h"#include "syst 阅读全文
posted @ 2011-04-25 13:12 Neddy11 阅读(1023) 评论(0) 推荐(0) 编辑

摘要: 自己写图形库不怎么完善,而且功能有限,在NIOS II上移植ucGUI,做界面设计就简单了!当然首先要下载ucGUI源代码,改变TFT LCD设定的参数和读写TFT LCD函数即可。首先我们要把GUI和Config两个文件夹放到NIOS II工程目录中,改变其只读属性,因为我们要修改文件。在NIOS II工程名上点击右键选择Refresh就可以看到GUI和Config了,还是在工程上点击右键选择Properties,添加ucGUI头文件路径,如下图:修改config文件里面的GUIConf.h如下:#ifndef GUICONF_H#define GUICONF_H#define GUI_OS 阅读全文
posted @ 2011-04-25 13:07 Neddy11 阅读(2712) 评论(0) 推荐(0) 编辑

摘要: 下面是我写的简单图形库//////////////////////////////////////////////////////////////////////////////////////////////////graphics.h /////////////////////////////////////////////////////////////////////////////////////////////////#ifndef GRAPHICS_H_#define GRAPHICS_H_#include"IO.h"#include"system. 阅读全文
posted @ 2011-04-25 11:26 Neddy11 阅读(1318) 评论(2) 推荐(0) 编辑

摘要: 首先把显示的图片处理,用PhotoShop或者PaintShop或者office自带的图形工具把图片大小改为320*240,用Image2Lcd提模,设定如下:保存为bitmap.h,打开bitmap将数组为改为image,把bitmap.h放到NIOS II的工程目录下NIOS II C代码:///////////////////////////////////////////////////////////////////////////////////////////////#include"IO.h"#include"system.h"#incl 阅读全文
posted @ 2011-04-25 11:14 Neddy11 阅读(1666) 评论(0) 推荐(1) 编辑

摘要: 一、在SOPC builder里面依次添加如下组件:1、PLL 输入时钟50MHz,输出时钟C1:50MHz,相位0度,更名为sys_clk C2:50MHz,相位-72度,更为DRAM_CLK,给SDRAM使用2、SDRAM 客户类型,数据位16bits3、timer Period:1 s,Preset:Full_featured 做时钟显示用的4、key 为PIO 4bit input,下降沿中断,提供调节时钟5、switch为PIO 2bit input无中断类型,提供调节时钟二、Quartus II工程 阅读全文
posted @ 2011-04-25 10:17 Neddy11 阅读(1364) 评论(1) 推荐(0) 编辑

摘要: 基于NIOS II的液晶显示设计——TFT驱动本设计的液晶使用的是320*240,采用的DE模式,具体的时序见本博客文章《基于TFT LCD320*240 液晶显示 —— 碰碰球》,设计思想为以SRAM为缓存器,FIFO读SRAM的数据在TFT上显示出来,NIOS II对SRAM进行读写从而对TFT控制,框架图如下://////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////1、sync_leve 阅读全文
posted @ 2011-04-25 10:01 Neddy11 阅读(3023) 评论(0) 推荐(0) 编辑

2011年4月10日

摘要: sof in EPCS, program in EPCS Using Altera Nios Dev board, Cyclone II 2C35 , standard example, find out and change the sof path, and epcs base below. # config the fpganios2-configure-sof $SOPC_KIT_NIOS2/examples/verilog/niosII_cycloneII_2c35/standard/standard.sof# change to your uClinux image dircd ~ 阅读全文
posted @ 2011-04-10 12:04 Neddy11 阅读(1397) 评论(0) 推荐(0) 编辑

2011年4月9日

摘要: Hardware requirements You should start with a minimal system with only, Nios II f or s core, with hardware multiplier, (f-core suggested, s-core is slower). sdram (minimum requirement 8MB), one full featured timer, a jtag/serial uart Note in Linux, irq 0 means auto-detected, so you must not use irq 阅读全文
posted @ 2011-04-09 22:40 Neddy11 阅读(979) 评论(0) 推荐(0) 编辑

2011年4月2日

摘要: 工作中接触到linux,也慢慢的习惯了linux,下面怎么安装QQ的方法,很简单!首先去QQ官方网站下载Linux QQhttp://dl_dir.qq.com/linuxqq/linuxqq-v1.0.2-beta1.i386.rpm我们可以直接在终端中输入[root@localhost ~]# wget http://dl_dir.qq.com/linuxqq/linuxqq-v1.0.2-beta1.i386.rpm[root@localhost ~]# rpm -U linuxqq-v1.0.2-beta1.i386.rpm如果卸载就输入rpm -e linuxqq-v1.0.2-be 阅读全文
posted @ 2011-04-02 10:19 Neddy11 阅读(635) 评论(0) 推荐(0) 编辑

2011年3月28日

摘要: 忙了几天终于搞定了RGB和HSI的转化:************************************************R [0,255],G [0,255],B [0,255]H [0,359],S [0,255],I [0,255]************************************************function hsi=rgb2hsi(rgb)r=rgb(:,1);g=rgb(:,2);b=rgb(:,3);num=0.5*((r-g)+(r-b));den=sqrt((r-g).^2+(r-b).*(g-b));theta=acos(num 阅读全文
posted @ 2011-03-28 11:29 Neddy11 阅读(6795) 评论(0) 推荐(0) 编辑

2011年3月15日

摘要: 输入:singal、clk、_clr、8bit count输出:dout当_clr low 时 dout 输出 为low当_clr hi 时 clk 升沿采样,连续count 个singal 为hi 时dout输出为hi 否则 dout 输出为low代码1:LIBRARY ieee;USE ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;-- Entity DeclarationENTITY countup1 ISPORT(singal,clk,n_rst: IN STD_LOGIC;countset : IN STD_LOGIC 阅读全文
posted @ 2011-03-15 10:30 Neddy11 阅读(808) 评论(0) 推荐(0) 编辑

2011年3月13日

摘要: 台式机里面安装CentOS Linux系统,但显示器是纯平的,时间看长了眼睛受不了。现在我想到一种方法远程控制我的台式机,用本本控制CentOS:首先下载putty软件实现ssh,http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html这个软件是绿色的,不用安装的Host Name里面输入linux主机的IP地址,我的CentOS IP为192.168.0.101Connection type选着SSHSaved Session是你给linux设置保存的名字点击Openlogin as:输入你的linux用户名,回车再输入密 阅读全文
posted @ 2011-03-13 18:05 Neddy11 阅读(3111) 评论(0) 推荐(0) 编辑

2011年3月7日

摘要: 本本安装虚拟机再跑linux,电脑好慢,只好300元钱买了二手台式机,想安装双系统winxp+centos,下面百度到安装方法:RHEL5.2已经出来了,意味着CentOS也应该出来了,google了一下,下载之,这里给出一个官方的网址:http://isoredirect.centos.org/centos/5/isos/i386/34分钟搞定,1.86M/s的速度,于是硬盘安装了一回,写下心得:第一步:如果已经安装了linux就有grub,启动的时候按下c健跳到第3步骤;第二步:如果没有安装grub,可以到网上下载,这里我给出一个链接,我用的时候还是可以的:http://download. 阅读全文
posted @ 2011-03-07 20:51 Neddy11 阅读(456) 评论(0) 推荐(0) 编辑

2011年3月3日

摘要: 时间:2009-07-31 来源: 作者: 点击:1216 字体大小:【大 中 小】 前言:最近在论坛上有一些朋友提出我上传的”nios2架构uclinux(nios2-linux-20080619开发包)的过程”是英文版的不好读.碰巧我最近整理资料就把架构过程重新整理了一篇.便于朋友参考. 对于英语阅读能力比较好的朋友建议参考我整理的英文版.内容比较详细.由于作者水平有限,在整理过程中难免会出现一些错误,望朋友们批评并指正.转贴的朋友请注明出处http://blog.ednchina.com/chong_lang/ (本博客正在完善中欢迎交流学习)开发环境:在vmware 中安装centos 阅读全文
posted @ 2011-03-03 22:23 Neddy11 阅读(1216) 评论(0) 推荐(0) 编辑

2011年3月2日

摘要: tar [-cxtzjvfpPN] 文件与目录 .... 参数: -c :建立一个压缩文件的参数指令(create 的意思); -x :解开一个压缩文件的参数指令! -t :查看 tarfile 里面的文件! 特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!因为不可能同时压缩与解压缩。 -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩? -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩? -v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程! -f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!例如 阅读全文
posted @ 2011-03-02 10:25 Neddy11 阅读(843) 评论(0) 推荐(0) 编辑

2011年3月1日

摘要: 一、Linux的变量种类 按变量的生存周期来划分,Linux变量可分为两类: 1、永久的:需要修改配置文件,变量永久生效。 2、临时的:使用export命令声明即可,变量在关闭shell时失效。二、设置变量的三种方法 1、在/etc/profile文件中添加变量【对所有用户生效(永久的)】 用VI在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永久的”。 例如:编辑/etc/profile文件,添加CLASSPATH变量 # vi /etc/profile export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre 阅读全文
posted @ 2011-03-01 14:58 Neddy11 阅读(47103) 评论(0) 推荐(1) 编辑

2011年2月28日

摘要: 在安装NIOS2-LINUX中必须要安装git,可按照Altera WiKi提供的方法根本装不上(输入命令:yum install git-all git-gui make gcc ncurses-devel bison byacc flex gawk gettext ccache zlib-devel gtk2-devel lzo-devel pax-utilslibglade2-devel),只能下载后安装://先安装git依赖的包 yum install zlib-devel yum install openssl-devel yum install perl yum install c 阅读全文
posted @ 2011-02-28 23:34 Neddy11 阅读(23225) 评论(2) 推荐(0) 编辑

2011年2月26日

摘要: 作者:某人(摘自网络,不知道作者) 我常年担任多个有关FPGA学习研讨的QQ群管理员,长期以来很多新入群的菜鸟们总是在重复的问一些非常简单但是又让新手困惑不解的问题。作为管理员经常要给这些菜鸟们普及基础知识,但是非常不幸的是很多菜鸟怀着一种浮躁的心态来学习FPGA,总是急于求成。再加上国内大量有关FPGA的垃圾教材的误导,所以很多菜鸟始终无法入门。为什么大量的人会觉得FPGA难学?作为著名FPGA提供商Altera授权的金牌培训师,本管理员决心开贴来详细讲一下菜鸟觉得FPGA难学的几大原因。 1、不熟悉FPGA的内部结构,不了解可编程逻辑器件的基本原理。FPGA为什么是可以编程的?恐怕很多菜鸟 阅读全文
posted @ 2011-02-26 23:02 Neddy11 阅读(1000) 评论(0) 推荐(0) 编辑

2011年2月24日

摘要: 1. 安装EvolutionEvolution是一个整合了邮件,日历,计划任务,地址本功能的套件。以root身份运行apt-get install evolution就可以安装上Evolution了。 2. 设置Email账号从任务栏的Application(程序)菜单中选择运行Evolution,然后从Evolution的Edit(编辑)菜单中选择Preferences(首选项)打开Evolution Settings设置窗口。点击的Mail Accounts,再点击Add按钮启动Evolution Account Assistant添加账号。 点击Forward进入Identity设置。在 阅读全文
posted @ 2011-02-24 07:48 Neddy11 阅读(660) 评论(0) 推荐(0) 编辑

摘要: 摘要: 在FPGA上移植最新版本的uClinux,本实验主要是在DE2上进行。 历经一个多月的时间,终于在FPGA上移植了uClinux,从开学到现在,从找中文博客(无双学长的博客),由于版本的问题,加上uClinux更新的比较快,编译内核又是一个比较复杂的问题。最终还是,寻找wiki里面寻求最新的内核,最新的编译工具,最终终于找到问题的解决办法啦!不多说,开始我们的移植工作吧!如果有不明白的,可以直接看wiki里的英文步骤。 DE2上安装uClinux有几种方法,这里,我用的是一台PC,使用Windows操作系统,並在VMWare安裝Linux。从VMware上安装Ubuntu的步骤在这里就 阅读全文
posted @ 2011-02-24 06:09 Neddy11 阅读(1536) 评论(7) 推荐(1) 编辑

2011年2月21日

摘要: 在NIOS II用命令来下载程序比GUI快很多,在GUI下载程序NIOS II还要重新编译,要等好几分钟。我们可以直接敲入命令,下载快得多,玩过Linux的人一看就懂了。在NIOS II工程名上点击右键,选中NIOS II / NIOS IICommand Shell进入命令系统,和Linux一样的用我们可以看到类似Linux的命令终端我们输入Linux命令pwd,看看现在的路径在哪里可以看到我们的现在位于工程文件夹DE2_VGA_Both_Buffer里面software/first中,再输入ls,看看里面有几个文件一、测试JTAG是否连接好,输入jtagconfig -n显示USB-Bla 阅读全文
posted @ 2011-02-21 07:42 Neddy11 阅读(3313) 评论(1) 推荐(1) 编辑

2011年2月20日

摘要: 好消息,DE2又出新的IP了,支持Quartus II 9.0、9.1、10.0和10.1大家可以Altera的官方网站下载,也可以和我联系,传给你一份QQ:287687752下面是IP里面的一个实例,在<Quartus II安装目录>\University_Program\IP_Core_Demos\DE2\DE2_Video_SOPC_Builder_Demos中的DE2_VGA_Both_Buffers文件中工程环境:Quartus II 10.1sp1 + NIOS II 10.1sp1 + DE2打开上述文件的工程,我们直接进入SOPC Builder配置如下:顶层工程文 阅读全文
posted @ 2011-02-20 20:48 Neddy11 阅读(4247) 评论(6) 推荐(0) 编辑