文章目录
一、学习任务
1.在线Verilog编程网站学习。从门电路、组合电路、时序电路中各选3个以上的例题实践完成。
HDLBits — Verilog Practice 在线练习网站
HDLBits 中文导学
2.安装并注册 Robei 软件,按照“7天学好Robei”指导书,完成练习。
二、学习内容
1.HDLBits—Verilog编程练习
1.1.门电路
1.1.1.非门
问题
解决代码
module top_module( input in, output out );
assign out=~in;
endmodule
仿真
1.1.2.与门
问题
解决代码
module top_module(
input a,
input b,
output out );
assign out=a&b;
endmodule
仿真
1.1.3.或非门
问题
解决代码
module top_module(
input a,
input b,
output out );
assign out=~(a|b);
endmodule
仿真
1.2.组合逻辑
1.2. 2对1多路复用器
问题
解决代码
module top_module(
input a, b, sel,
output out );
assign out = (sel) ? b : a;
endmodule
仿真
1.2.2.全加器
问题
解决代码
module top_module(
input a, b, cin,
output cout, sum );
assign{cout,sum} = a + b + cin;
endmodule
仿真
1.2.3.卡诺地图
问题
解决代码
module top_module (
input [4:1] x,
output f );
assign f = (~x[1] & x[3]) | (x[1] & x[2] & ~x[3]);
endmodule
1.3.时序逻辑
1.3.1.D 触发器
问题
解决代码
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
仿真
1.3.2.D锁存器
问题
解决代码
module top_module (
input d,
input ena,
output q);
always@(*)begin
if(ena)begin
q<=d;
end
end
endmodule
1.3.3.1~12的计数器
问题
解决代码
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
仿真
2.Robei安装注册及基本使用
2.1.安装Robei
[下载地址](http : //robei.com/software/Robei3.5.5.zip)
安装步骤
选择安装路径
点击next
点击install,安装完成
注册:
详细步骤【FPGA】Robei EDA 软件的安装过程(Robei杯)
2.2.Robei基本使用
2.2.1.与门设计
1.结构和真值表
2.1.新建模型
点击file->new,修改如下
2.2.修改模型
2.3.算法
点击code,输入以下算法
2.4.保存及编译
3.测试文件
3.1.新建文件
2.修改引脚颜色及保存测试文件,加入模型:在Toolbox工具箱的Current栏中,选择上面的创建的模型,点击该模型进行添加
3.引脚连接如下
4.输入激励
5.执行仿真并查看波形