我所使用的wordpress插件

博客在经过一段时间的完善和适应后,应该可以逐渐稳定下来,不会有大的改动了,以后主要就是最重要的文章更新了。

在与wordpress两个月的接触过程中发现这的确是一个非常优秀的软件,性能方面我没有直观的印象,但它界面简洁优雅,它的可扩充性远远超过了我的预期,在我印象中,可扩充性能可以与firefox以及Vim处在一个层次上了。

点击图片看大图

在维护博客的过程中,不断的尝试新的插件,也淘汰掉一些不需要或者暂时用不到的插件(等流量大了再考虑),下面的都是我正在使用的插件,有23个插件,不少了,不过有一些是在后台工作的,有一些本来就是用来优化的,而且现在访问量不大,所以问题不大。下面逐一简单介绍:

Akismet

垃圾评论自动拦截。wordpress自带插件,使用需要wordpress.com的API key。

About Me

生成侧边栏中的社会化书签。

All in One SEO Pack

虽然不指望着google把我放在很前面,但优化一下也无害社会。

Auto Blogroll

用于友链页的生成以及友链的自动申请。

Clean Archives Reloaded

存档页的生成,简洁方便。

Delete-Revision

删除无用的修订档。

Google XML Sitemaps

sitemap文件自动生成及更新。

GZippy

在服务器端对页面进行压缩,以加速页面的加载,具体见《wordpress页面加载速度优化之二:四种方法》

Manageable

在后台的控制面板中,可以方便的对文章进行快速编辑,更改文章的属性而不用进入编辑文章页面。

No Self Pings

发表文章时,不会ping自己,避免搜索引擎的惩罚(没印证过),而且理论上,文章发布也会快一些。

Simple Tags

方便的对文章的tag进行标记以及集中整理,还可以对文章中的关键词自动关联tag,不过这个功能我不用的。

Slimbox Plugin

将图片以Ajax展示的方式进行呈现,具体可以看我日志中的“点击图片看大图”。

Super Switch

看起来有好几个选项,不过关掉应该也没啥问题。

Ultimate Google Analytics

自动插入Google Analytics的脚本,使用google analytics进行统计分析。

What Would Seth Godin Do

可以根据访客的访问情况(首次还是来访问过),生成不同的欢迎信息,显示在日志的头部或者尾部。

WordPress Database Backup

自动对wordpress的数据库进行备份,并发到指定的邮箱中。详见《wordpress的备份方法小结》

WordPress Related Posts

生成与文章相关的文章列表,比如我博客中的“你可能还喜欢如下文章”

WP-PageNavi

利用页码来进行翻页。

WP-PostViews

对文章的查看次数进行统计并显示。

WP-T-Wap

生成wap页面供手机上网浏览。

WP Kit CN

在Wordpress中文工具箱基础上进行改进,主要用来进行文章截断(试过几种方法后,这种方法比较能接受),生成热评文章以及最新评论。

Global Translator

生成博客的不同语言版本,有很多种语言和三种翻译引擎可供选择,并可将不同语言版本的页面链接体现在sitemap中。

Recommended Reading: Google Reader Shared

显示在google reader中分享的文章以及网页,并可输出到单独的页面中,如我博客中的文章分享。可对显示及提取的方式进行控制。Updated:7-12,该插件现已暂停使用

本文将会在以后根据插件的使用情况持续更新中。

觉得文章不错?请通过RSS订阅本博客文章。

verilog仿真环境的搭建3:Debussy的设置

Debussy是Novas公司出品的调试工具,在5.4V9版之后就只发行Linux了,在这里使用的是Win32上的最后一个版本。

在前面文章中,已经可以调用modelsim进行仿真了,要配合Debussy使用的话,就需要在仿真中生成波形文件供调试。Debussy可以使用.fsdb文件,大小要比.vcd文件要小不少。

波形文件的生成

首先,将Debussy安装目录下share\PLI\modelsim_pli54\WINNT目录中的Novas.dll文件复制到modelsim安装目录下。

然后,在modelsim.ini的[vsim]标签下增加一行,用来在仿真时以供调用。

   1: Veriuser = novas.dll

接着,在仿真的顶层模块中添加如下语句:

   1: initial
   2: begin
   3: $fsdbDumpfile("wave_out.fsdb");
   4: $fsdbDumpvars;
   5: end

这样,在仿真时就会在script目录生成wave_out.fsdb波形文件。

如果波形文件比较大的话,打开时会占用很多内存,这时可以把波形文件分段输出,调试时只要载入指定时间段的波形文件就可以了,将第三行语句替换为如下语句:

   1: $fsdbAutoSwitchDumpfile(25, "test.fsdb", 150);

这条语句表示将fsdb文件分成每个大小为25MB的文件,最多输出150个文件。每个文件的仿真时间范围记录在test.log文件中。

调用Debussy

启动Debussy时,可以使用命令行方式,同时载入项目文件。结合命令行调用Modelsim,可以写出如下的两个批处理文件。

sim.bat

   1: d:/program/Modeltech_6.3c/win32/vsim.exe -c -do sim.do
   2: d:/program/Novas/Debussy/bin/debussy.exe  -f  run.f

vsim中的-c参数是指定采用命令行模式,-do则是制定采用.do脚本模式。debussy的-f参数是在debussy启动时就调入run.f中指定的文件。

sim2.bat则是去掉了第二行,只是调用modelsim进行仿真。然后在已经启动的debussy中使用Shift+L快捷键重新调入波形文件就可以了。

Debussy的使用

Debussy有较强的单步调试的功能,我曾经尝试过,但没有能够使用的起来。现在使用的主要是波形文件的查看以及源代码的分析。

点击图片看大图

在如图所示的代码界面,双击信号名就会在下面列出驱动这个信号的信号以及信号的负载列表,如果只有一个信号驱动这个信号的话,那就会直接进行跳转,并能通过工具栏中的按钮寻找定义信号的位置以及信号的调用位置。这样,在查看代码时,可以很快的查看到信号的流向了。

点击工具栏中的”New Waveform”按钮,可以调出波形分析工具。用工具栏中的打开文件按钮打开波形文件,并利用”Get Signal”按钮选择需要查看的信号(或者直接从选择对话框中拖入,甚至可以从代码界面的源程序中直接拖入,拖得时候是按鼠标中键,而不是左键或右键),就会显示生成的信号了。如下图所示:

verilog6

点击图片看大图

在波形界面中,可以利用一些简单的快捷键来方便的查看波形,其中z和Z是放大缩小,c是改变信号的显示颜色,Shift+L是重新载入波形。其他还有很多功能有待探索。

Debussy是个很强悍的工具,我用到的可能只有它的一小部分功能,如果有其他使用经验的话,欢迎一起分享。

如何有效的睡眠

这本书在午间花了些时间看完了,对于睡眠的原理以及如何提高睡眠质量讲的还是有理有据的,而且,能颠覆一些以前固有的想法。

点击图片看大图

看完这本书才知道,睡前玩手机只会让自己更清醒;身体锻炼放在早上更合适那是有根据的;大家通常所说的睡眠生物钟,大多数人以为自己了解,却可能了解的很模糊;睡不着数羊入圈是个实际没啥用处的方法;白天的光照以及锻炼对于睡眠质量来说是大有好处的;白天觉得困,也有可能是因为睡的太多了……

所以,这本书值得一读。

附下载: Google下载链接

为了那孩子,我们一起玩吧!——《菊次郎的夏天》

看电影,后知后觉能带来更多惊喜,就如《菊次郎的夏天》,片尾才知道那糟兮兮的中年男人是菊次郎,看完才知道,那个演菊次郎的,竟就是北野武。

印象中的北野武是04年拍《座头市》的人,那时在江宁教室里看的投影的电影,情节早已模糊的很,座头市是个人,一个奇怪的名字,有着武士的杀戮和片中一个疯子执着得围着茅草屋愤然地冲喊。让人难以把《菊次郎的夏天》与他联系起来。

点击图片看大图

我所喜欢的一张海报

电影风格如同从动画片改编过来,充满孩童的纯真与不羁,角色的设计很有喜感,场景的选择有着乡间自然纯朴的气息,这些都给观众带来清新温馨的感觉。

音乐

久石让的音乐也让电影增色很多,就拿主题曲Summer来说,首段欢快的曲调让人自然联想起开始与结束时正南背着天使翅膀的书包欢快奔跑的样子;继而转入细腻的略带忧伤的舒缓节奏,那种思念与渴望母亲的心理历程被描绘了出来;接着是轻快而简短急促的进行,伴随大提琴的伴奏所带来的紧张气氛,预示着旅途中的艰难险阻却又伴随着许多欢乐与温情。然后整体的节奏放慢下来,在慢而节奏略散的衔接后,开始的欢快主题反复出现,最后以前段的忧伤主题收尾,与旅行后段的欢乐及最后的离别相契合。

这首曲子正如其名,迸发着夏日的勃勃生机,但又清新亮丽,是能带来炎炎夏日中凉爽体验的音乐,文末提供了下载链接。

母爱

正南寻找母亲,却看到母亲已有了个自己无法涉足的家庭;菊次郎去看望母亲,没有进门,只遥遥地透过窗户凝视自己母亲。这些都寄托了北野武内心对于母爱复杂难以言喻的感受。

不孝子

北野武搬出去独住,跟他的母亲有关。

北野武和母亲的关系一直不好,他独自到东京闯天下,跟家人的联系就更少了。每次联络,北野妈妈都向北野要钱,却从不问及他在东京的日子是否艰难,令他十分反感。后来,北野武越来越出名,母亲的“胃口”也越来越大。若是他偶尔忘了寄钱回去,母亲居然会打电话骂上门来。

1994年,北野武骑重型摩托车时滑倒受重伤,老妈知道后只送给儿子一句话,“要撞也不撞好一点的车。”北野妈妈去世后,北野武回家拜祭,意外地从大哥手里拿到妈妈留给他的遗物———一封信和一张存折。

母亲在信上写道:“儿子,你从小生性放荡,我担心你哪天一无所有。这存折里有1000多万日元,全是帮你存起来的……”

摘自《日本著名导演北野武的“5张脸”》http://ent.163.com/edit/020926/020926_135711.html

为了那孩子,我们一起玩吧!

菊次郎  《菊次郎的夏天》

后来网上找到了一些资料,北野武母亲的苦心令人唏嘘。想必北野武对他母亲的感受陷入相当的矛盾中。菊次郎与正南在孤乡僻壤等候汽车的情节,凸显了北野武内心的孤寂,早期母爱感受的缺失让北野武十分需要其他的慰藉,于是正南仿佛童年的自己,北野武用成年的自己所倾注的努力来安慰正南,可能是期望在回溯中追寻再也难以得到的关心与爱护,所以片中许许多多的素不相识的人,甚至面相丑恶,也会给正南以温情与帮助。正南所处的,是一个虽然缺少母爱,但充满关爱的理想世界。

点击图片看大图

在门口的张望与在窗前的凝视或许也意味着北野武与母亲生死两隔的距离及歉疚。

用我的奋不顾身,换那一丝光亮:《老爷车》随感

在记忆中那黑暗而罪恶的泥淖里,那对姐弟带来了脱离污染而透明的光亮。

对于在幽暗中聊度余生的人来说,那光亮如同新生。于是他小心翼翼的保护他们的未来。生怕他们因为“不是命令”的动机而走上不归路,重蹈自己的覆辙。

只是他低估了现实的阻碍,以暴制暴终究造成了无可挽回的创伤。

最后,他的奋不顾身,更折射出对现实的无奈与对社会问题的揭示,他用他的生命换回了姐弟俩求之而不得的生存空间,但他们将要面对的,是在这样的环境里漫长而昏暗的路途。

点击图片看大图

这样的电影所以获得如此高的评价(IMDB),相当一部分是因为对于问题的揭示引发了社会的共鸣,将美好的事物活生生的撕裂给观众看,也是期望能带来更深刻的反思。一个老头子本应颐养天年,却不得不为着弱势小孩的出路而送命,那社会所扮演的角色在哪里?少数族裔的生存状况是否得到了足够的关注?是否已陷入不断恶化的循环中?我想这些都是是美国社会有待解决的难题。

verilog仿真环境的搭建2: modelsim的设置

1.证书设置

modelsim安装后,如果默认没有设置证书目录,那还需要手动进行设置。

在“系统属性”-》“高级”-》“环境变量”中的用户变量里,加上LM_LICENSE_FILE变量值,为证书所在的目录。值得一提的是,如果有其他软件也需要使用这个变量的话,那变量值以分号分隔。以我的设置为例:

   1: 变量名:LM_LICENSE_FILE
   2: 变量值:D:/program/Modeltech_6.3c/LICENSE.TXT;d:/program/Synplicity/synplctyd.lic

2.仿真库的编译

xilinx的仿真库可以用命令提示符进行编译,也可以在ISE内图形界面下编译。

以ISE10.1为例,新建工程后,在source工具栏中选中器件,在Processes中右击”Compile HDL Simlulation Library”,如下图所示,选择”Properties…”,会出现设置对话框,如下下图所示。基本按默认设置就可以了,如需更改,第一项为编译的语言选择,第二项为编译后库的存放目录,第三项为仿真器(modelsim)的存在目录。

点击图片看大图

点击图片看大图

设置好后,还需要更改modelsim安装目录下的modelsim.ini设置文件,指定仿真库的目录,否则在仿真其他项目时会提示找不到仿真库。修改前去除modelsim.ini的只读属性,然后在[Library]项下添加类似如下的目录指定语句(无需行号)。

   1: Simprims_ver = D:/Xilinx/ise/ISE/verilog/mti_se/simprims_ver
   2: unisims_ver = D:/Xilinx/ise/ISE/verilog/mti_se/unisims_ver
   3: XilinxCoreLib_ver = D:/Xilinx/ise/ISE/verilog/mti_se/XilinxCoreLib_ver
   4: XilinxCoreLib = D:/Xilinx/ise/ISE/vhdl/mti_se/XilinxCoreLib
   5: simprim= D:/Xilinx/ise/ISE/vhdl/mti_se/simprim
   6: unisim =D:/Xilinx/ise/ISE/vhdl/mti_se/unisim

3.仿真器的批处理调用

仿真未必需要使用modelsim的图形界面,可以使用批处理文件调用命令提示符方式实现全自动的仿真。不需要重复的设置而且可以节省仿真时的内存占用。

sim2.bat文件

调用modelsim中仿真器的批处理文件,以我项目目录中script目录下的sim2.bat为例,内容为(无需行号):

   1: d:\program\Modeltech_6.3c\win32\vsim.exe -c -do sim.do
   2: exit

sim.do文件

还需要在同一目录下建立modelsim仿真的脚本文件,文件为sim.do,内容如下(无需行号):

   1: vlib work
   2: vlog -f  run.f -incr
   3: vsim -L xilinxcorelib_ver -L unisims_ver -lib work updater_test glbl
   4: run 100us
   5: quit

第一行建立一个项目库。

第二行载入仿真所需文件,-incr参数为增量编译方式,每次运行时没有改动的文件可以不用重新编译,节省编译时间。

第三行为仿真命令:-L参数载入仿真库;-lib 指定项目库;updater_test为顶层的模块名,根据自己项目的情况更改;glbl为全局信号模块的名字,一般不用改。

第四行指定仿真运行时间。

第五行退出脚本。

run.f文件

在上述的脚本中,第二行为载入项目仿真所需文件,这需要手动指定,或者利用脚本或者批处理来生成,内容其实相当简单,就是一个文件及其路径的列表,类似于这样(无需行号):

   1: e:/project/parameters.v
   2: e:/project/rtl/counter.v
   3: e:/project/rtl/updater.v
   4: e:/project/rtl/updater_test.v

在仿真前就会按照顺序调入这些文件并进行编译了。

这样,modelsim所需的设置就基本完成了,用命令行方式调用仿真器在实践中可以方便很多,而且更利于脚本化的处理。

第三篇将介绍调试的利器Debussy的设置。

每个人心中都有一座沉积深深的房子

我眼中的《积木之家》

他的房子因为不断漫高的水位而越砌越高,孤独的老人不需要很多空间,于是他的小屋也越来越小。逼仄的空间充满了泛黄的照片,剩下的则只是必要的家具。

再一次新砌房子的那天,他心爱的烟斗掉到了水下,他曾经的屋子里。他觉得别无其他中意的替代了,于是潜进了被水充满的屋子,记忆沉积深埋的地方。

他下潜进一间又一间的屋里,每间屋子都是那个时代记忆的寄托,他的老伴,他的女儿,他的家庭,他的爱情,记忆鲜明如触手可及,伸手却只有幽暗的空虚与积满灰垢的弃物。

他的心失落而温暖。他将遗弃的酒杯带到了他的新家,与记忆中的她举杯共盏。

点击图片看大图

据说,每个男人在死前,眼前都会浮现生平最爱的女人。铁马冰河入梦的,大概只是少数。

那些依依不舍的牵挂,毕竟不会如那些所谓千秋功业一般,生不带来死不带去。

身边的人,才是自己灵魂的维系。

所以当老的什么都做不动的时候,心地里有那许多温暖可以回忆,即便失落怅惘,也是种幸福。

愿天下人都能珍惜眼前的人。

祝爸爸父亲节快乐!

 

 

verilog仿真环境的搭建1:项目文件的组织

因为ISE内置的仿真工具功能比较弱(或者是我没有善于发掘?),所以大多数的仿真都是交给第三方工具的,比如说modelsim以及NC verilog。就我使用的工具来说,只有布局布线之后才是交给ISE来完成,之前的流程都可以有更为方便的工具来替代。现在我所使用的仿真及调试环境主要由vim+nlint+modelsim+debussy构成,使用起来还是相当方便的。需要说明的是,我是在windows下面使用这些工具的,如果linux下使用的话,可能可以更加强大。

首先介绍下project目录下文件的组织方法。

点击图片看大图

 
左侧的项目主目录

test目录:主要用来存放子模块仿真所需文件,每个子模块目录内的结构跟project目录下大致相同。

syn目录:存放综合的项目文件及其产生的文件。

sim目录:存放rtl仿真所使用的testbench。

script目录:用来存放仿真所需要运行的脚本(主要还是批处理文件)。

rtl目录:用来存放rtl代码。

planahead:用来存放planahead工程文件及产生的文件。

others目录:存放一时难以归类的文件。

ise目录:用来存放ise的项目文件以及产生的文件,包括布局布线所需的文件以及可供下载的二进制bit文件。

doc目录:用来存放项目所需的参考文档。

core目录:用来存放项目所需的核相关的文件。

c目录:用来存放c语言程序。

backup目录:用来存放临时备份。

tags文件:vim中自动生成的tag索引文件。

syncToy文件:用于Microsoft Synctoy工具的文件,该工具主要用来进行不同计算机的文件同步。

parameters.v:用于存放项目所需的参数。

右侧的script子目录

Debussy.exeLog与work目录:分别是Debussy与modelsim产生的文件。

transcript文件:modelsim的生成的日志文件。

deb.bat:调用Debussy并载入项目中的rtl文件。

nlint.bat:调用nlint进行项目中rtl文件的规则检查。

sim.bat:调用modelsim进行仿真,并在仿真结束后启动debussy观察波形。

sim2.bat:调用modelsim进行仿真,但并不启动debussy。

sim.do:modelsim的仿真脚本。

run.f:项目中rtl的文件列表。

fsdb文件:modelsim仿真生成的波形文件。

*.log:仿真时产生的日志文件,再将波形文件分割为多个文件时产生。后面会有介绍。

bram.mif:Block Ram核初始化所需的数据文件。

novas.rc:debussy的配置文件。

sig.rc:在debussy中察看波形时选择的信号列表。

.swp:vim编辑时产生的临时文件。

vsim.wlf:modelsim产生的波形文件,不过这个文件一般不用。

glbl.v:仿真所使用的全局信号初始化文件。

其中,文件名加下划线标志的文件为手动生成的。其他的文件为软件生成的文件。

这其中的部分文件,特别是script目录中的文件,以后会有介绍的。

将项目文件分类存档,便于进行项目的管理,避免不同流程下的文件聚集在一个目录下,同时也可以使误操作的损失控制在较小的范围内。

下一篇文章,将要介绍modelsim的配置以及仿真库的编译。