博文
flash闪存知识(2008-04-19 19:57:00)
摘要:
用的是21control的niosII开发板,经过3天的苦苦学习,终于跑上一个系统了,其中很多错误都在网上找资料具体地一个一个弄明白了,其中有几个关键文档是必读的,一个是software handbook,还有一个是hardware handbook,千万不要害怕英语难读,目前大多关于这方面的教材大多都是翻译这些东西。把其中的所有过程弄得还算是比较清楚的,感觉很爽。虽然altera这种开发环境隐藏了很多具体实现的细节,(特别是硬 件部分),但我本人认为细细地去研究一下还是很有必要的,因为有不研究清楚你就无法解释和理解一些错误怎么出来的。这种以IP核为主要硬件开发的思路很好,只要你开发出一个,似乎有点一劳永逸的感觉。我得继续努力,原计划在两个月内一定要把uclinux移植上去的,不过想回来,这东西不能急,得弄添清楚细节,一步一个脚印地走下去。继续努力,给自己打打气。
今天想把sdram与flash弄清楚,他们的时序正如网上一些朋友说的,有点像天书时序,但也得看看,对于flash的资料,基本没有中文的,看起来虽然不算太费劲,但是有些专业词汇还是不能理解透彻,下面这位朋友这些东西写得还 不错,大致了解下flash到底是个什么东西,对我们还是有好处的
另外这也有一文章,知识较好,给出地址
http://blog.21ic.com/user1/2437/archives/2007/44237.html
NOR和NAND是现在市场上两种主要的非易失闪存技术。Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面。紧接着,1989年,东芝公司发表了NAND flash结构,强调降低每比特的成本,更高的性能,并且象磁盘一样可以通过接口轻松升级。但是经过了十多年之后,仍然有相当多的硬件工程师分不清NOR和NAND闪存。
相“flash存储器”经常可以与相“NOR存储器”互换使用。许多业内人士也搞不清楚NAND闪存技术相对于NOR技术的优越之处,因为大多数情况下闪存只是用来存储少......
NiosII 中导入工程提示:invalid project descripti(2008-04-16 14:13:00)
摘要:Eclipse中导入工程提示:invalid project description[转载]
2006年11月07日 星期二 08:58
Today, when I imported an existing project into eclipse's workspace, I got the following error:
Invalid project description.
D:/eclipse/workspace/report and D:/eclipse/workspace overlap
In the beginning, my project was located in D:/report instead of the workspace directory of eclipse, and its name was test. It worked well then. After googling on the internet, I found the root cause of the problem.
There are two kinds of places where projects can be located:
1) In the "default" location. This means that the project directory is a direct child directory of the workspace directory (aka the platform instance location), and the project directory name matches the project name.
2) Outside the default location, in a directory that is neither a parent or child of the platform instance location. In this case the directory name does not need to match the project name.
As you can see, my project belongs to the......
NIOS II 常见问题总结(2008-04-12 12:04:00)
摘要:
一开始在开发板实验就遇到问题了,找到了一些比较好的解答,贴出来工共享,不知是哪位网友总结出来的,在此只能说一声谢谢!
1. 怎样在TCL脚本分配管脚 source <pin_assign>.tcl 有点问题:
# source stratix_pin_assign.tcl
couldn't read file "stratix_pin_assign.tcl": no such file or directory
答: From the Tools menu select Tcl Scripts, and then from the project folder choose the setup script for your particular development board, and click Run.
2.D:\TEST\nios_sst60下载时出现错误:
Error: Can't configure device. Expected JTAG ID code 0x020010DD for device 1, but found JTAG ID code 0x020B40DD.
答:SOPC所选器件和开发板上的不一致。
3.在NOIS II中Bulid例程hello_world都出现了错误,错误提示为:
gdrive/c/altera/kits/nios2/components/altera_nios2/HAL/src/alt_busy_sleep.c:68: error: parse error before '/' token等错误全部由alt_busy_sleep.c引起,都是关于括号不匹配的问题,而alt_busy_sleep.c是IDE中的一个默认程序。这个错误同样出现在D:\TEST\DE2Project\software\nios2 ,培训用的一个简单实验。
答:找到system.h文件,里面有个关于系统时钟频率的设置项,应该是没有赋值,你手动赋值。比如你用50MHZ的时钟,就设成50000000
如果总是出现上述问题,可能和软件有关系,建议重新安装软件。注意quartus和NIOS安装版本一定要相同,不能混装。<......
SDRAM的结构、时序与性能(2008-04-10 20:44:00)
摘要:由于nios ii应用系统中涉及到sdram应用,将其详细内容贴到如下:
http://www.pcdog.com/a/29/10/f230509.html
http://www.pcdog.com/a/29/10/f230510.html
这是网上分析得比较透的一个说明......
Altera FPGA开发软件安装指南(2008-04-10 15:57:00)
摘要:个人接触EDA东西将近有半年了,以前主要是在老师的课堂上学习一点东西,自认为这种技术的发展给人的思想带来的更大的自由,最近两周开始在研究Nios II,看了两周的理论,买的21Control工作室的开发板也到了,前段时间对整个环境的建立,(对我而言,主要是NIOS IDE 与DSPBUILDER的安装),其中有些license不太好用,在网上苦寻的时候发现了这位朋友的这个文档,很好,基本上写得很全面,因些在这贴出来供刚开始学习的朋友入门.
关于这些软件的下载大家可以上21control工作室,也可以去欣欣工作室,当然也可以去申请网络版,由于一些图片传不上来,这里的文件只是一些文字,关于license大家可以去网上找,确实有困难的可以联系我,^^不过我这只有6.0版本的,我的邮箱是yanys113@163.com
Altera FPGA开发软件安装指南
安装顺序请参照下面软件的介绍顺序。本文的顺序是参照Altera Complete Design Suite中的软件的安装顺序介绍的。
一、 MATLAB(要求R14或以后版本)
1. 注意:请将MATLAB安装在英文路径下。如安装路径,或项目路径包含中文,则运行DSP Builder时可能会出现错误。解决方法是在项目中将路径改为英文的路径。
2. 如果不使用DSP Builder,则MATLAB不需要安装。
二、 Quartus II 6. 0(6. 1)
3. 执行install.exe,在Quartus II Install CD页面(图1),执行第一项Install Quartus II and Related Software,安装Quartus II。
图1 Quartus II Install CD页面
4. 软件安装过程同其他软件没有区别,只是在第二步时有一个Choose the Software窗口(图2),选择要安装的软件组件。
如果直接使用安装程序setup.exe,将不会出现这个选择。
......
vhdl实现的多循环方式彩灯(2007-11-20 15:29:00)
摘要:------the top file of cyc_led design
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
entity cyc_led is
port(contr : in std_logic_vector(1 downto 0);
clk : in std_logic;
light : out std_logic_vector(7 downto 0));
end entity cyc_led;
architecture cyc_light of cyc_led is
component mode1 is---mode1
port(clk1 : in std_logic;
light1 : out std_logic_vector(7 downto 0));
end component;
component mode2 is---mode2
port(clk2 : in std_logic;
light2 : out std_logic_vector(7 downto 0));
end component;
component mode3 is ---mode3
port(clk3 : in std_logic;
light3 : out std_logic_vector(7 downto 0));
end component;
component mode4 is ---mode4
port(clk4 : in std_logic;
......
VHDL的任意整数且占空比为50%分频代码(2007-11-19 17:35:00)
摘要:说明如下:
1.其中top file 为 division,其中的clk_com是比较的频率,用它来和分频后波形进行比较,便于观察,
2.any_enve为任意偶数分频文件
3.any_odd为任意奇数分频文件
4.是一个用于2进制与8进制的译码器,我用它来显示在数码管上当前到底是多少分频
5.以下代码在开发板上实验过,请大家放心使用,欢迎转载,但请注明出处,另外说明由于用的是quartus7.1编辑的,中间无法加中文注释,请大家慢慢读了;以下是代码:
------the top file of the design division
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity division is
port (input : in std_logic_vector(7 downto 0);
clk : in std_logic;
clk_out : out std_logic;
clk_com : out std_logic;
led1: out std_logic_vector(6 downto 0);
led2: out std_logic_vector(6 downto 0);
led3: out std_logic_vector(6 downto 0));
end entity division;
--------------------------------------------------
architecture freq of division is
component decoder is----decoder
port(bin : in std_logic_vector(2 downto 0);
de : out st......
vhdl实现的8位可逆计数器(2007-11-01 19:55:00)
摘要:能实现连续脉冲还手动脉冲计数,在实验板上实验过~!
程序很简单,相应的注释就没加了,
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity counter is
port(rst,clk,clk1: in std_logic;
con : std_logic_vector(1 downto 0);
output : out std_logic_vector(7 downto 0));
end entity counter;
architecture behave of counter is
begin
process(rst,con,clk,clk1)
variable temp1 : std_logic_vector(7 downto 0);
begin
if rst = '1' then temp1 := (others => '0');
else
case con is
when "10" =>--手动顺记数
if clk'event and (clk='1') and (clk'last_value='0') then
if temp1 < 255 then temp1 := temp1 + 1;
else temp1 := (others => '0');
......
第一个实验-8路开关控制8个灯(2007-10-26 20:22:00)
摘要:library ieee;
use ieee.std_logic_1164.all;
entity switch_led is
port(key : in std_logic_vector(7 downto 0);
light : out std_logic_vector(7 downto 0));
end entity switch_led;
architecture behav of switch_led is
begin
process(key)
begin
for i in 7 downto 0 loop
light(i) <= key(i);--the led is lighting when the votage is high;
end loop;
end process;
end architecture behav;......
38译码器的几种描述方法(2007-10-26 20:21:00)
摘要:library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity decoder38 is
port (Q0: out std_logic_vector(7 downto 0);
Q1: in std_logic_vector(2 downto 0);
en: in std_logic);
end entity decoder38;
-----the num.1 method to descript
architecture code1 of decoder38 is
begin
process(Q1,en)
variable temp : std_logic_vector(7 downto 0);
begin
if en = '1' then temp := "ZZZZZZZZ";---"en" is effective on low voltage;
else
case Q1 is
when "000" => temp := "00000001";
when "001" => temp := "00000010";
when "010" => temp := "00000100";
when "011" => temp := "00001000";
when "100" => temp := "00010000";
when "101" =>......