摘要:分频器的设计 内容: 通用分频器; 偶分频; 奇分频; 半数分频。 实现: 通用分频器 分频公式 N是分频系数。 通用分频器的实现方法:应用N进制计数器,将要被分频的信号作为计数器的时钟脉冲,分频信号作为输出。取M值在计数到0至N-1期间,0-M设置输出为低,M-N-1设置为高。M可调。 //通用N
阅读全文
摘要:在QP里调用Modelsim需要先设置仿真参数和工具路径。 在QP调用modelsim的步骤 1. 在QP里建立工程,代码,分析综合;2. 添加testbench代码,processing-start-start testbench template writer,修改测试代码。3. 在assigm
阅读全文
摘要:实验2 基于加法器的设计 设计7段数码管的驱动电路,4位输入,7段输出,使数码管能显示16进制的16个字符,注意DE10-Lite的数码管是共阳连接. 直接用case语句写出查找表.代码如下: module seg7(data_in,data_out); input [3:0]data_in; ou
阅读全文
摘要:实验1 在MAX10 FPGA上实现组合逻辑 实验前的准备工作:参照讲义步骤安装Quartus,Modelsim和System Builder。阅读材料:1)推荐的文件组织形式;2)Verilog 1:概述和Verilog 2:重点是assign语句。 参考资源:友晶网站上的关于DE10-Lite实
阅读全文
摘要:用反函数来验证模块功能 通常编写testbench观察仿真波形的方法,对于简单直观的电路功能验证来说很方便,但当电路输出比较复杂时,就比较无趣.这里以七段数码管的译码电路为例,编写了一个发函数功能的模块来验证其功能.所谓反函数就是把设计模块的输入输出端颠倒一下,衔接在设计模块后面,然后验证输入和输出
阅读全文
摘要:DE10-Lite输入/出高/低电平说明 DE10-Lite实验板上有一些设备可以输入/出高/低电平,说明如下: HEX 7-segment LED displays (active low)共阳极 On — "0" Off — "1" LEDR LED displays (active high)
阅读全文
摘要:构建和调试电路的技巧 构建电路的技巧 要使电路能够工作的最快的方式就是深思熟虑,拿起纸笔,画波形,考虑测试用例,各种模式.甚至在设计输入到电脑之前就非常确定电路的每一部分是如何工作的.这样,就可以掌控全局,做的又快又好. 若有可能,尽量分模块检查电路的功能,构建子电路,先测试再级联. 实验需要花大量
阅读全文
摘要:Modelsim使用指南 本文讲述Modelsim的使用步骤. 添加一个测试文件,比如modulename.v。 编辑这个Verilog模块。 为了方便讲述,顶层模块名命名为“top”。 Modelsim的参考文档可从:Help > PDF Documentation >选择下载。 1. 设置 如同
阅读全文
摘要:1. 4*4键盘的结构为4行4列,共16个交叉点,代表16个按键,行编号为A,列编号为B。按下某键后,辨别和读取键值一般采用如下方法: 向A端口扫描输入一组只含有一个0的4位数据,若有按键按下,B端口会输出相应的数据,然后结合A、B端口的数据,判断按键的位置。 2. 整个键盘扫描检测,设计思想还是编
阅读全文
摘要:2. 汽车尾灯控制器 2.1 实验要求:设计一个汽车尾灯控制电路。 (1)功能:汽车左右两侧各有3个尾灯,要求控制尾灯按如下规则亮灭。 汽车沿直线行驶时,两侧指示灯全灭。 右转弯时,左侧的指示灯全灭,右侧的指示灯按000,100,010,001,000循环; 左转弯时,右侧的指示灯全灭,左侧的指示灯
阅读全文
摘要:3. 状态机A/D采样控制电路 3.1 目标:用状态机控制ADC0809实现数据采集。 3.2 ADC0809简介 (1)ADC0809是8位A/D转换器,片内有8路模拟开关,可控制8个 模拟量中 的1个进入转换器中。完成一次转换的时间约100us。含锁存控制的8个 多路开关,输出有三态缓冲器控制,
阅读全文
摘要:8-1 流水灯控制器 1. 实验要求:采用有限状态机设计彩灯控制器,控制LED灯实现预想的演示花型。 2. 实验内容: (1)功能:设计彩灯控制器,要求控制18个LED灯实现如下的演示花型: 从两边往中间逐个亮,全灭; 从中间往两头逐个亮,全灭; 循环执行上述过程; 2.1 流水灯控制器用两个alw
阅读全文
摘要:4. 用状态机设计交通灯控制器,设计要求:A路和B路,每路都有红、黄、绿三种灯,持续时间为:红灯45s,黄灯5s,绿灯40秒。 A路和B路灯的状态转换是: (1) A红,B绿(持续时间40s); (2) A红,B黄(持续时间5s); (1) A绿,B红(持续时间40s); (1) A绿,B黄(持续时
阅读全文
摘要:3. 编写一个8路彩灯控制程序,要求彩灯有以下3种演示花型。 (1) 8路彩灯同时亮灭; (2) 从左至右逐个亮(每次只有1路亮); (3) 8路彩灯每次4路灯亮,4路灯灭,且亮灭相间,交替亮灭。 在演示过程中,只有当一种花型演示完毕才能转向其他演示花型。 3.1 设计思路:8个灯,3种花型,顺序展
阅读全文
摘要:2. 设计一个“1001”串行数据检测器,其输入、输出如下: 输入x:000 101 010 010 011 101 001 110 101 输出z:000 000 000 010 010 000 001 000 000 (1)设计思路:同前,规划状态,无它。 (2)1001序列检测电路源码: 1
阅读全文
摘要:1. 设计一个“111”串行数据检测器。要求是:当检测到连续3个或3个以上的“1”时输出为1,其他输入情况下输出为0。 (1)思路分析:参照本章前文的范例,如第224页的【例8.8】,很容易模仿或推断出这个FSM共有4个状态,分别为: 初始化时收到0的s0,然后收到1的s1,连续收到两个1的s2,连
阅读全文
摘要:8自动仿真简介前面的课程主要讲使用ModelSim的交互模式:通过图形界面或主窗口的命令行一条条的执行单一的命令。当需要完成重复的任务时,可用DO文件提高效率。 DO文件是一次执行多条命令的脚本。这个脚本可以像带有相关参数的一系列ModelSim命令一样简单,或者是带有变量,执行条件等等的Tcl程序。可在GUI里或系统命令提示符后执行Do文件。 注意: 本课假设你已经添加<install_dir>/modeltech/<platform>到你的环境变量的PATH。否则,要指定工具(如,vlib,vmap, vlog,vcom,和vsim)的绝对路径。 扩展阅读用户手册:
阅读全文
摘要:7查看和初始化内存简介本课将学习如何查看和初始化内存。把以下作为内存定义并列出: l 寄存器、线变量和标准逻辑数列 l 整数数列 l VHDL里除了标准逻辑之外的列举类型的信号元数列 本课所用的设计文件安装时自带的范例。 扩展阅读用户手册:Memory and Memory Data Windows。 命令参考:mem display,mem load, mem save, and radix。 编译并加载设计1. 创建一个新目录并拷贝所用的文件。 从如下路径拷贝所有的文件。 <install_dir>/examples/tutorials/verilog/memory to th
阅读全文
摘要:6分析波形简介Wave窗口可查看仿真结果。它分为几个区域(图6-1)。各个区的大小、位置可重置。 扩展阅读用户手册:Wave Window和Recording Simulation Results With Datasets 加载设计本课用的范例,类似前面基本仿真的设计。 1. 如果刚完成前面的课程,ModelSim就已经打开了,否则,启动Modelsim。 2. 加载设计。 a) 选择File > Change Directory并打开在基本仿真那课里创建的目录。 work应该已经存在了。 b) 单击work库前的‘+’并双击test_counter。 ModelSim加载设计并打开S
阅读全文
摘要:5多库协作简介本课将练习使用多个库。通过使用第三方的库,使设计包含多个库。 本课先创建一个包含counter设计单元的资源库。然后,创建一个项目并编译测试台,链接包含counter的库,最后运行仿真。 本课用到的设计文件范例是一个8位二进制递增计数器和相关的测试台。路径如下: Verilog – <install_dir>/examples/tutorials/verilog/libraries/counter.v and tcounter.v 扩展阅读用户手册章节—Design Libraries。 创建资源库在创建资源库前,确认安装目录里的modelsim.ini文件的属性是“
阅读全文