硬件描述语言verilog简答题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.assign always initial区别
always过程反复执行其中的块语句,而initial过程语句只执行一次。
assign声明用于描述组合逻辑。在always语句中,“=”表示阻塞赋值,<=表示非阻塞赋值
Assign语句应该在always语句外部使用,而且是并行计算值。在组合逻辑中使用阻塞式赋值,而在时序逻辑中需要使用非阻塞式赋值。initial语句在模拟开始时执行体内的语句,
2.触发器,锁存器,寄存器区别
触发器:包括锁存器和寄存器。锁存器:电平触发的存储单元,在有效电平时间里可以多次改变数据.优点是占触发器资源少,缺点是容易产生毛刺。在FPGA中用的很少,因为FPGA中触发器的资源非常丰富。寄存器:边沿触发的存储单元,在上升或下降沿数据变化,一个周期里只能变化一次。
3.测试程序的作用:
测试程序是用于测试其他待测试模块的硬件描述语言模块。此程序包含了向待测试模块提供输入的语句,已测试是否产生了理想的正确输出。输入和期待的输出模式成为测试向量。
4时序图定义:
答:时序图是显示了缓冲器的一个输入改变和随后输出的改变所产生的延迟的图,她描绘了输入改变时缓冲器电路的瞬间响应。
5.两种时序电路,(怎么样判断同步时序电路)
同步时序电路:如果一个由多个元件连接构成电路是同步时序电路,需满足:每一个电路元件是寄存器或组合电路,至少有一个电路元件是寄存器
所有寄存器接收同一个时钟信号,每一个环路至少包含一个寄存器
非同步时序电路称为异步电路。
6.什么是组合电路(组合电路的判断条件),什么是时序电路
答:组合电路的输出仅仅取决输入的值。时序电路的输出取决于当前的输入值和之前的输入值。组合电路没有记忆,时序电路是有记忆的。
如果一个电路由互相连接的电路组件构成,在满足以下条件时,它就是组合电路。
一,每一个电路组件本身都是组合电路
二,每一个电路节点或者是一个电路的输入,或者仅仅连接到一个电路组件的一个输出端口。
三,电路不能包含回路:进过电路的每条路径最多只能经过每个电路一次。
7.MIPS体系结构设计的四个准备/指令格式设计原则4条:
简单设计有助于规整化
加快常见功能
越小的设计越快
好的设计需要好的折中
8.三种类型的存储器阵列:
动态随机存储器(DRAM):以电容的充电和放电来存储位
静态随机存储器(SRAM):不需要刷新存储位
只读存储器(ROM):以晶体管的存在与否来存储一个位
9.传输延迟:是输入改变直到对应的一个或多个输出达到它们最终的值所经历的最长时间
最小延迟:当一个输入发生变化到任何一个输出开始改变的最短时间。
组和电路的传输延迟是关键路径上每一个元件的传输延迟之和。
最小延迟是最短路径每个元件的最小延迟之和。
10.数字电路:是一个包含离散电压值输入和输出的模块。它的规范描述了模块实现的功能和时序。
11. 设计有限状态机的步骤:
确定输入和输出;画状态转换图;对于moore型状态机—写出状态转换表—写出输出表
对于mealy型状态机---写出组合的状态转换和输出表;选择状态编码
为下一个状态写出布尔表达式;画出电路草图
1.有限状态机的三个部分
答:有限状态机包含下一状态的逻辑和输出逻辑以及一组用于存储状态的寄存器。
有限状态机分为 moore型和mealy型
Moore型状态机输出只取决于系统的状态
Mealy型状态机输出取决于输入和当前的状态
2.同步时序电路的动态约束
答:动态约束是指同步时序电路的输入在时钟沿附近的建立和维持孔径时间内必须保持稳定。
建立时间约束
保持时间约束
3.延迟、吞吐量区别空间并行、时间并行区别
这样多个任务就可以在同一时间一起处理。
时间并行是值一个任务呗分成多个阶段,类似于流水线装配线。
2.verilog 行为模型、结构模型模拟、综合区别
行为模型描述一个模块做什么。
结构模型用层次化方法描述一个模块怎样由更简单的部件构造
模拟:在模拟阶段,在模块上加入输入,并检查输出,以验证模块的操作是
否正确
综合:把行为级描述的模块通过逻辑网表自动转换为门级形式的模块的称为综合。
四,最小项就是有若干积(“与”构成了最小项,真值表相与取值为1的)的和(或)构成。是与或式。
五,最大项就是有若干和(“或”构成了最大项,真值表中相或取0的)的积(与)。是或与式
1)如何在Modelsim中设置断点进行断点调试?如何在Modelsim中观察变
量的值?
运行菜单View->Files,双击HDL文件,打开了代码窗口。点击行号的右侧,就出现了一个红色的断点。当然很多行是不能加断点的。似乎行号为红色,就表示可以加断点。断点可以disable,enable和删除。加了断点后,然后重新运行仿真。运行到断点时就会停止,这时可以在Objects窗口观察各个信号的值。可以用step按钮进行单步调试。
2)如何在Modelsim中创建自己的资源库?如何引用第三方资源库?
多库指在工作库的基础上又增加了一个资源库。资源库的作用一般有组织管理文件;访问第三方IP;to share common parts between simulations。
创建一个资源库。
找到主modelsim.ini文件。将其备份。改变其属性使其属性不再是只读。
打开此文件,在[Library]部分输入资源库链接路径保存文件,并将其属性改回只读。
先创建一个文件夹命名为resource_library,将源文件拷贝进去。(这个例子的资源库很简单,只包含一个源文件,不过此例子旨在介绍多库的使用流程)。再创建一个文件夹,命名为testbench,将测试文件拷贝进去。我们现在建了两个文件夹(目录),来模仿第三方提供的资源库。
打开Modelsim,选择File>Change Directory,将当前目录设置为resource_library。
选择File > New > Library创建资源库,库名为parts_lib。创建完后,这个库将出现在库窗口。
编译资源库里的源文件。
选择File>Change Directory,将当前目录设置为testbench。
创建工程。
创建工程,将测试文件添加到其中,对其进行编译。
然后对其进行优化vopt +acc test_counter -o testcounter_opt,此时如果是Verilog则会出错,是VHDL则会有警告,原因是此时只有测试文件而没有对应的源文件。用quit -sim退出仿真。