三、实例
(一)AndGate 与门
- AndGate
assign y = a & b;
修改Port名称和颜色,保存
- TestBench仿真
Create Test,相关的文件要保存在同一路径下,将Port连线;编译,运行,查看波形
initial
begin
a = 1'b0; //初始化输入寄存器a,b的值
b = 1'b0;
#1 a = 1'b1; //延迟一个时钟,a设置高电平
#1 b = 1'b1; //再延迟一个时钟
#1 a = 1'b0;
#1 b = 1'b0;
#10 $finish;
end
- 拓展
“model”和“module”区别: 正在设计的模块叫做“module”,一旦设计完成,并把此模块应用到其它的设计模块的时候,该模块的类型自动变成“model”。“model”的一些属性不可更改,是被保护了的。
(二)计数器
四 有限状态机
(一)有限状态机(FSM)
又称有限状态自动机,简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型
- 状态:“现态”current_state,“次态”next_state
- 转移:考虑判断条件,是否经过判断条件跳转
- 动作:当前状态下发生的动作(输出)
(1)与输入信号无关,只与当前状态有关(Moore型状态机)
(2)与输入型号和当前状态都有关(Mealy型状态机)
(二)分类
//一段式状态机:用一个always块来描述状态转移和输出的状态机
特点:只有一个always块;一般只写“现态”state,不写“次态”next_state;在一个状态下,既描述当前状态的输出,也描述状态的转移;可以用时序逻辑/组合逻辑
//两段式状态机:用两个always块来描述状态转移和输出的状态机
特点:有两个always块;第一个always块使用时序逻辑,描述现态跳转到次态;第二个always块使用组合逻辑,判断状态转移条件,描述状态转移以及当前状态的输出
//三段式状态机:用三个always块来描述状态转移和输出的状态机
特点:三个always块;第一个always时序逻辑,描述“现态”跳转到“次态”;第二个always块使用组合逻辑,判断状态转移条件,描述状态转移;第三个always块使用时序逻辑/组合逻辑,描述状态输出
五 PWM
- PWM,脉冲宽度调制,是一种对模拟信号电平进行数字编码的方法;
- 基本原理:使输出端得到一系列幅值相等的脉冲,用这些脉冲代替正弦波或所需要的波形,可改变输出电压大小和频率;利用微处理器的数字输出,来对模拟电路进行控制
- 占空比:电流被接通的时间占整个电路工作周期的百分比
- 计数终点为(n-1)/2,频率n