前言
这是我第二次刷HDLBits的题,第一次是刚接触FPGA时,为了快速入门Verilog,第一次刷题跟着B站视频刷的,但是现在发现没有很大的用处,个人感觉还是有一点Verilog基础后,再来刷HDLBits会好一点,虽然很多人说这上面的题都很简单,但是还是值得刷一遍,里面几乎涵盖了Verilog的所有常用语法,并且还可以尝试用不同方法解同一道题。
代码以下是我写的每道题的代码和思路
Procedure注意:
- case、if-else语句要避免产生锁存器
// 使用always(*)组合逻辑
module top_module(
input a,
input b,
output wire out_assign,
output reg out_alwaysblock
);
assign out_assign = a & b ;
always @(*) begin
out_alwaysblock = a & b;
end
endmodule
// 寄存器、always(clk)时序逻辑、异或
module top_module(
input clk,
input a,
input b,
output wire out_assign,
output reg out_always_comb,
output reg out_always_ff );
assign out_assign = a ^ b ;
always @(*) begin
out_always_comb = a ^ b;
end
always @(posedge clk) begin
out_always_ff
关注
打赏