veriloghdl数字设计与综合答案

上传人:枫** 文档编号:503743350 上传时间:2023-07-19 格式:DOC 页数:16 大小:154.50KB
返回 下载 相关 举报
veriloghdl数字设计与综合答案_第1页
第1页 / 共16页
veriloghdl数字设计与综合答案_第2页
第2页 / 共16页
veriloghdl数字设计与综合答案_第3页
第3页 / 共16页
veriloghdl数字设计与综合答案_第4页
第4页 / 共16页
veriloghdl数字设计与综合答案_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《veriloghdl数字设计与综合答案》由会员分享,可在线阅读,更多相关《veriloghdl数字设计与综合答案(16页珍藏版)》请在金锄头文库上搜索。

1、veriloghdl 数字设计与综合答案【篇一: verilog 习题选答】txt 答:fpga 中,由程序来转换为可烧录的二进制码。 ic 设计中,主要是由 design-compiler 来实现。 2能否说模块相当于电路图中的功能模块,端口相当于功能模块的 3assign 声明语句 ,实例元件 ,always 块,这三类描述中哪一种直接与电路结构有关 ?4由连续赋值语句( assign )赋值的变量能否是 reg 型的?答:赋值运算分为连续赋值和过程赋值两种。(1) 连续赋值 连续赋值语句只能对线网型变量进行赋值,而不能对寄存器型变量进行 赋值,基本的语法结构为: assign #( 延时

2、量) 线网型变量名 = 赋值表达式; 一个线网型变量一旦被连续赋值语句赋值后,赋值语句右端赋值表达式的值将持续对赋值变量产生连续驱动,只要右端表达式任一操作数的值发生变化,就会立即触发对赋值变量的更新操作。 (2) 过程赋值 过程赋值主要用于两种结构化模块( initial 和always )中的赋值语句。 在过程块中只能使用过程赋值语句,不能在过程块中出现连续赋值语句,同时过程赋值语句也只能用在过程赋值模块中。基本的语法结构为:被赋值变量赋值操作符赋值表达式,其中,赋值操作符是“=”或“=,”它分别代表了阻塞赋值和非阻塞赋值类型。过程赋值语句只能对寄存器类型的变量进行赋值,经过赋值后,上面这

3、些变量的值将保持不变,直到另一条赋值语句对变量重新赋值为止。 5如果都不带时间延迟、阻塞和非阻塞赋值有何不同?说明它们的不同点? 答:代码 1:module test(a,b,c,d,y); / 两个与逻辑, 1 个或逻辑 input a,b,c,d; output y;reg y,tmp1,tmp2; always (a or b or c or d)/ y 的值并不等于当前的 tmp1 ,tmp2相或的值,而是等于上 begin 一次运算时 tmp1 ,tmp2 相或的值。 相当于一个延迟,在第 2 tmp1 = ab; 次 always 模块运行完后得到 想要的 y 值tmp2 = cd

4、;y = tmp1|tmp2;endendmodule代码 2: 基本与代码 1 一样,只是在 always 的敏感列表中加入了temp1 ,temp2module test(a,b,c,d,y); input a,b,c,d; output y;reg y,tmp1,tmp2;always (a or b or c or d or tmp1 or tmp2)/ 与代码一不同, begintmp1 = ab; tmp2 = cd;y = tmp1|tmp2; end endmodule代码 3:在代码 2 中加进参数 j,来帮助判断 always 模块的运行次数:module test(a,b

5、,c,d,y); input a,b,c,d; output y;reg y,tmp1,tmp2; reg 8:0j=0;always (a or b or c or d or tmp1 or tmp2) beginj = j + 1;#5 / 这里加了一个延时,方便分析 tmp1 = ab; 延迟消失了。tmp2 = cd;y = tmp1|tmp2;end endmodule 首先 j 从 0 增至 1,为阻塞赋值,然后延迟 5,开始下面的非阻塞赋值,然后 temp1 ,temp2 得到了新的值,但是 y 还是并没有更新, 而是和代码一中一样保持。第一次 always 执行完毕。由于 te

6、mp1的值得到了更新,随即再次运行 always 模块, j 从 1 增加到 2,然后延迟 5,而此时 a,b,c,d 的值没有变,因此 temp1 ,temp2 没有变化,但是 y 却得到了第一次 temp1 ,temp2 变化后相或的值,发生跳变。 由上可以看出,本来只要 1 次就能完成的组合逻辑,由于采用了非阻塞赋值,仿真器不得不两次进入 always 模块,因此可以遵循这样的原则,写组合逻辑的时候, always 中要用阻塞赋值,写时序逻辑的时候, always 模块中要用非阻塞赋值。(当然不排除为了特殊的目的不遵循这个建议)6defparam 命令的使用,模块实例化和模块引用 在一个

7、模块中改变另一个模块的参数时,需要使用 defparam 命令,高层模块可以改变低层模块用 parameter 定义的值,改变低层模块的参数值有以下方式: (1) defparam 层次路径 = 改变后的值 (见书本 32 页) (2) 实例化时传递参数模块名 #(改变后参数的值) 实例名 (输入输出) 可以利用 defparam 命令定义参数,语法结构为: 模块名 例化模块名 (输入输出); defparam 例化模块名 . 参数名 =value ; 模块实例引用时参数的传递还可以利用特殊符号 “#”,语法结构为: 模块名 # (改变后的参数值)例化模块名 (输入输出端口)7同步清零 d 触

8、发器和异步清零 d 触发器module dff_tongbu (q ,d,clk ,clr) ;/同步清零受时钟控制input d ,clk ,clr ;output q ;reg q ;always (negedge clock) if (clr) q=0 ; else q=d ; endmodulemodule dff_yibu(q ,d,clk ,clr) ;/异步清零不受时钟控制input d ,clk ,clr ;output q ;reg q ; always (clr)if (clr) q=0 ;else q=d ;使用同步清零 d 触发器输出一个周期为 10 个时间单位的时钟信

9、号:8. 敏感变量的描述完备性 verilog 中,用 always 模块设计组合逻辑电路时,在赋值表达式右端参与赋值的所有信号都必须在 always 敏感列表中列出。如果在 赋值表达式右端引用了敏感列表中没有列出的信号,在综合时会为 没有列出的信号隐含地产生一个透明锁存器,这是因为该信号的变 化不会立即引起所赋值的变化,而必须要等到敏感列表中的某个信号发生变化时,它的作用才表现出来,相当于存在一个透明锁存器,把该信号的变化暂存起来。【篇二: fpga 习题集及参考答案】一、 填空题1. 一般把 eda 技术的发展分为()个阶段。2. fpga/cpld 有如下设计步骤:原理图 /hdl 文本

10、输入、适配、功能仿真、综合、编程下载、硬件测试,正确的设计顺序是()。3. 在 eda 工具中,能完成在目标系统器件上布局布线的软件称为()。4. 设计输入完成之后,应立即对文件进行()。5. 基于硬件描述语言的数字系统设计目前最常用的设计方法称为()设计法。6. 将硬件描述语言转化为硬件电路的过程称为()。 7. ip 核在 eda 技术和开发中具有十分重要的地位,以 hdl 方式提供的 ip 被称为()ip 。8. soc 系统又称为()系统。 sopc 系统又称为()系统。9. 将硬核和固核作为() ip 核,而软核作为() ip 核。 10. ip 核在 eda 技术和开发中具有十分重

11、要的地位,以 hdl 方式提供的 ip 被称为()。11. hdl 综合器就是逻辑综合的过程,把可综合的 vhdl/verilog hdl转化成硬件电路时,包含了三个过程,分别是()、()、()。12. eda 软件工具大致可以由五个模块构成,分别是设计输入编辑器、()、()、()和()。13. 按仿真电路描述级别的不同, hdl 仿真器分为()仿真、()仿真、()仿真和门级仿真。14. 系统仿真分为()、()和()。15. ()仿真是对设计输入的规范检测,这种仿真通过只能表示编译通过,说明设计满足一定的语法规范,但不能保证设计功能满足期望。16. ()仿真是对综合后的网表进行的仿真,它验证设

12、计模块的基本逻辑功能,但不带有布局布线后产生的时序信息,是理想情况下的验证。17. ()仿真是布局布线后进行的后仿真,仿真时考虑了布线延时,和芯片实际的工作情况更加接近。18. 目前 xilinx 公司生产的 fpga 主要采用了()配置存储器结构。19. 描述测试信号的变化和测试工程的模块叫做()。20. 现代电子系统设计领域中的 eda 采用()的设计方法。21. 有限状态机可分为()状态机和()状态机两类。22. verilog hdl 中的端口类型有三类: ()、()、输入 /输出端口。23. verilog hdl 常用两大数据类型: ()、()。24. fpga / cpld 设计

13、流程为:原理图 /hdl 文本输入 () 综合 适配 () 编程下载 硬件测试。25. ()是描述数据在寄存器之间流动和处理的过程。26. 连续赋值常用于数据流行为建模,常以()为关键词。27. verilog hdl 有两种过程赋值方式:()和()。28. timescale 1ns/100ps 中 1ns 代表(), 100ps 代表()。29. 未来的集成电路技术的发展趋势,把整上系统集成在一个芯片上去,这种芯片被称为()。30. 从互连结构上可将 pld 分为确定型和统计型两类。确定型结构的代表是(),统计型结构代表是() 。31. cpld 是由()的结构演变而来的。32. fpga

14、 的核心部分是(),由内部逻辑块矩阵和周围 i/o 接口模块组成。33. 把基于电可擦除存储单元的 eeprom 或 flash 技术的 cpld 的在系统下载称为(),这个过程就是把编程数据写入 e2cmos 单元阵列的过程。34. 根据配置数据线数,器件配置可分为并行配置和串行配置两类。串行配置以()为单位将配置数据载人可编程器件:而并行配置一般以()为单位向可编程器件载入配置数据。35. fpga 的配置模式有从动串行模式、从动并行模式、主动串行模式、主动并行模式、以及()模式。36. 可编程逻辑器件的配置方式分为()和()两类。37. veriloghdl 是在()年正式推出的。38.

15、 在 verilog hdl 的 always 块本身是()语句。39. verilog hdl 中的 always 语句中的语句是()语句。 40. verilog hdl 提供了标准的系统任务,用于常用的操作。如显示、文件输入 /输出等,系统函数前都有一个标志符 ()加以确认。41. verilog hdl 很好地支持了 “自顶向下 ”的设计理念,即,复杂任务分解成的小模块完成后,可以通过()的方式,将系统组装起来。42. verilog hdl 模块分为两种类型:一种是()模块,即,描述某种电路系统结构,功能,以综合或者提供仿真模型为设计目的;另一种是 ()模块,即,为功能模块的测试提供信号源激励、输出数据监测。43. verilog 语言中,标识符可以是任意一组字母、数字、()符号和下划线符号的组合。44. state ,state ,这两个标识符是()同。45. assign c=ab? a : b 中,若 a=3,b=2, 则 c= ();若 a=2,b=3, 则

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 习题/试题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号