文档详情

明德扬点拨FPGA高手进阶 第四章 modelsim技巧 4.7 modelsim一级练习2.pdf

发布:2017-06-01约1.51千字共3页下载文档
文本预览下载声明
4.7 modelsim 一级练习2 4.7.1 练习要求 请下载工程,该工程包括测试代码 test_modelsim5.v 和设计代码 modelsim5.v。 下载地址: /cH2AWxjqZr7wK 访问密码 35c1 modelsim5.v 实现如下功能: 1. 实现秒表计时功能。 2. 复位时,数码管显示 0. 3. 数码管依次从 0 变到 9 显示。 4. 复位时 conlig 等于 0 ,复位后,conlig 最低比特为 0 ,其他为1. 信号名 I/O 位宽 说明 clk I 1 系统工作时钟 50M rst_n I 1 系统复位信号,低电平有效 dataout O 数码管显示信号,共 8 位。由低到高,分 别表示数码管的 dp,a,b,c,d,e,f,g,点。当该 8 比特为 0 时,表示点亮相应位置;为 1 时 熄灭。 conlig O 8 数码管的位选输出。对应的比特为 1 时不 被选中,为 0 时被选中。 但该代码有错误,请将代码和已经编写好的测试文件,加到 modelsim 工程中 仿真,找出错误。 4.7.2 验收标准 观察信号波形,找到错误并改正,使其满足所需要的功能。 4.7.3 练习答案 波形要模拟真实的十几秒时间,可以发现 modelsim 要运行非常久,才能产生这十 几秒的波形。实际上,我们的仿真验证时间通常都是微秒和毫秒级的。 本代码的错误在于,dataout 在显示 9 后,有一个时钟周期输出的值为 0。经常追 踪发现是由于内部信号 miao=10 引起的,再分析产生 miao 的always 代码,可以这个 计数器结束条件不正确。按照我们规范,应该修改如下: always @(posedge clk or negedge rst_n)begin if(!rst_n) miao=0; else begin if(count==26begin if(miao==9) miao= 0; else miao=miao+1; end else begin miao=miao; end end end 更加详细的查找定位过程,请查看明德扬的配套视频。 以上文章出自明德扬点拨FPGA 高手进阶,版权归明德扬所有,如需转载,请注明明德扬, 谢谢!
显示全部
相似文档