Verilog编程练习巩固与Robei
一、门电路练习
1、非门
问题描述:非门
Solution:
module top_module( input in, output out );
assign out=~in;
endmodule
仿真结果
2、与门
问题描述:
与门
Solution:
module top_module(
input a,
input b,
output out );
assign out=a&b;
endmodule
仿真结果:
3、或非门
问题描述:
或非门
Solution:
module top_module(
input a,
input b,
output out );
assign out=~(a|b);
endmodule
仿真结果:
二、 组合逻辑练习
1、2对1多路复用器
问题描述:
2对1多路复用器
Solution:
module top_module(
input a, b, sel,
output out );
assign out = (sel) ? b : a;
endmodule
仿真结果:
2、全加器
问题描述:
全加器
Solution:
module top_module(
input a, b, cin,
output cout, sum );
assign{cout,sum} = a + b + cin;
endmodule
仿真结果:
3、卡诺地图
问题描述:
卡诺地图
Solution:
module top_module (
input [4:1] x,
output f );
assign f = (~x[1] & x[3]) | (x[1] & x[2] & ~x[3]);
endmodule
三、 时序逻辑练习
1、D触发器
问题描述:
D触发器
Solution:
module top_module (
input clk, // Clocks are used in sequential circuits
input d,
output reg q );//
// Use a clocked always block
// copy d to q at every positive edge of clk
// Clocked always blocks should use non-blocking assignments
always@(posedge clk) begin
q <= d;
end
endmodule
仿真结果:
2、D锁存器
问题描述:
D锁存器
Solution:
module top_module (
input d,
input ena,
output q);
always@(*)begin
if(ena)begin
q<=d;
end
end
endmodule
3、1到12的计数器
问题描述:
1~12的计数器
Solution:
module top_module (
input clk,
input reset,
input enable,
output [3:0] Q,
output c_enable,
output c_load,
output [3:0] c_d
); //
count4 the_counter (clk, c_enable, c_load, c_d /*, ... */ );
reg [3:0] temp;
//4-bit计数器的控制信号
assign c_enable = enable;
//带复位和置位,
assign c_load = reset | (Q == 4'd12 & enable == 1'b1);
assign c_d = 4'b1;
// count4 the_counter (clk, c_enable, c_load, c_d, Q );
count4 Inst_count4
(
.clk(clk),
.enable(c_enable),
.load(c_load),
.d(c_d),
.Q(Q)
);
endmodule
仿真结果:
四、Robei的安装及使用
1、 下载安装
1、下载地址
Robei
2、安装
打开Robei-setup.exe
选择安装路径
选择开始菜单的Folder
点击Install安装
点击Finish安装完成
2、Robei的使用
1、软件界面分为菜单,工具条,工具箱,属性栏,工作空间和输出窗口几个部分
1、Robei三元素
1、模块
模块是设计流程中的基本元素,可以看作一个黑盒子。用于存放设计好的模型和输入实现模块功能的算法代码以及引脚信息。
2、引脚
引脚是模块的门户,是模块与外界通信的接口。包括输入与输出两种类型。
3、连接线
连接线是用来连接两个引脚,负责信号的传输。
2、与门设计
结构
真值表
a | b | y |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
1、新建模型文件
File->New>在对话框中输入相应的模块信息
2、修改模型
用鼠标选中对应的引脚,在属性编辑器中进行相应的修改
3、输入算法
点击模型下方的Code进入代码设计区,输入相应的算法
4、保存并进行文件测试
・新建模型文件
在ModelType的选择上,选择testbench
・修改引脚颜色及保存测试文件
选中对应的引脚,在属性框上修改颜色
・加入模型
在Toolbox工具箱的Current栏中,选择创建的模型,点击进行添加
・连接引脚
Tool->Connect,将引脚进行连接
・输入激励
・仿真并查看波形
参考:
在线练习网站