文档详情

哈工大veriog大作业.doc

发布:2016-10-07约1.78万字共25页下载文档
文本预览下载声明
Harbin Institute of Technology Verilog HDL ModelSim仿真设计大作业 题 目: 序列检测器设计与仿真 院 系: 指导教师: 付方发 日 期: 2014.06.14 哈尔滨工业大学 目录 设计题目与亮点综述……………………………………………………. 2 设计题目……………………………………………………………………… 2 设计特点……………………………………………………………………… 2 规范设计…………………………………………………………………. 2 设计思路……………………………………………………………………… 2 规范叙述……………………………………………………………………… 3 代码编写…………………………………………………………………. 3 仿真验证…………………………………………………………………. 6 测试内容……………………………………………………………………… 6 Testbench代码与仿真输出………………………………………………… 7 常规测试代码……………………………………………………………… 7 常规测试仿真波形………………………………………………………… 8 常规测试显示输出………………………………………………………… 8 异常测试代码……………………………………………………………… 15 异常测试仿真波形………………………………………………………… 17 异常测试显示输出………………………………………………………… 17 分析与结论…………………………………………………………………… 24 反思与心得………………………………………………………………. 24 1 设计题目与亮点综述 1.1 设计题目 (英文) Try realizing the function of a shift register as below: At the positive edge of clock, detect the input port to judge if “1001” sequence appears low level asynchronic reset 4-cycle valid indication (中文翻译) 试实现如下移位寄存器的功能: 在时钟上升沿,检测输入端口并判断是否出现“1001”序列 低电平异步复位 四周期有效检验 1.2 设计特点 使用Verilog HDL,基于ModelSim SE 10.1a实现了一个具有上述功能的序列检测器,并进行了代码编写及Testbench测试激励验证、数据流图输出。 该检测器具有以下特点: 可综合的,采用门级与RTL级描述编写的语句 采用模块化规范设计代码 配置有正确状态检测的有限状态机 根据情况使用阻塞语句与非阻塞语句 考虑到多种情况的激励块Testbench 2 规范设计 2.1 设计思路 移位寄存器是本检测器的核心模块,同时存在随时钟上升沿进行不断检测的分析模块。开始我使用了行为级描述,在反复试验充分理解它的结构后,我采用了可综合的方式用门级描述写出了电路代码;随后开始考虑4周期有效检验的问题,最终使用了定时器与标志位结合的方式,成功实现了这一细节功能,完成了本设计题目。 2.2 规范叙述 本序列检测器由如下几大模块构成: 构成4位移位寄存器的D触发器单元DFF: 1.具有同步上升沿置位功能,上升沿到来时,输出端口q的值将等于输入端口d; 2.具有异步下降沿复位功能,复位后q=0。 由门电路构成的序列检测模块seqscan(Sequence Scanner): 1.是一个组合逻辑电路,具有4位端口,使用4位寄存器[3:0]q保存序列,使用4位运算寄存器[3:0]l保存各位检测结果,以达到分别检测“1001”的各位的目的。 2.检测“1”的方法是,将“1”电平与该端口做与运算,如该位是“1”,则输出也应是“1”,并保存在运算寄存器l的相应位; 3.检测“0”的方法是将其取反,如该位是“0”,则输出为“1”, 并保存在运算寄存器l的相应位; 4.检测整个4位序列的方法是,将运算寄存器l的各位做与运算,如四位都为“1”,则输出也为“1”,并作为状态标志位输出seq的值。 检测器的主模块shiftdtct(Shift Detector): 1.单次或者多次调用上述两个模块,模块间共用时钟信号、复位信号、移位寄存器q。 2.声明了两个参量SEQUENCE_1与SEQUENCE_0,值分别为1’b1和1’b0,用以控制这个状态机,请参照第3部分的代码; 3.声明了检验计数器count,用来记录检测
显示全部
相似文档