相关回复: 作者: trust840220 发布日期: 2006-11-20 我在大学学的是化学,具体搞药物的,觉得没什么前途。毕业前学习了水的监测和处理。工作却到了一家光电仪器公司,本来上的项目是COD在线监测仪器,现在出现了致命的问题,光源找不到,我就配合几个技术员搞单片机!什么都不懂!!迷惘之际来到小木虫请教,多亏了sdlj8051!! 在他的发来的学习建议和许多网址中我找到了许多入门的资料,我也及时的把资源的网址发上来,也发了一些小的资料上来。也许有的虫子要学习呢 :D 老的工程师建议我从汇编语言学起,新的工程师说汇编会搞死人的,让我从C语言学起,加上他们热情的提供了我编程器、仿真机,本人又觉得C可读性强,就从KEILC51 学起来了 呵呵 反正什么都不会,一切从头开始!干干净净,利利索索! 作者: ZHMX 发布日期: 2006-12-28 VHDL和Verilog对比就象C和汇编对比。 VHDL的语法描述更规范,高级语言特性较多。适合于大型的硬件逻辑设计。 Verilog则更接近硬件,语法更灵活,适合于激励,仿真,硬件模型。 VHDL具有很多高级语言的特性:数据类型定义,常量定义,函数和过程定义。 以上这些定义都可集中写在一个PACKAGE中(类似C的.H文件),在每个子模块 中只需加一句话引用该PACKAGE即可。从总体设计上这些特性使得模块化设计 和TOP-DOWN设计可以比较方便的进行。从局部设计上,可以很方便的写出可读 性很强的状态机的结构。VHDL是正向逻辑设计的必然趋势,这方面Verilog肯定 是比不过的。现在已经有专门的VHDL的开发环境,如SUMMIT的Visual VHDL。 你可以画状态机,流程图,原理图,由SUMMIT自动生成VHDL。 Verilog语法比VHDL更灵活。从语法核心上Verilog完全是一种事件触发的模式。 它的描述能力实际是超过了硬件能实现的范围。比如Verilog语法可以很容易的 描述一个多时钟的触发器。Verilog非常适合写激励和建器件模型,这些工作 很难用VHDL来完成。目前所有半导体厂家的器件库都是用Verilog来描述的。 SIGN OFF的平台也是基于Verilog的。VHDL的新标准里一直试图加入一些这方面 的特性,但是很不成功。 目前EDA设计以综合为界,综合前的设计用VHDL,综合出的网表就是Verilog的了, 布局布线,时延提取,带时延仿真,测试设计都是基于Verilog。和Verilog相关 的步骤虽多,但现在的设计方法是在VHDL设计阶段做较多约束,从综合开始就是 机器自己去RUN了。 作者: sdlj8051 发布日期: 2006-12-28 规范很重要 工作过的朋友肯定知道,公司里是很强调规范的,特别是对于大的设计(无论软件 还是硬件),不按照规范走几乎是不可实现的。逻辑设计也是这样:如果不按规范做的 话,过一个月后调试时发现有错,回头再看自己写的代码,估计很多信号功能都忘了, 更不要说检错了;如果一个项目做了一半一个人走了,接班的估计得从头开始设计;如 果需要在原来的版本基础上增加新功能,很可能也得从头来过,很难做到设计的可重用 性。 在逻辑方面,我觉得比较重要的规范有这些: 1.设计必须文档化。要将设计思路,详细实现等写入文档,然后经过严格评审通过 后才能进行下一步的工作。这样做乍看起来很花时间,但是从整个项目过程来看,绝对 要比一上来就写代码要节约时间,且这种做法可以使项目处于可控、可实现的状态。 2.代码规范。 a.设计要参数化。比如一开始的设计时钟周期是30ns,复位周期是5个时钟周期,我 们可以这么写: parameter CLK_PERIOD = 30; parameter RST_MUL_TIME = 5; parameter RST_TIME = RST_MUL_TIME * CLK_PERIOD; ... rst_n = 1'b0; # RST_TIME rst_n = 1'b1; ... # CLK_PERIOD/2 clk <= ~clk; 如果在另一个设计中的时钟是40ns,复位周期不变,我们只需对CLK_PERIOD进行重 新例化就行了,从而使得代码更加易于重用。 b.信号命名要规范化。 1) 信号名一律小写,参数用大写。 2) 对于低电平有效的信号结尾要用_n标记,如rst_n。 3) 端口信号排列要统一,一个信号只占一行,最好按输入输出及从哪个模块来到哪 个模块去的关系排列,这样在后期仿真验证找错时后 方便很多。如: module a( //input clk, rst_n, //globle signal wren, rden, avalon_din, //related to avalon bus sdi, //related to serial port input //output data_ready, avalon_dout, //related to avalon bus ... ); 4) 一个模块尽量只用一个时钟,这里的一个模块是指一个module或者是一个en tity。在多时钟域的设计中涉及到跨时钟域的设计中最好有专门一个模块做时钟域的隔 离。这样做可以让综合器综合出更优的结果。 5) 尽量在底层模块上做逻辑,在高层尽量做例化,顶层模块只能做例化,禁止 出现任何胶连逻辑(glue logic),哪怕仅仅是对某个信号取反。理由同上。 6) 在FPGA的设计上禁止用纯组合逻辑产生latch,带D触发器的latch的是允许的 ,比如配置寄存器就是这种类型。 7) 一般来说,进入FPGA的信号必须先同步,以提高系统工作频率(板级)。 所有模块的输出都要寄存器化,以提高工作频率,这对设计做到时序收敛也 是极有好处的。 9) 除非是低功耗设计,不然不要用门控时钟--这会增加设计的不稳定性,在要 用到门控时钟的地方,也要将门控信号用时钟的下降沿 打一拍再输出与时钟相与。 clk_gate_en -------- ---- -----------------|D Q |------------------| \ gate_clk _out | | ---------| )-------- - ------o|> | | | / clk | -------- | ---- ------------------------------------ 10)禁止用计数器分频后的信号做其它模块的时钟,而要用改成时钟使能的方式 ,否则这种时钟满天飞的方式对设计的可靠性极为不利,也大大增加了静态时序分析的 复杂性。如FPGA的输入时钟是25M的,现在系统内部要通过RS232与PC通信,要以rs232_ 1xclk的速率发送数据。 不要这样做: always (posedge rs232_1xclk or negedge rst_n) begin ... end 而要这样做: always (posedge clk_25m or negedge rst_n) begin ... else if ( rs232_1xclk == 1'b1 ) ... end 11)状态机要写成3段式的(这是最标准的写法),即 ... always @(posedge clk or negedge rst_n) ... current_state <= next_state; ... always @ (current_state ...) ... case(current_state) ... s1: if ... next_state = s2; ... ... always @(posedge clk or negedge rst_n) ... else a <= 1'b0; c <= 1'b0; c <= 1'b0; //赋默认值 case(current_state) s1: a <= 1'b0; //由于上面赋了默认值,这里就不用再对b 、c赋值了(b、c在该状态为0,不会产生锁存器,下同) s2: b <= 1'b1; s3: c <= 1'b1; default: ... ... 3.ALTERA参考设计准则 1) Ensure Clock, Preset, and Clear configurations are free of glitch es. 2) Never use Clocks consisting of more than one level of combinatori al logic. 3) Carefully calculate setup times and hold times for multi-Clock sy stems. 4) Synchronize signals between flipflops in multi-Clock systems when the setup and hold time requirements cannot be met. 5) Ensure that Preset and Clear signals do not contain race conditio ns. 6) Ensure that no other internal race conditions exist. 7) Register all glitch-sensitive outputs. Synchronize all asynchronous inputs. 9) Never rely on delay chains for pin-to-pin or internal delays. 10)Do not rely on Power-On Reset. Use a master Reset pin to clear al l flipflops. 11)Remove any stuck states from state machines or synchronous logic. 其它方面的规范一时没有想到,想到了再写,也欢迎大家补充。 ==================================================================================== 时序是设计出来的 我的boss有在华为及峻龙工作的背景,自然就给我们讲了一些华为及altera做逻辑 的一些东西,而我们的项目规范,也基本上是按华为的那一套去做。在工作这几个月中 ,给我感触最深的是华为的那句话:时序是设计出来的,不是仿出来的,更不是湊出来 的。 在我们公司,每一个项目都有很严格的评审,只有评审通过了,才能做下一步的工 作。以做逻辑为例,并不是一上来就开始写代码,而是要先写总体设计方案和逻辑详细 设计方案,要等这些方案评审通过,认为可行了,才能进行编码,一般来说这部分工作 所占的时间要远大于编码的时间。 总体方案主要是涉及模块划分,一级模块和二级模块的接口信号和时序(我们要求 把接口信号的时序波形描述出来)以及将来如何测试设计。在这一级方案中,要保证在 今后的设计中时序要收敛到一级模块(最后是在二级模块中)。什么意思呢?我们在做 详细设计的时候,对于一些信号的时序肯定会做一些调整的,但是这种时序的调整最多 只能波及到本一级模块,而不能影响到整个设计。记得以前在学校做设计的时候,由于 不懂得设计时序,经常因为有一处信号的时序不满足,结果不得不将其它模块信号的时 序也改一下,搞得人很郁闷。 在逻辑详细设计方案这一级的时候,我们已经将各级模块的接口时序都设计出来了 ,各级模块内部是怎么实现的也基本上确定下来了。 由于做到这一点,在编码的时候自然就很快了,最重要的是这样做后可以让设计会 一直处于可控的状态,不会因为某一处的错误引起整个设计从头进行。 版权所有,未经作者允许,禁止用于商业性质的转载;如对此文有疑问或想给作者 提建议请给作者发email:wangdian@tom.com EDA论坛 版权所有,严禁拷贝! 转载请联系bbs@edacn.net ============================================================================================= 如何提高电路工作频率 对于设计者来说,我们当然希望我们设计的电路的工作频率(在这里如无特别说明 ,工作频率指FPGA片内的工作频率)尽量高。我们也经常听说用资源换速度,用流水的 方式可以提高工作频率,这确实是一个很重要的方法,今天我想进一步去分析该如何提 高电路的工作频率。 我们先来分析下是什么影响了电路的工作频率。 我们电路的工作频率主要与寄存器到寄存器之间的信号传播时延及clock skew有关 。在FPGA内部如果时钟走长线的话,clock skew很小,基本上可以忽略, 在这里为了简 单起见,我们只考虑信号的传播时延的因素。 信号的传播时延包括寄存器的开关时延、走线时延、经过组合逻辑的时延(这样划 分或许不是很准确,不过对分析问题来说应该是没有可以的),要提高电路的工作频率 ,我们就要在这三个时延中做文章,使其尽可能的小。 我们先来看开关时延,这个时延是由器件物理特性决定的,我们没有办法去改变, 所以我们只能通过改变走线方式和减少组合逻辑的方法来提高工作频率。 1.通过改变走线的方式减少时延。 以altera的器件为例,我们在quartus里面的timing closure floorplan可以看到有 很多条条块块,我们可以将条条块块按行和按列分,每一个条块代表1个LAB,每个LAB里 有8个或者是10个LE。它们的走线时延的关系如下:同一个LAB中(最快) < 同列或者同 行 < 不同行且不同列。 我们通过给综合器加适当的约束(不可贪心,一般以加5%裕量较为合适,比如电路 工作在100Mhz,则加约束加到105Mhz就可以了,贪心效果反而不好,且极大增加综合时 间)可以将相关的逻辑在布线时尽量布的靠近一点,从而减少走线的时延。(注:约束 的实现不完全是通过改进布局布线方式去提高工作频率,还有其它的改进措施) 2.通过减少组合逻辑的减少时延。 上面我们讲了可以通过加约束来提高工作频率,但是我们在做设计之初可万万不可 将提高工作频率的美好愿望寄托在加约束上,我们要通过合理的设计去避免出现大的组 合逻辑,从而提高电路的工作频率,这才能增强设计的可移植性,才可以使得我们的设 计在移植到另一同等速度级别的芯片时还能使用。 我们知道,目前大部分FPGA都基于4输入LUT的,如果一个输出对应的判断条件大于 四输入的话就要由多个LUT级联才能完成,这样就引入一级组合逻辑时延,我们要减少组 合逻辑,无非就是要输入条件尽可能的少,,这样就可以级联的LUT更少,从而减少了组 合逻辑引起的时延。 我们平时听说的流水就是一种通过切割大的组合逻辑(在其中插入一级或多级D触发 器,从而使寄存器与寄存器之间的组合逻辑减少)来提高工作频率的方法。比如一个32 位的计数器,该计数器的进位链很长,必然会降低工作频率,我们可以将其分割成4位和 8位的计数,每当4位的计数器计到15后触发一次8位的计数器,这样就实现了计数器的切 割,也提高了工作频率。 在状态机中,一般也要将大的计数器移到状态机外,因为计数器这东西一般是经常 是大于4输入的,如果再和其它条件一起做为状态的跳变判据的话,必然会增加LUT的级 联,从而增大组合逻辑。以一个6输入的计数器为例,我们原希望当计数器计到111100后 状态跳变,现在我们将计数器放到状态机外,当计数器计到111011后产生个enable信号 去触发状态跳变,这样就将组合逻辑减少了。 上面说的都是可以通过流水的方式切割组合逻辑的情况,但是有些情况下我们是很 难去切割组合逻辑的,在这些情况下我们又该怎么做呢? 状态机就是这么一个例子,我们不能通过往状态译码组合逻辑中加入流水。如果我 们的设计中有一个几十个状态的状态机,它的状态译码逻辑将非常之巨大,毫无疑问, 这极有可能是设计中的关键路径。那我们该怎么做呢?还是老思路,减少组合逻辑。我 们可以对状态的输出进行分析,对它们进行重新分类,并根据这个重新定义成一组组小 状态机,通过对输入进行选择(case语句)并去触发相应的小状态机,从而实现了将大的 状态机切割成小的状态机。在ATA6的规范中(硬盘的标准),输入的命令大概有20十种 ,每一个命令又对应很多种状态,如果用一个大的状态机(状态套状态)去做那是不可 想象的,我们可以通过case语句去对命令进行译码,并触发相应的状态机,这样做下来 这一个模块的频率就可以跑得比较高了。 总结:提高工作频率的本质就是要减少寄存器到寄存器的时延,最有效的方法就是 避免出现大的组合逻辑,也就是要尽量去满足四输入的条件,减少LUT级联的数量。我们 可以通过加约束、流水、切割状态的方法提高工作频率。 =================================================================================== 做逻辑的难点在于系统结构设计和仿真验证 刚去公司的时候BOSS就和我讲,做逻辑的难点不在于RTL级代码的设计,而在于系统 结构设计和仿真验证方面。目前国内对可综合的设计强调的比较多,而对系统结构设计 和仿真验证方面似乎还没有什么资料,这或许也从一个侧面反映了国内目前的设计水平 还比较低下吧。 以前在学校的时候,总是觉得将RTL级代码做好就行了,仿真验证只是形式而已,所 以对HDL的行为描述方面的语法不屑一顾,对testbench也一直不愿意去学--因为觉得画 波形图方便;对于系统结构设计更是一点都不懂了。 到了公司接触了些东西才发现完全不是这样。 其实在国外,花在仿真验证上的时间和人力大概是花在RTL级代码上的两倍,现在仿 真验证才是百万门级芯片设计的关键路径。仿真验证的难点主要在于怎么建模才能完全 和准确地去验证设计的正确性(主要是提高代码覆盖),在这过程中,验证速度也是很 重要的。 验证说白了也就是怎么产生足够覆盖率的激励源,然后怎么去检测错误。我个人认 为,在仿真验证中,最基本就是要做到验证的自动化。这也是为什么我们要写testbenc h的原因。在我现在的一个设计中,每次跑仿真都要一个小时左右(这其实算小设计)。 由于画波形图无法做到验证自动化,如果用通过画波形图来仿真的话,一是画波形会画 死(特别是对于算法复杂的、输入呈统计分布的设计),二是看波形图要看死,三是检 错率几乎为零。 那么怎么做到自动化呢?我个人的水平还很有限,只能简单地谈下BFM(bus funct ion model,总线功能模型)。 以做一个MAC的core为例(背板是PCI总线),那么我们需要一个MAC_BFM和PCI_BFM 及PCI_BM(PCI behavior model)。MAC_BFM的主要功能是产生以太网帧(激励源),随 机的长度和帧头,内容也是随机的,在发送的同时也将其复制一份到PCI_BM中;PCI_BFM 的功能则是仿PCI总线的行为,比如被测收到了一个正确帧后会向PCI总线发送一个 请求,PCI_BFM则会去响应它,并将数据收进来;PCI_BM的主要功能是将MAC_BFM发送出 来的东西与PCI_BFM接收到的东西做比较,由于它具有了MAC_BFM的发送信息和PCI_BFM的 接收信息,只要设计合理,它总是可以自动地、完全地去测试被测是否工作正常, 从而实现自动检测。 华为在仿真验证方面估计在国内来说是做的比较好的,他们已建立起了比较好的验 证平台,大部分与通信有关的BFM都做好了,听我朋友说,现在他们只需要将被测放 在测试平台中,并配置好参数,就可以自动地检测被测功能的正确与否。 在功能仿真做完后,由于我们做在是FPGA的设计,在设计时已经基本保证RTL级代码 在综合结果和功能仿真结果的一致性,只要综合布局布线后的静态时序报告没有违反时 序约束的警告,就可以下到板子上去调试了。事实上,在华为中兴,他们做FPGA的设计 时也是不做时序仿真的,因为做时序仿真很花时间,且效果也不见得比看静态时序分析 报告好。 当然了,如果是ASIC的设计话,它们的仿真验证的工作量要大一些,在涉及到多时 钟域的设计时,一般还是做后仿的。不过在做后仿之前,也一般会先用形式验证工具和 通过静态时序分序报告去查看有没有违反设计要求的地方,这样做了之后,后仿的工作 量可以小很多。 在HDL语言方面,国内语言很多人都在争论VHDL和verilog哪个好,其实我个人认为 这并没有多大的意义,外面的大公司基本上都是用verilog在做RTL级的代码,所以还是 建议大家尽量学verilog。在仿真方面,由于VHDL在行为级建模方面弱于verilog,用VH DL做仿真模型的很少,当然也不是说verilog就好,其实verilog在复杂的行为级建模方 面的能力也是有限的,比如目前它还不支持数组。在一些复杂的算法设计中,需要高级 语言做抽象才能描述出行为级模型。在国外,仿真建模很多都是用System C和E语言,用 verilog的都算是很落后的了,国内华为的验证平台好像是用System C写。 在系统结构设计方面,由于我做的设计还不够大,还谈不上什么经验,只是觉得必 须要具备一些计算机系统结构的知识才行。划分的首要依据是功能,之后是选择合适的 总线结构、存储结构和处理器架构,通过系统结构划分要使各部分功能模块清晰,易于 实现。这一部分我想过段时间有一点体会了再和大家分享,就先不误导大家了。 作者: sdlj8051 发布日期: 2006-12-28 国人所谓多人用VHDL的原因.由于有一批40-50之间的教授以前从国外回来所指导的国内学生所导致的.市面上有部分书还是这些人写的.因为他写的都是VHDL,学生也学以于用.结果就生产成大家所看到的国内人偏用VHDL为多. 而在实际设计中,由于中国台湾,和国外公司近些进驱国内,成立的一些芯片设计公司中,却很多就是使用Verilog多.如果你是内业人就会知道这一点.还有就,这些公司中,都会要求设计工程会用Verilog来设计,以配合整体的团队.当然由于行业的使用较多的原因,包括现在的一EDA设计部门或公司也将导致Verilog使用的内来人事增多的原因. 现在有很学过VHDL的同事也转为使Verilog了,这是一个现实的情况.无他,只因工作上在需要. 所以,请不要以书店上的书的多少来看国内的市场...,真正在使用的还是实际行业情况.... 作者: sdlj8051 发布日期: 2007-01-06 <> 评价:★★★★★ 褚振勇 翁木云 西安电子科技大学出版社 2002年7月 ISBN 7-5606-1132-X 30.00 介绍altera器件,MaxplusII,QuartusII,FPGAexpress,Leonardo等软件的使用。书中还讨论了数的表示方法,时钟设计等常见问题,本书收录了许多设计实例。 随书送一张光盘,内有altera的数据手册及QuartusII,Leonardo等软件。详细内容参见本书目录。这是一本近两年来比较全面系统介绍PLD/FPGA最新技术发展的书籍。值得推荐! 《CPLD/FPGA的开发与运用》 评价:★★★★★ 徐志军等 电子工业出版社 2002年7月 7-5053-6909-1/TN.1457 29.00元 介绍Xilinx的器件和Foundation的使用。这本后半部分有许多非常有启发意义的例子,例如小数分频原理,实现位同步,CRC校验,MCU与PLD的接口等,对提高PLD的设计水平和拓宽设计思路非常有帮助。详细内容参见本书目录。 值得推荐! 《VHDL 数字系统设计与高层次综合》 评价:暂无 林敏等编著 2002-01 5053-7094-4/TN.1479 33.00元 《数字系统设计与Verilog HDL》 评价:暂无 王金明等编 电子工业出版社 2002-06 5053-6912-1/TN.1460 28.00元 《CPLD 系统设计技术入门与应用》(含光盘) 评价:暂无 黄正瑾等 电子工业出版社 2002-03 5053-7501-6/TN.1563 40.00元 《可编程逻辑设计技术及应用》 评价: 暂无 高书莉 罗朝霞 人民邮电出版社 2001年9月 ISBN 7-115-09624 35 元 本书配有多媒体学习软件(光盘) 《Verilog HDL 硬件描述语言》 评价:暂无 (美)贝斯克(Bhasker,J.) 机械工业出版社 2001-7 7-111-07890-X 19。00 《VHDL与数字电路设计》 评价:★★★★★ 卢毅 赖杰 科学出版社 2001年4月 7-03-009042-X/TP.1477 49.00 这本书由简单的例子入手,由浅入深的介绍VHDL常见语法。整本书着重于实际应用,不去深纠复杂和冷僻的语法,风格轻松活泼,阅读时不会觉得枯燥,联想到国内大多数呆板枯燥的VHDL读物,不得不佩服两位台湾作家的功力。此书是目前我们见到的最优秀的VHDL入门书籍之一,本书附一张光盘,收录了书中提到的所有例子。详情见本书目录 值得推荐! 《用 VHDL 设计电子线路》 评价:暂无 边计年等翻译 清华大学出版社 2001-4 7-302-03932-1 42.00 《可编程逻辑器件原理、开发与应用》 评价:暂无 赵曙光 西安电子科技大学出版社 2001-04 ISBN 7-5606-0900-7 22.00 元 《VHDL语言100例详解——北京理工大学ASIC研究所》 评价:★★★ 北京理工大学ASIC研究所 清华大学出版社,2001年4月版 7-900625-02- 52.00元 里面有不VHDL的例子(但比较简单),对很多概念的理解都有帮助。不过许多例子只适合仿真,不能用于PLD实现,这一点要千万注意。书中自带了一张光盘,有一个叫Talent的VHDL模拟器。 《VHDL硬件描述语言与数字逻设计》 评价:★★★★ 侯伯亨 西安电子科技大学出版社 2001-04 ISBN 7-5606-0534-6 20.80 元 已Altera的产品为载体,介绍VHDL语言。基本概念清楚,比较适合初学者。 《VHDL 程序设计》(第二版) 评价:暂无 曾繁泰等 清华大学出版社 2001-3 7-302-03896-1 37.00 有网友反映本书的一个例子有错误 《数字系统设计与PLD应用技术》 评价:暂无 蒋璇 电子工业出版社 2001-02 5053-6165-1/TP.3305 25.00元 《VHDL入门与应用》 评价:★★★ 陈雪松 滕立中 人民邮电出版社 2000.12 ISBN7-115-08950-7/TP.1943 RMB32.00 基本概念清楚,结合实例讲解,例子较多,适合初学者阅读,书中还介绍了MaxplusII和Quartus软件。 《VHDL编程与仿真》 王毅平 张振荣 人民邮电出版社 2000年7月 ISBN 7-115-08641 30 元 《CPLD技术及应用》 评价:★★★★ 宋万杰等 西安电子科技大学出版社 2000-06 ISBN7-5606-0769-1/TP.0395 RMB25.00 介绍Altera软硬件产品,前半部以翻译Databook为主,后半部的提高篇是作者经验的总结,值得一看 《大规模可编程逻辑器件及其应用》 评价:★★★ 徐志军等 电子科技大学出版社 2000年11月 ISDN7-81065-042-4/TP.266 21.00元 印刷质量略感粗糙,但书写的比较全面和实用,同时介绍Altera,Xilinx,Lattice/Vantis三家公司的硬件和开发软件,对于全面了解市场上的PLD/FPGA产品很有帮助 《数字电路设计与Verllog HDL》评价:暂无 张亮 人民邮电出版社 2000年10月 ISBN 7-115-08770 35 元 《用VHDL设计电子线路》 评价:暂无 乔长阁 薛宏熙 翻译 清华大学出版社 2000.8 ISBN7-302-03932-1/TP.2300 RMB42.00 比较详细和系统,有不少例子,本书的一个特点是每章都有练习题和部分答案 《PLD器件与EDA技术》 评价:★★★ 李冬梅 北京广播学院出版社 2000年1月 ISBN 7-81004-870-8/G.509 22.00元 以Altera公司产品和软件为主,分四章介绍了PLD结构,MaxplusII,AHDL,VHDL等,其中VHDL部分很简洁,只介绍最基本语法,一看即懂,是入门性读物。 《FPGA原理及应用》 评价:★★★ 赵雅兴 天津大学出版社 1999 RMB19.00 介绍Altera软硬件产品,软件部分写的比较清楚,硬件部分有些内容略旧,AHDL讲的非常详细,是学习AHDL的好教材 《VHDL硬件描述语言与数字逻辑电路设计——电子工程师必备知识》评价:★★★★ 西电出版社,1999年修订版 书名虽然是长了一点,但是是一本好书,尤其是修订版,改正了第一版不少的错误,值得一读。 《可编程逻辑系统的VHDL设计技术》 评价:★★★★★ Kevin Skahill 东南大学出版社1998.9 ISBN7-81050-379-0/TP.56 RMB32.00 以Cypress的PLD产品为载体,对可编程逻辑器件的基本概念及原理讲的很清楚,由浅入深的讲述了VHDL,是一很好的VHDL和可编程逻辑器件入门和进阶教材。值得推荐。 《VHDL简明教程》 评价:★ 王小军 清华大学出版社 1997.10 ISBN7-302-02647-5/TP.1365 RMB19.50 书不厚,是比较简明的VHDL教程,但基本概念讲述不多,初学者初次阅读可能不得要领 《ALTERA可编程器件及其应用》 评价:★★★★ 刘宝琴等 清华大学出版社 1995 ISBN 7-302-01804-9/TP.803 RMB40.00 最早介绍Altera产品的中文书之一,内容严谨,以翻译为主,关于如何消除毛刺,如何提高设计的稳定性讲的比较好 作者: sdlj8051 发布日期: 2007-01-06 这就比较多了,象如Cadence的NC-VHDL、NC-Verilog、Verilog-XL;Altera的Maxplus2和Quartus2的自带仿真器;Mentor的Modelsim;Xilinx的foundition自带的仿真器;Aldec的Active;SYNOPSYS的VCS、VSS等。 不过我认为假如是用工作站的话,用NC-VHDL、NC-Verilog、Verilog-XL都是不错的选择;但是用PC的话专用仿真工具Modelsim和Active都不错;在国内Modelsim用的更多一点吧!就我自己的感觉来说;它的前仿和后仿都不错,而且好上手。 |
文章评论(0条评论)
登录后参与讨论