在线Verilog编程学习
Posted 满足没有
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在线Verilog编程学习相关的知识,希望对你有一定的参考价值。
在线Verilog编程学习
一、门电路学习
1.非门
问题描述:
https://hdlbits.01xz.net/wiki/Notgate
解决代码:
module top_module( input in, output out );
assign out=~in;
endmodule
结果展示:
2.与门
问题描述:
https://hdlbits.01xz.net/wiki/Andgate
解决代码:
module top_module(
input a,
input b,
output out );
assign out=a&b;
endmodule
结果展示:
或非门
问题描述:
https://hdlbits.01xz.net/wiki/Norgate
解决代码:
module top_module(
input a,
input b,
output out );
assign out=~(a|b);
endmodule
结果展示:
二、组合逻辑相关练习:
1.二对一多路复用
问题描述:
https://hdlbits.01xz.net/wiki/Mux2to1
解决代码:
module top_module(
input a, b, sel,
output out );
assign out=(sel)?b:a;
endmodule
结果展示:
2.全加器
问题描述:
https://hdlbits.01xz.net/wiki/Fadd
解决代码:
module top_module(
input a, b, cin,
output cout, sum );
assign cout,sum=a+b+cin;
endmodule
结果展示:
3.卡诺地图
问题描述:
https://hdlbits.01xz.net/wiki/Exams/m2014_q3
解决代码:
module top_module (
input [4:1] x,
output f );
assign f = (~x[1] & x[3]) | (x[1] & x[2] & ~x[3]);
endmodule
结果展示:
这里出现了这个问题:
三、时序逻辑相关练习
1.D 触发器
问题描述:
https://hdlbits.01xz.net/wiki/Dff
解决代码:
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锁存器
问题描述:
https://hdlbits.01xz.net/wiki/Exams/m2014_q4a
解决代码:
module top_module (
input d,
input ena,
output q);
always@(*)begin
if(ena)begin
q<=d;
end
end
endmodule
结果展示:
出现了这样的问题:
3.1~12的计数器
问题描述:
https://hdlbits.01xz.net/wiki/Exams/ece241_2014_q7a
解决代码:
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
结果展示:
参考资料
HDLBits 中文导学(巡礼数字逻辑在线学习网站 HDLBits)
以上是关于在线Verilog编程学习的主要内容,如果未能解决你的问题,请参考以下文章
[从零开始学习FPGA编程-28]:进阶篇 - 基本组合电路-奇偶校验生成器(Verilog语言版本)