简易CPU设计入门:ModelSim的使用方法介绍(二)

在上一节,我讲了一部分的ModelSim的使用方法。本节,我们继续来学习ModelSim的基本使用方法。

如果你还没有学习上一节知识,那么,请你先去学习一下上一节的内容。

上一节内容的链接如下。

ModelSIm的使用方法介绍(一)

接下来,我们来正式讲解本节的内容。

一.   Wave界面的左侧的信号列表操作

首先呢,让我们来点击下图所示的红色框线中的具有【全局观察】功能的按钮,

d028b1126fb24976b6009ce5124a0e80.png

图1

然后呢,界面右边的波形图,将恢复全局观察的状态。

(一)将信号名完全显示出来

接下来,我们来看一看界面的左侧的上方的部分,如下图所示。

2832391b7d9c4633a8771ad0fb6626c3.png

图2

在图2里面,它是分为了两列。左边的一列里面,有着许多的三维模样的蓝色菱形小方块。每一个零星小方块位于一行。菱形小方块的右边,还有不同的字母。

在这里,每一个零星小方块,代表着的,是一个变量,或者说,它代表着一个信号。每一个信号,都是在test bench文件里面所声明的一个变量。无论它是reg型变量也好,还是wire型变量也好,都是变量,并且也都会显示在本列的信号列表里面。

在第二列的上面,有Msgs字样,下面,是一堆数值。这些个数值,是对应的左边的信号的信号终值。

我们再来看信号列表里面的情况,有的信号的信号名的右边,有三个点,这代表着说,本信号名很长,本列现有的长度不足以将信号名全部显示出来。所以右边有三个点。如果某一个信号的名字的右边不含有三个点,则代表本信号名完整地显示出来了。

对于信号名不能完整显示的情况,我们一般地,会希望将其全部显示。因为,我们有时候,会需要根据信号名,来查看这一信号的波形演变情况。

怎么做呢?

4807659a46b34620835ee949e0f131dc.png

图3

在图3里面,我用红色框线标出了一个区域,这个区域的中间,是一个白色高亮显示的竖线。这条竖线,我们可以拖动它,以此来改变信号名一列的列宽。

方法是,我们首先将鼠标指针停在这个白色竖线上,如果你停留的位置正确,则鼠标指针变为两个箭头相离的形状,如下图所示。

dc873773d49f42e1843b5b621bd1df66.png

图4

注意,在你那里,你是看不到黄色的圈圈的。这个图,我不是通过截图来截取到的,而是通过录屏软件,录制到的。我在录屏软件里面,设置了让鼠标指针周围显示黄色圈圈的效果。你那里,能够看到的,是两个箭头相背离的指针形状。

当鼠标指针变为相离的形状的时候,按下鼠标左键不松手,向右拖动鼠标指针,则信号名列表一列的列宽将会增长。待到我们觉得列宽合适的时候,在松开鼠标左键,就可以了。此时,信号名列表一列的列宽就变为我们新设置的列宽了。

结果如下图所示。

43a02a564bb9411a9f0b06a7dcab2209.png

图5

在图5

<think>嗯,用户是一位数字电路设计工程师,想发布一系列技术文章,主题是“7天从零开始入门数字电路设计”。我需要帮他规划一个7天的学习路径,每天的内容要结构清晰,循序渐进,适合零基础读者。首先,得确定每天的主题,确保覆盖数字电路的基础知识和关键概念。 第一天应该是基础概念,比如数字与模拟信号的区别,进制、逻辑电平这些。然后逻辑门和布尔代数,这是基础中的基础。第天可以深入组合逻辑电路,比如编码器、译码器、多路复用器,还有卡诺图化简,这些内容对设计电路很重要。第三天可能需要引入时序逻辑,触发器、锁存器、寄存器,这些是存储元件,和组合逻辑形成对比。第四天可以讲有限状态机,同步和异步设计,状态转换图,实际应用例子。第五天可能涉及常用模块,如计数器、移位寄存器,以及HDL入门,比如Verilog的基本语法。第六天进入设计流程,仿真、验证、综合,工具的使用。第七天则是实际项目,比如设计一个简单的CPU或交通灯控制器,巩固所学内容。 还要考虑用户可能的需求,他们可能需要实际操作的例子,所以每天最好有动手练习或小项目。另外,是否要推荐工具,比如仿真软件ModelSim,综合工具Vivado或Quartus,这些对学习者有帮助。同时,要确保内容准确,避免错误,比如逻辑门的真值表、时序电路的设计要点。可能需要提醒读者注意常见错误,比如时序问题中的竞争冒险,或者HDL编码风格对综合的影响。 用户可能希望文章不仅讲理论,还要有实践指导,所以每个主题后可以建议实验,比如用Verilog实现一个全加器,或者用FPGA开发板验证设计。此外,考虑到7天时间较短,内容需要精简,突出重点,避免过于深入复杂的概念,保持入门级难度。最后,结语部分需要激励读者继续深入学习,提供进一步学习的资源方向,比如推荐书籍、在线课程或社区。 检查是否符合系统级指令:所有数学公式用$...$,独立公式用$$...$$,中文回答,结构清晰。确保没有使用任何Markdown格式,语言口语化,自然流畅。</think>作为数字电路设计工程师,若想用7天带读者从零入门数字电路设计,可参考以下结构化学习路径(附关键知识点与动手实践建议): --- ### **Day 1:数字电路基础** **核心内容:** 1. 数字信号 vs 模拟信号 - 进制表示:$0$(低电平)与$1$(高电平) 2. 逻辑门基础 - 基本门电路:AND ($Y=A \cdot B$)、OR ($Y=A+B$)、NOT ($Y=\overline{A}$) - 真值表与逻辑符号 3. 布尔代数基础 - 基本定律:交换律、结合律、德摩根定理 $\overline{A+B} = \overline{A} \cdot \overline{B}$ **实践任务:** - 用仿真工具(如Logisim)搭建简单门电路并验证真值表 --- ### **Day 2:组合逻辑电路** **核心内容:** 1. 组合逻辑设计流程 - 真值表 → 逻辑表达式 → 卡诺图化简 → 电路实现 2. 常用模块 - 编码器(如4-2编码器) - 译码器(如3-8译码器) - 多路复用器(MUX) **实践任务:** - 设计一个半加器电路:$S = A \oplus B$, $C = A \cdot B$ --- ### **Day 3:时序逻辑电路** **核心内容:** 1. 时序电路特点 - 依赖时钟信号(CLK)与存储元件 2. 基本存储单元 - D触发器:$Q_{n+1} = D$(边沿触发) - 锁存器与触发器的区别 3. 寄存器与移位寄存器 **实践任务:** - 用D触发器设计一个4位寄存器 --- ### **Day 4:有限状态机(FSM)** **核心内容:** 1. FSM分类 - Moore型:输出仅与当前状态相关 - Mealy型:输出与状态和输入相关 2. 状态转换图与状态表 **实践任务:** - 设计一个自动售货机控制器(3种状态:空闲、投币、出货) --- ### **Day 5:硬件描述语言(HDL)入门** **核心内容:** 1. Verilog/VHDL基础 - 模块定义、信号赋值(阻塞 vs 非阻塞) 2. 组合逻辑与时序逻辑的代码实现 ```verilog // 示例:D触发器代码 module d_ff (input clk, input d, output reg q); always @(posedge clk) begin q <= d; end endmodule ``` **实践任务:** - 用Verilog实现一个全加器 --- ### **Day 6:仿真与综合工具** **核心内容:** 1. 工具链流程 - 编写HDL代码 → 功能仿真(ModelSim) → 综合(Vivado/Quartus) 2. 时序分析 - 建立时间(Setup Time)与保持时间(Hold Time) **实践任务:** - 在FPGA开发板上烧录一个流水灯程序 --- ### **Day 7:完整项目实战** **推荐项目:** 1. **4位计数器设计** - 需求:CLK控制计数,复位信号异步清零 2. **简易交通灯控制器** - 状态:红灯(30s)→ 绿灯(45s)→ 黄灯(5s) **项目步骤:** - 需求分析 → 状态机设计 → HDL编码 → 仿真验证 → FPGA部署 --- ### **结语与进阶方向** 1. **常见问题提醒** - 避免锁存器意外生成(HDL中未覆盖所有条件分支) - 时钟域交叉处理(CDC) 2. **推荐学习资源** - 书籍:《数字设计:系统方法》(William J. Dally) - 在线课程:Coursera《VLSI CAD Part I: Logic》 通过每日理论+实践的模式,读者可快速掌握数字电路设计核心技能,并为后续深入学习(如ASIC/FPGA开发)奠定基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值