10

2013年5月13日

手工改变Quartus II软件的编译速度[转载]

摘要: Quartus II的编译速度一直是个问题:太慢!尤其在进行FPGA调试时,加入SignalTAP II后编译时间明显延长,一次就要15分钟(对我当前的机器配置和设计来说)。 使用Quartus II快5年了,这是一个很深刻的体会,也带来几个好处。1. 我在等待编译结果时不得不翻翻书、看看文档,由此也多学了许多知识。2. 我不得不尝试提高使用SignalTAP II的效率,尽量减少重复编译的次数,... 阅读全文

posted @ 2013-05-13 14:00 believe 阅读(5350) 评论(0) 推荐(1) 编辑

2012年6月28日

多一点余量,少一点尴尬(转)

摘要: 设计余量,一点不让人陌生。如果没有记错,特权同学还在搞军工那会,对于电路的设计余量常常要求达到50%。对于大多数设计应用来说,这样的余量标准近乎浪费。在这个资源匮乏的节约型社会,也对工程师们提出新的思考,到底要不要余量?多少才算合适? 曾经有一段时间,觉得一个好的设计,是能够把电路板的面积、其上所有的元器件、甚至芯片的每一项功能都用到极致。也许,这样的设计可以达到成本最小化,是BOSS最希望看到的... 阅读全文

posted @ 2012-06-28 09:08 believe 阅读(421) 评论(0) 推荐(0) 编辑

2012年6月7日

时钟系统

摘要: 时序分析——公共时钟(内同步,外同步),源同步 时钟系统可以分为公共时钟和源同步时钟,公共同步又可以分为内同步和外同步,内同步典型的即为CPU与SDRAM系统的读写。 建立时间:要求接收端的数据信号必须先于时钟信号到达。时钟信号的延时:Tdelay = Tco_clka + Tflt_clka4 数据信号的延时:Tdata_delay = Tco_clkb + Tflt_clkb + Tco... 阅读全文

posted @ 2012-06-07 15:40 believe 阅读(583) 评论(0) 推荐(0) 编辑

2012年5月28日

Testbench代码设计技巧

摘要: Testbench代码设计技巧 " There are many ways " to code a test case, it all depens on the creativity ot the Testbench designer. Testbench代码设计技巧 1 1. Clock logic设计技巧 1 2. Asynchronous reset设计技巧 1 3. System... 阅读全文

posted @ 2012-05-28 09:54 believe 阅读(272) 评论(0) 推荐(0) 编辑

2012年5月25日

FPGA中逻辑复制(转)

摘要: 在FPGA设计中经常使用到逻辑复制,逻辑复制也用在很多场合。 1. 信号驱动级数非常大,扇出很大,需要增加驱动力 逻辑复制最常使用的场合时调整信号的扇出。如果某个信号需要驱动后级很多单元,此时该信号的扇出非常大,那么为了增加这个信号的驱动能力,一种办法就是插入多级Buffer,但是这样虽然能增加驱动能力,但是也增加了这个信号的路径延时。 为了避免这种情况这时可以复制生成这个信号的逻辑,用多... 阅读全文

posted @ 2012-05-25 18:27 believe 阅读(409) 评论(1) 推荐(0) 编辑

如何将Quartus II编译结果放在一个目录下?

摘要: 使用环境:Quartus II 8.0 在中,我曾经提出一种project管理方式,将Verilog code统一放在hardware目录下,将根目录净空,以方便日后好管理SOPC Builder所产生的code,Quartus II原来还可指定目录放置编译结果,如此可让project的根目录更加干净。 回想我们使用Visual Studio的经验,一个典型的project,除了自己的code外,... 阅读全文

posted @ 2012-05-25 18:22 believe 阅读(424) 评论(0) 推荐(0) 编辑

2010年5月20日

搞笑面试对答

摘要: 考官;windows 7专业版在中国大陆的零售价是多少? 我:5元 考官:出去,下一位放弃这两个字在哥的字典里面 就没有出现过, 我投啊投啊, 终于得到了google面试的机会 但是,去google面试,才回答一个问题就又被赶出来 了... 考官:你从哪得到google面试的消息 我:百度的 考官:出去,下一位哥郁闷了,但是还是要先 养活自己啊。 拖朋友找到了麦当劳的工作。。 但是对方很变态,让我唱麦当劳的歌曲, 当时哥就笑了,麦当劳的歌曲我从小就会。 于是我张口就来:有了肯德基,生活好滋味! 考官:出去~~~~~~~~~ 麦当劳面试失败了。我妈妈拖人找 了一个移动客服的工作, 妈妈说这个不要 阅读全文

posted @ 2010-05-20 20:11 believe 阅读(424) 评论(0) 推荐(0) 编辑

导航

/* * Name: SyntaxHighlighter.brushes.Verilog * Author: Yuphone Chang * Email: yuphone@qq.com/ * Create Date: 5.18, 2010 */ SyntaxHighlighter.brushes.Verilog = function() { var datatypes = 'reg integar unsigned ' + 'wire tri wand triand tri0 tri1 supply0 supply1 trireg ' + 'parameter specparam defparam event '; var primitives = 'and nand or nor xor xnor ' + 'buf not ' + 'bufif0 bufif1 notif0 notif1 ' 'pullup pulldown ' + 'pmos rpmos nmos rnmos '; var keywords = 'module endmodule ' + 'input output inout ' + 'begin end ' + 'assign deassign always initial genvar ' + 'forever repeat disable wait ' + 'function endfunction' + 'task ' + 'endtask ' + 'generate endgenerate ' + 'specify endspecify ' + 'posedge negedge ' + 'if else for while ' + 'case casex casez endcase default ' + 'include timescale ' + 'ifdef endif ' + 'celldefine endcelldefine ' + 'attribute ' 'fork join '; var functions = 'display displayb displayo displayh ' + 'write writeb writeo writeh ' + 'strobe strobeb strobeh strobeo ' + 'monitor monitorb monitoro monitorh ' + 'fopen fclose ' + 'readmemb readmemh ' + 'finish stop ' + 'time stime realtime timeformat ' + 'printtimescale ' + 'setup hold setuphold skew recovery period width '; this.regexList = [ // one line comments { regex: SyntaxHighlighter.regexLib.singleLineCComments,css: 'comments' }, // multiline comments { regex: SyntaxHighlighter.regexLib.multiLineCComments, css: 'comments' }, // double quoted strings { regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: 'string' }, // single quoted strings { regex: SyntaxHighlighter.regexLib.singleQuotedString, css: 'string' }, // constants { regex: new RegExp("[0-9]+['][bBoOdDhHeEfFtT][0-9a-fA-FzZxX_]+", 'g'), css: 'constants' }, // datatypes { regex: new RegExp(this.getKeywords(datatypes), 'gm'), css: 'color1 bold' }, // primitives { regex: new RegExp(this.getKeywords(primitives), 'gm'), css: 'color2 bold' }, // keywords { regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword bold' }, // functions { regex: new RegExp(this.getKeywords(functions), 'gm'), css: 'functions bold' } ]; }; SyntaxHighlighter.brushes.Verilog.prototype = new SyntaxHighlighter.Highlighter(); SyntaxHighlighter.brushes.Verilog.aliases = ['verilog', 'v'];