bo's profileDuuboo's Work StudioPhotosBlogLists Tools Help

Duuboo's Work Studio

Waitting for tomorrow

bo du

Occupation
There are no photo albums.

NiosII软处理器快速入门- 10分钟学会NiosII

Nios简单介绍:

Nios II是一个用户可配置的通用RISC嵌入式处理器。在这儿,我引用了Altera公司关于NiosII的官方介绍:

Altera推出的Nios® II系列嵌入式处理器扩展了目前世界上最流行的软核嵌入式处理器的性能,并降低了其性能。
把Nios II嵌入到Altera的Stratix® II、Stratix、Cyclone™和HardCopy®系列器件中,用户可以获得超过200 DMIPS的性能,而只需花费不到35美分的逻辑的资源。用户可以从三种处理器以及超过60个的IP核中选择所需要的,Nios II系统为用户提供了最基本的多功能性,设计师可以以此来创建一个最适合他们需求的嵌入式系统。
Nios II处理器的优点和特性

使用Nios II处理器的用户可以根据他们的需要来调整嵌入式系统的特性、性能以及成本,快速使得产品推向市场,扩展产品的生命周期,并且避免处理器的更新换代。

提高系统性能

* 一系列的处理器核可供选择,其中包括了超过200 DMIPS性能的核
* 实现任何数量的处理器或将不同的处理器核组和在一起
* 增加了已有的处理器,在FPGA中添加一个或更多的Nios II软核处理器

更低的系统成本

* 通过将处理器、外设、存储器和I/O接口集成到一个单一的FPGA中,从而降低了系统成本、复杂性和功耗
* 通过将Nios II处理器嵌入到低成本的FPGA中只需花费35美分或者更低

应对产品的生命周期

* 提供易用的设计工具从而快速将产品推向市场。
* 提供永久的,免费的许可从而使基于Nios II处理器的产品避免了处理器的更新换代而带来的损失。

功能强大、易用的开发工具

* 通过使用Nios II集成开发环境(IDE),从而加速了软件的开发
* 利用Altera的强大的SOPC Builder系统开发工具和Quartus® II设计软件可以在几分钟内设计一个系统

使用完全功能的开发包

* 使用易用的Nios II 开发包开始一个设计
* 使用易用的Nios II开发包开始设计
* 可以选择具有低成本特性的Cyclone FPGA开发套件,或高性能的Stratix FPGA开发套件

稍微了解一下NiosII后,我们就来开始设计、应用它吧!

第一节:EDA软件的安装。

许多朋友在配置EDA环境的时候,就遇到了更多问题,我现在总结一下:

1。安装QuartusII4.2

2。安装niosIDE

3。安装ModelSim6.0。

如下是ModelSim下的安装说明:

1.Install, Select Full product instllation. When asked for security key, select no. When you
see License Wizard dialog, select close because license wizard dont know our license's format.
2.Use our keygen to generate license.dat, copy it to c:\flexlm directory.
3.set enviroment string: LM_LICENSE_FILE = c:\flexlm\license.dat
4.Start Modelsim and have fun.

仍有许多人表示搞不定,通常是因为第三步有问题,可以如下设置:

在W2K下,在开始 -〉系统 -〉设置 -〉 系统 -〉 高级 -〉 环境变量 -〉系统变量中设置
变量名为 LM_LICENSE_FILE ,值为 你的存放license.dat的路径 + 文件名,比如 c:\flexlm\license.dat,
(在unix/linux下,在.bashrc中export LM_LICENSE_FILE=/thePathOfLicenseFile/yourLicenseFileName就可以了!)
顺便说一下,Mentor公司的soft似乎都可以用这个license破解,包含Calibre等等

第二节:建立niosII系统。

第一小节:建立项目

建立一个目录,比如H:\DB2005\project\niosDK\Example\NiosSmall-〉启动QuartusII4.2软件。-〉选择File -> New Project Wizard-〉在Diectory,Name,Top-Level Entity中如下填写,在你自己的项目中,你可以类比着填写:

在Add Files中如下填写,在你自己的项目中,你可以类比着填写:

在EDA Tools Setting中如下填写,在你自己的项目中,你可以类比着填写:

最后,选择Finish,就OK了!

在H:\DB2005\project\niosDK\Example\NiosSmall下建立一个name为Setup.tcl的file,其内容如下:

#Setup.tcl
# Setup pin setting
set_global_assignment -name RESERVE_ALL_UNUSED_PINS "AS OUTPUT DRIVING GROUND"
set_global_assignment -name ENABLE_INIT_DONE_OUTPUT OFF
set_location_assignment PIN_16 -to clk
set_location_assignment PIN_37 -to led\[0\]
set_location_assignment PIN_39 -to led\[1\]
set_location_assignment PIN_1 -to led\[2\]
set_location_assignment PIN_41 -to led\[3\]
set_location_assignment PIN_42 -to led\[4\]
set_location_assignment PIN_49 -to led\[5\]
set_location_assignment PIN_50 -to led\[6\]
set_location_assignment PIN_51 -to led\[7\] 很浅显的Script,你可以根据需要修改

然后打开Tools -> Tcl Scripts,选中刚才编辑的Script文件:Setup,并点击Run

在H:\DB2005\project\niosDK\Example\NiosSmall下建立一个name为Setup.tcl的file,其内容如下:

#Setup.tcl
# Setup pin setting
set_global_assignment -name RESERVE_ALL_UNUSED_PINS "AS OUTPUT DRIVING GROUND"
set_global_assignment -name ENABLE_INIT_DONE_OUTPUT OFF
set_location_assignment PIN_16 -to clk
set_location_assignment PIN_37 -to led\[0\]
set_location_assignment PIN_39 -to led\[1\]
set_location_assignment PIN_1 -to led\[2\]
set_location_assignment PIN_41 -to led\[3\]
set_location_assignment PIN_42 -to led\[4\]
set_location_assignment PIN_49 -to led\[5\]
set_location_assignment PIN_50 -to led\[6\]
set_location_assignment PIN_51 -to led\[7\] 很浅显的Script,你可以根据需要修改。  

然后打开Tools -> Tcl Scripts,选中刚才编辑的Script文件:Setup,并点击Run

 

第二小节:生成一个可调试的nios 最小系统

选择 Tools -> SopcBuilder,启动Altera SOPC Builder启动Altera SOPC Builder后,SOPC Builder会立刻弹出对话框填入System Name,比如niosII_e;HDL Language ,比如选择verilog,如下图:

选择Board Target ,比如,我选择Unspecified Board;选择Target Device Family,比如,我选择Cyclone;填入Clock,比如,我填入22.1184如下图:

添加Nios II到项目中:双击Nios II Processor -Altera Corporation,会弹出Altera niosII 对话框, 在NiosII core配置选项中,点击Nios II/e区域,选择Nios II/e,如下图。然后Next,进入下一步。

在JTAG Debug Module配置选项中,选择Level 1,如下图。然后Next,进入下一步。

 

 在Custom Instructions配置选项中,我由于无需增加任何定制指令,所以为空,如下图

  

最后选择Finish,你的项目中会增加一个niosII 处理器,名字为cpu_0,为了简便起见,我没有将它改名。你可以依照你自己的喜好,为该处理器取个名字。如下图:

  

然后双击On-Chip Memory(RAM or ROM),(在Avalon Modules -> Memory -> 下),为系统添加RAM.Memory Type选择RAM;Data Width选择32bits,Total Memory Size 可以选择2K bytes,然后选择Finish确认

 

如下图,系统中会添加name 为onchip_memory_0的ram,为了简便起见,我没有将它改名。你可以依照你自己的喜好,为其取个名字。

 

 之后,双击PIO(在Parallel I/O)(在Avalon Modules -> Other 下),为系统添加输出接口。Width 选择8 bits,然后点击Finish如下图

 

如下图,系统中会添加name 为pio_0的PIO,为了简便起见,我没有将它改名。你可以依照你自己的喜好,为其取个名字。


 

 然后,选择System ->Auto-Assign Base Addresses,让系统自动分配基地址。如下图:

  

然后,选择Sysetm->Auto-Assign IRQs,让系统自动分配中断。如下图

  

点击Nios II More "cpu_0" settings选项卡,进行处理器设定。在该例中,无需做任何更改;Reset Address、Exceptiong Address、Break Location默认值如下图所示

 

点击System Generation选项卡,进行最后的设定并生成系统。选中HDL.Generate system module logic inVerilog,如果需要仿真,也请选中Simulation.Create ModelSim(tm) project files然后点击Generate,进行系统生成的任务。如下图:

 

 然后,就是漫长的等待,你可以悠闲得喝一杯咖啡(因为等待的时间还是蛮长的,比如我,要等近10分钟)。一般没有问题的话,可以看到系统提示:SUCCESS: SYSTEM GENERATION COMPLETED.如果看到此信息,恭喜恭喜,系统被正确生成了。如果失败,请返回并检查、修改!如下图: 

 第三小节:在QuartusII中使用上述niosII系统在SOPC Builder正确运行完毕后,可以在QuartusII中,打开SOPC Builder生成的niosII_e.bsf,检查一下引脚,看看跟你的设想是否有误,如下图,niosII_e有两个input:clk,reset_n,一组output:out_port_from_the_piop[7:0]如下图:  

你可以使用上述的niosII_e,来构造你自己的系统。如下图,我简单得创建了nisoSmall.bdf,来使用该niosII_e。nios clk to clkniso reset_n to VCCout_port_from_the_pio_0[7:0] to LED[7:0]

  

第三节:编写程序。

在Alter SOPC Builder中,点击Run Nios II IDE,启动Nios II IDE,如下图:

  

在Nios II IDE中,选择File -> New -> Project,开启New Project 对话框选择 C/C++ Application,如下图。然后选择Next,进入下一步。

 

 填写你自己的Project Name,比如我填写hello_led_1;在Select Project Template中,我选择Hello LED(因为存放程序的sram只有2kbytes,所以许多Template不可用),如下图。然后选择Next,进入下一步。

 

选择Create a new system library named:,最后点击Finish,创建项目。如下图:

  

打开项目中的文件:hello_led.c,进行适当的修改。比如,我将PIO的基地址修改为PIO_0_BASE;while(i<200000)修改为while(i<20000).你可以依照你的需求修改!

   

然后选择Project->Build All(Ctrl+B),编译整个项目。如果无误,可以看到以下信息:Build completed.如果看到了该条提示,恭喜恭喜,距离成功只有一步之遥了!

 

 第四节:编译整个项目。

然后,在QuartusII中,选择Processing -> Star Compilation,开始编译整个项目。你又可以坐下来喝杯咖啡了,反正我是等了又十来分钟。成功后,可以看到如下信息:如果到了这一步,赫赫,基本上大功告成了!

 

 第五节:下载与测试。

最后,选择Tools ->Programmer,下载整个配置到FPGA中,如下图。

 

下载成功后,可以看到LED的有规律的变化。(物理硬件中,我只用了一个LED,观察到LED是常亮,有规律得熄灭,因为我的LED是低电平才发光,与设计完全吻合!)OK,做到这一步,就大功告成了! 

tiddly的一些东东

转:

最近接了个比较有挑战性的任务--写帮助文档...@_@。由于需要收集资料,第一时间就想到了Tiddlywiki。以前用Tiddlywiki的时候只是当个好玩的记事本来用,这几天脑力过剩,工作之余就摆弄下插件,改改样式,看看代码,倒也不亦乐乎。越来越发觉Tiddlywiki的确是个好东东,如果让我早几年发现,也许我会早点开始重视javascript,不会象如今这样看着一些ajax的应用兴叹:原来javascript还可以做成这样的……。

关于Tiddlywiki的基本知识就不多费唇舌了,有兴趣可以去 http://jiangzhanyong.com/tiddlywiki.html 看看介绍(注意:如果你用的是IE6,进入网站后要立刻打开右边栏的"偏好设置",把"使用动画显示"取消掉。否则就等着看一秒8格的幻灯片吧......)。用一句简单的话来说,Tiddlywiki就是一个完全用html+javascript+css编写的带有wiki特性的记事本。它把程序逻辑和内容数据都放在一个html文件中,因此只要把这个html文件email或者放到USB盘里,找台有浏览器的电脑就可以继续干活了。心血来潮的话把文件往WEB服务器上一放,别人就可以通过http访问了。

当然,这造成了一个问题:文件会越来越大。好在一个空的Tiddlywiki本身并不大,200来K左右,我曾经把一个Tiddlywiki文件填到2M左右,在本地打开倒也没发现什么问题(放在网上,客户端就要先把这2M的文件的html文件下载下来才能打开)。Tiddlywiki提供了从另一个Tiddlywiki文件中导入条目的功能,因此如果文件的确太大,要分成多个Tiddlywiki文件也很方便,只是分离之后交叉引用就不方便了。

Tiddlywiki的另一个优点是网上有不少免费插件,通过合理利用这些插件,可以令Tiddlywiki实现许多有趣的功能。但是同样,安装插件也会令文件体积增大(通常这是Tiddlywiki文件过大的主要原因),所以要根据需要合理选择。我现在一般是一个项目用两个专门的Tiddlywiki文件,一个是日常记事和时间计划,另一个是知识库,根据项目的需要装必要的插件。许多刚开始用Tiddlywiki的朋友往往不知道怎样安装插件,其实很简单:插件其实就是一个wiki条目。网上的插件一般都也是放在一个Tiddlywiki文件中的,你把关于这个插件的条目打开编辑,源代码就在里面了。在自己的Tiddlywiki里新建一条条目,把代码copy过来,取同样的标题和分类名(分类中必须有systemConfig)。保存后刷新页面,插件就起作用了。当然,还有个更方便的做法是把包含插件的tiddlywiki文件整个下载回来,然后在自己的tiddlywiki中使用"导入条目"功能把插件成批导入。

Tiddlywiki有个最大的问题是在IE6中表现一般。它默认打开的条目动画效果在IE6中会变得非常慢,一定要关掉。而且安装了某些插件后可能会出现在IE下保存出错,通常是文件头部分编码出错导致CSS布局混乱,如果出现这种情况又没有备份,只要用一个好的Tiddlywiki把文件前几行copy过来就行了。如果还不行,也不用担心会掉失有用信息,找一个空的Tiddlywiki把坏文件里面的信息条目都导进去就可以了。当然,防范胜于治疗,如果以IE6为主要浏览器时,安装新插件前一定要先备份,安装完后保存刷新页面后立刻再保存一次并刷新(第一次启动插件,第二次测试),确认没有问题再输入有用信息。以上说的情况,在Firefox里就不会出现。顺带一提,Firefox有个tiddlysnip免费扩展可以很方便的把网页的内容添加到tiddlywiki中,挺好用。

以上是简单用法介绍,这里谈谈这几天摆弄Tiddlywiki的一些心得,

一、应用

1. 活动桌面

个人觉得这是Tiddlywiki一个最另类但实用的功能:将它设置为windows的活动桌面。现在你的桌面图标就可以全部扔进回收站了。Tiddlywiki支持用file:///链接本地文件或目录,而活动桌面是IE内核……你该明白我说什么了吧。你可以通过Tiddlywiki活动桌面打开chm, pdf, html, txt, doc等等文件,能直接运行exe和cmd文件,还能直接打开目录,基本上可以满足日常需要了。你可以很方便通过Tiddlywiki的内容组织能力去组织这些"快捷方式",例如用">"标签建立Treeview结构,或者在说明文字中放一个"点这里运行"的链接。别忘了Tiddlywiki本身是个记事本,现在你不用满世界找notepad的图标或者安装桌面便贴软件,直接在桌面上点"新建条目"就可以了。这个方案的缺点有:

a.无法直接打开lnk快捷方式。有些应用程序需要通过lnk快捷方式打开,例如需要设置启动目录位置或者运行参数的应用程序。由于IE不认识lnk文件,如果在tiddlywiki中直接连接的话,它会先下载再打开,期间弹出两次对话框,很麻烦。解决的方法是:1. 做个同样效果的cmd文件;2. 把lnk放到快速启动栏;3.把lnk文件集中到一个目录中,然后在Tiddlywiki的醒目位置放一条打开这个目录的连接。第3点适用于所有IE不认识的文件,当然,你也可以直接把目录甚至快捷方式放在桌面上。

b. 由于活动桌面其实就是IE,上面提到在IE6中的问题都会遇到。所以一定要关掉动画效果,装插件时必须小心。有些样式风格和插件用来做桌面很不错,但由于与IE6冲突也只好忍痛割爱了。据说IE7有所改善,但我没有试过。

c. 有时某些操作会引起桌面自动刷新,这时如果tiddlywiki活动桌面中有尚未保存的数据,就会丢失。(系统会有对话框提示,但这时候无论选确定还是取消,信息都无法保存了)好在这种情况并不常见,我这几天平均每天在电脑前15小时以上,一天也就刷新了3、4次,只需要及时存盘基本上问题不大。也可以考虑打开自动保存选项,此选项保证确认修改一个条目都自动存盘,同时应关闭保存备份选项。

对于活动桌面,我总觉得装太多插件会影响系统性能,因此只装了一些必要的,大概有:
a. CalendarPlugin, CalendarPluginConfig, DatePlugin, DatePluginConfig:这四个插件一起可以为tiddlywiki添加一个类似blog的月历。高亮显示今天和有修改记录的日期,点击日期可以打开下拉菜单查看修改的条目
b. ToggleSideBarMacro: 这个插件可以添加一个按钮打开或隐藏右边工具栏
c. SinglePageModePlugin: 这个插件增加三个配置选项,可以定制同时只会显示一条条目(打开新条目将关闭其他旧条目),或者新条目总在最顶打开,或总在最底打开。因为我不太喜欢在活动桌面里拉滚动条,因此这个插件在这种时候非常有用。
d. BreadCrumbsPlugin: 显示打开条目的历史,javascript富客户端的通病之一就是无法返回前一页面,当使用SinglePageModePlugin时这个缺点就特别突出。这个插件让你可以在点历史路径上的条目名来返回前面的页面

2. GTD计划表

据说GettingThingsDone是一个很实用的日常事务管理方法,有关的书籍我没看过,不过从monkeyGTD ( http://monkeygtd.tiddlyspot.com/ ) 的版面看上去的确不错。monkeyGTD是tiddlywiki的一个mod,提供了GTD计划管理的功能。它已经包括了几个基本的插件,例如前面提到的月历插件,有个比较有趣的功能是,如果设置了提醒条目,你拉下日历中的下拉菜单时会显示距离这个提醒还有多少天。前面提到对每个项目使用两个tiddlywiki文件,monkeyGTD就非常适宜用来计划与记事。我甚至想用它来做活动桌面,可惜它的样式在IE里无法正确显示,只好放弃了。

3. 知识库
既然名字里有wiki,这是基本功能了。通过搭配合适的插件,可以为tiddlywiki加入blog的特性,变成一个bliki,或者叫wikilog。通常的搭配是前面的日历插件加上ForEachPlugin(或tiddlerList)。ForEachPlugin支持对条目进行复杂的筛选循环,这样就可以在首页中顺序列出最近更新的条目了。有一个专门的WeblogPlugin据说可以更直接地在启动时自动打开最近更新的条目,但我试了一下,并不运作,可能是版本问题或者插件冲突。现在正在研究中...
在原始版的Tiddlywiki里,分类标签并不起眼。但通过一些插件就可以实现很方便的组织功能。较常用的组合是:IntelliTagger(辅助填写分类信息的工具栏)+QuickOpenTagPlugin(把Tag作为条目打开)+NewHere(把当前条目标题作为分类名创建一条新条目)+RenameTagsPlugin(统一修改分类名称)

二 插件资源

官方网站推荐了一些插件网站:
http://www.tiddlywiki.com/#AbegoSoftware%20BidiXTW%20Gimcrack'd%20JacksTiddlyWiki%20LewcidTW%20MonkeyPirateTW%20PeachTW%20RedMountainVista%20TiddlyStyles%20TiddlyTools

列一下我觉得有用的插件,我的选择标准主要是倾向信息组织方面和易用性方面的
1. AbegoSoftware http://tiddlywiki.abego-software.de/
ForEachTiddlerPlugin 可以根据循环条件列出条目
IntelliTaggerPlugin 填写分类的工具条

2. Jack's TiddlyWiki http://jackparke.googlepages.com/jtw.html
PublishMacro 将内容导出到多个html文件
SectionMacro 一个方便的可展开的按钮 (用原版虽然也可做到同样效果,但需要使用多条条目)
TiddlerListMacro 可以根据循环条件列出条目
BreadCrumbsPlugin 在标题栏下列出你打开条目的历史记录,非常适合配合SinglePageModePlugin一起使用
DoBackupMacro 提供一个备份按钮(原版备份需要先在配置中勾选"保存备份"然后再选"保存",若下次保存不想保存备份,则还要取消"保存备份")

3. Lewcid http://tw.lewcid.org/
FullScreenPlugin 提供一个快捷按钮切换到全屏模式(隐藏标题、菜单栏与右栏)
JumpToTopMacro 提供一个可以直接回到文档顶部的按钮
OpenTiddlersMacro 可用一个连接打开多个条目
PopupMacro 在内容中创建弹出菜单
TaggerPlugin: 为条目增加一个tags下拉菜单,可以为条目设置或取消分类
ToggleSideBarMacro: 提供一个可以隐藏/显示右边栏的按钮

4. MonkeyPirateTW http://mptw.tiddlyspot.com/
CloseOnCancelPlugin 若新建条目时在编辑状态选了"取消",则直接关闭该条目
ExtentTagButtonPlugin 在Tag标签的下拉菜单中增加一条添加新条目的选项
NewHerePlugin 在条目的快捷按钮中增加一个按钮,新建一条目并以当前条目名称作为分类名
QuickOpenTagPlugin 把分类作为条目打开
RenameTagsPlugin 对分类统一重命名或删除

5 PeachTW http://bradleymeck.tiddlyspot.com/
InlineJavascriptPlugin 在条目中插入javascript

6 tiddlytools http://www.tiddlytools.com/
CalendarPlugin 提供可显示日历的标签 (网站上另有一CalendarPluginConfig条目设置外观)
DatePlugin 与CalendarPlugin配合可为日历加上下拉菜单 (网站上另有一DatePluginConfig条目设置外观)
AutoTaggerPlugin 自动为条目添加作者,日期等分类信息
HTMLFormattingPlugin 可在内容中加入html标签(原版在<html></html>标签中的内容无法使用wiki特性,而这个plugin则不受影响)
(这个网站上还有不少很炫的插件,但与我的需求无关也就没有仔细尝试了)

样式资源
http://tiddlythemes.com/


tiddlywiki明确地分离了内容、表现和行为。其中内容是由用户输入,行为是由插件和宏来实现。表现则可以通过定义一些特殊的条目来进行配置。这些条目在英文版中称为shadowed tiddler,中文标准版中称为默认tiddler,也有些版本称为影子条目。在原始版本中,页面右下方有一标签页,有一页叫"更多"或"more",点进去后下面又是一个子标签页,有一页叫"默认tiddler"或"Shadowed",此页列出了所有的默认特殊条目。

如果由于定制原因找不到这个标签页,可以新建一个条目,输入<<list shadowed>>(必须使用两个小于号与两个大于号括起来),确定后就可以列出所有默认tiddler的条目了。初始情况下,这些条目并不存在,在列表中可以看到它们属于未定义的WikiWord(初始情况下是斜体字),但实际上它们已被系统赋予了默认值。当向这些条目输入了新内容,就以输入的内容的为准,当删掉输入的同名条目后,则回复到原来的默认值,而默认的条目就无法删除了,这就是它们称为"影子"的原因。

合理使用这些影子条目可以定制TiddlyWiki的表现特性,它们又可以细分为三类:系统内容,页面框架(模板),页面样式。

1. 系统内容:包括配置信息、列表信息、与表现内容

1.1 配置信息
AdvancedOptions: 高级配置选项条目。编辑这个条目可以看到,这里基本上是一些配置复选框的宏(宏是用<< >>括起的部分)。
PlugManager: 用来配置插件
ImportTiddlers: 用来导入外部条目
DefaultTiddlers: 用来设置打开TiddlyWiki时自动打开显示的条目
SiteUrl: 当放在HTTP服务器上时,设置本页的根路径
ColorPalette: 设置一些命名的颜色值

1.2 列表信息
TabAll: 列出所有条目。(不包括未被覆盖的影子条目)
TabMoreMissing: 列出未定义的WikiWord (不包括未被覆盖的影子条目)
TabMoreOrphans: 列出没有被任何条目连接的条目
TabMoreShadowed: 列出影子条目
TabTags: 列出所有已定义的分类标签
TabTimeline: 按最后修改日期排序列出所有条目
GettingStarted: 一条指导用户进行简单初始配置的条目(DefaultTiddlers默认指向此条目)

1.3 表现内容
SiteTitle: 页面标题
SiteSubtitle: 页面子标题
MainMenu: 主菜单内容
OptionsPanel: "偏好设定"配置栏内容
SideBarTabs: 右栏下方的标签页内容
SideBarOptions: 右栏内容。初始情况下包括搜索框与右栏一系列按钮,若使用日历插件可考虑在此加入显示日历的宏。
TabMore: "其他"分页标签

2. 页面框架:
PageTemplate: 页面的整体嵌套布局模板。通过修改此条目可以改变页面的结构,例如去掉标题部分,把左栏竖列显示菜单改为在标题栏下横排显示等等。要注意默认情况下,标题栏的底色是在这个条目中定义的,个人认为这是一个败笔(颜色属于样式,应在StyleSheetLayout或StyleSheetColor条目中定义)。除了这点之外,这个条目非常好地体现了布局与样式分离的原则,默认情况下这一条目内容非常简单:
<!--{{{-->
<div class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
从内容中可以清楚看到各板块的嵌套关系,而且也只包括了嵌套信息(除了第一行那很碍眼的颜色设置),具体的定位与颜色搭配都留给StyleSheet系列条目定义。

注意在编辑时可以看到内容中开始和结尾带有<!--{{{---> ... <!--}}}-->两行,这是种很有趣的用法:由于这个条目的内容是代码,作者不想tiddlywiki对其进行语法解释,因此用tiddlywiki的代码标记{{{...}}}将其括起;但这个条目作为HTML代码条目需要暴露给浏览器进行解释,而浏览器不认识{{{...}}}标记,因此需要用<!-- ... -->HTML注释标记将其括起。在编写插件时经常会使用这种交叉注释的做法。
-----------------------------
ViewTemplate: 显示条目时使用的模板。默认内容也是非常简单(交叉注释部分略去,下同):

<div class='toolbar' macro='toolbar closeTiddler closeOthers +editTiddler permalink references jump'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date [[DD MMM YYYY]]'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date [[DD MMM YYYY]]'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>

第一行定义了条目上方的快捷按钮,第二行显示条目标题,第三行显示条目信息,第四行列出以本条目为分类标签的条目,第五行显示本条目所属的分类标签,第六行显示正文。这个条目也完全不涉及样式。若要添加或减少条目的快捷按钮或在条目中添加其他宏(例如返回页面顶部的插件宏),可以修改此条目。
-----------------------------
EditTemplate: 编辑条目时的模板。进入编辑条目状态时,使用这个模板来显示输入界面。结构类似ViewTemplate。


FPGA论坛

也许会用得着,先收了。

FPGA/CPLD论坛里的一个帖子
1. OPENCORES.ORG
这里提供非常多,非常好的PLD了内核,8051内核就可以在里面找到。
进入后,选择project或者由http//www.opencores.org/browse.cgi/by_category进入。
对于想了解这个行业动态人可以看看它的投票调查。
http://www.opencores.org/polls.cgi/list
OpenCores is a loose collection of people who are interested in developing hardware, with a similar ethos to the free software movement. Currently the emphasis is on digital modules called 'cores', since FPGAs have reduced the incremental cost of a core to approximately zero. Activity is centered around the opencores web site
http://www.opencores.org- 中文
2. FPGAs are fun
提供了大量的关于FPGA应用的文章,项目实际例子。强烈推荐
http://www.fpga4fun.com/- 外文
3. Open Collector
收集了大量的开源硬件,内核.它的分类非常清晰,不多说。
强烈推荐
目录结构
# Design tools and software
* Digital
o Data Entry
o Simulation
+ General
+ Spice or alternatives
+ Verilog
+ VHDL
o Verification
o Synthesis
+ ASIC
+ FPGA
+ Logic Minimization
+ PCB Design
o Educational
* Other
# Hardware designs
* Design Libraries
* Computers
* Embedded Systems
* Processors
* Interface
* Control
* Robotics
* Audio
* Video
* DSP
* Radio
* Telecoms
* Other
# Groups and organizations
http://opencollector.org/summary.php- 外文
4. The First Stop for the Latest ICs and Components
非常好的关于微处理器,DSP,可以编程控制器资讯的网站,更新非常快。强烈推荐一些领导级别的人常去,了解行业动态!
http://www.eeproductcenter.com/- 外文
5. FPGA和CPLD可编程逻辑器件 - 莱迪思半导体公司
http://www.latticesemi.com.cn/- 中文
6. Altera中文主页 强烈推荐
http://www.altera.com.cn/- 中文
7. 强烈推荐FPGA学习。
http://www.epanorama.net/links/fpga.html- 外文
8. EDA Industry Working Groups
好像是官方网站,大量的相关资料与链接.
http://www.vhdl.org/- 外文
9. 可编程逻辑器件 - Programable Logic Device
一个专门的关于可编程逻辑器件 - Programable Logic Device ( FPGA & CPLD )的网站,里面的资料比较全。里面有几个非常好的栏目:参考设计,应用文章,设计进阶。
http://www.pld.com.cn/- 中文
10. 可编程逻辑器件 - Programable Logic Device
一个专门的关于可编程逻辑器件 - Programable Logic Device ( FPGA & CPLD )的网站,里面的资料比较全。里面有几个非常好的栏目:参考设计,应用文章,设计进阶。这里的BBS论坛人气也比较旺
http://www.pld.com.cn/bbs/index.asp- 中文
11. Andraka Consulting Group Home
包含了大量的算法比如FFT,FIR以及它们的DSP与FPGA实现等等。
http://www.andraka.com/toc.htm- 中文
12.www.fpga-faq.org
收集了大量的faq.对一些概论性的东西作了很好的解说。
初学者必去。
http://www.fpga-faq.org/- 外文
13. Via Dev-page
提供许多非常新的开发项目,而且提供详细的有关资料。
ultrasonic sensor-based radar
Simple power supply
PIC-based alarm clock
Nissan Maxima Consult Interface
Mfr. libraries for Protel
Sony IRCS remote control FPGA IP core
testing proj.
Cheap logic analyzer, PIC based
PIC-based IDE
Custom Protel libraries
Sobel edge detector FPGA IP Core - EE project
Trivial high-voltage programmer for PIC
FPGA-based MAC and PHY
FTDI USB - RS 232 converter
MP3 Server front-end for linux server, PIC based
文档下载http://via.dynalias.org/hw/
http://via.dynalias.org/- 外文
14. Design And Reuse
The Web's System-On-Chip Design Resource - IP, Core, System-On-Chip
http://www.us.design-reuse.com/- 外文
15. 硬件工程师之家(hardware Engineer
大量的电子开发资料,主要是硬件相关,计算机接口开发.推荐
http://www.3721it.com/- 中文
16. FPGAworld
大量的资料下载,推荐.需要注册
http://www.fpgaworld.com/- 外文
17. FPGA-Guide
This WEB-page is dedicated to all PLD / FPGA-designers
to find the best solution for their project
http://www.fpga-guide.com/- 外文
18. SOCcentral
SOCcentral brings you the latest news about SOC/ASIC/FPGA design, EDA tools and design methodologies, intellectual property (IP), and design reuse. You'll also find the abstracts (and links) to more than 1600 relevant magazine and newspaper articles, tutorials, whitepapers, and application notes available on line, as well as the most comprehensive directory of EDA/design service/IP providers available anywhere on the Internet.
http://www.soccentral.com/- 外文
19. EDACafe, the Leading EDA Portal
http://www.edacafe.com/- 外文
20. FPGA and Programmable Logic Journal
http://www.fpgajournal.com/- 外文
21. FPGA.ch
有许多FPGA应用。
http://www.fpga.ch/- 外文
22. NIOS μClinux Project
在NIOS处理器上移植uclinux,提供详细文档,电路。
http://www.enseirb.fr/~kadionik/embedded/uclinux/nios-uclinux.html- 外文
23. 中国可编程逻辑器件网 FPGA CPLD专业技术网站
提供可编程逻辑器件开发资料与开发板
http://www.81ic.com/- 中文
24. Accellera的主页
一个收集了非常多的关于HDL标准的网站。
Accellera's mission is to drive worldwide development and use of standards required by systems, semiconductor and design tools companies, which enhance a language-based design automation process. Its Board of Directors guides all the operations and activities of the organization and is comprised of representatives from ASIC manufacturers, systems companies and design tool vendors.
http://www.accellera.org/activities/- 外文
25.www.fpga4fun.com
www.fpga4fun.com网站收集的链接,非常实用。特色就是它把verilog与VHDL相关的链接作了分类汇总。
http://www.fpga4fun.com/links.html- 外文
26. FPGA CPU News
收集了大量的关于FPGA,CPU的新闻,可以了解它们的发展动态。可惜很久很久没有更新了。
http://www.fpgacpu.org/- 中文
27. FPGA-based Logic Analyzer
利用FPGA来进行逻辑分析,有上位机器VC的源代码实现,非常优秀,它不是利用MFC实现,我下载并且编译通过,有硬件电路图,PCB图,有PC104与并口接口。但是我没有找到VHDL代码。一个非常有用的实际性工程。可以
http://www.eebit.com/- 外文
28. FPGA开发板网
尽管是买fpga开发板的,但也有小许资料下载。看看
http://www.fpgadev.com/- 中文
29. DA开发技术网
Altera FPGA开发板,Altera CPLD开发板,Xilinx FPGA开发板, Xilinx CPLD开发板,cyclone开发板,cyclone2开发板,Spartan2开发板,Spartan3开发板,Mars-EDA
http://www.eda.org.cn/- 中文
30. 线路人生51fpga
http://www.51fpga.com/- 外文
31. 思恒科技-DSP、ARM、FPGA等开发的电子综合网站
公司网站,资料还不是很多,有时间可以看看。
http://www.siheng.cn/- 中文
32. 中国集成电路设计平台开发网
里面有些不错的关于FPGA的资料,可以看看。
http://www.fpgastation.cn/- 中文

终于完成了DDS的所有论文

找个地方投了就ok了。

删掉了所有的东东

重新开始