Verilog数字系统设计二
简单组合逻辑实验
文章目录
前言
随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,用always块、连续赋值assign和门级原语三种方法完成同一功能
一、Verilog是什么?
示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
二、编程
1.编程完成如下公式所表示的逻辑功能模块:
out = a & (~b ⊕ (c | d))
2.always块实现:
always代码如下:
module fangfa1 (out,a,b,c,d);
output out;
input a,b,c,d;
reg out;
always @(a or b or c or d)
out=a&(~b^(c|d));
endmodule
测试代码如下:
module fangfa1_ts;
reg a_t,b_t,c_t,d_t;
wire out_t;
fangfa1 Fangfa1(.out(out_t),.a(a_t),.b(b_t),.c(c_t),.d(d_t));
initial
begin
a_t=0;
b_t=0;
c_t=0;
d_t=0;
end
always #5 {a_t,b_t,c_t,d_t}={a_t,b_t,c_t,d_t}+1’b1;
endmodule
3.assign语句实现:
always代码如下:
module fangfa2(out,a,b,c,d);
output out;
input a,b,c,d;
assign out = a&(~b^(c|d));
endmodule
测试代码如下:
module fangfa2_ts;
reg a_t,b_t,c_t,d_t;
wire out_t;
fangfa1 Fangfa1(.out(out_t),.a(a_t),.b(b_t),.c(c_t),.d(d_t));
initial
begin
a_t=0;
b_t=0;
c_t=0;
d_t=0;
end
always #5 {a_t,b_t,c_t,d_t}={a_t,b_t,c_t,d_t}+1’b1;
endmodule
4.门级原语实现:
always代码如下:
module fangfa3(out,a,b,c,d);
output out;
input a,b,c,d;
reg out;
not u1(nb,b);
or u2(h,c,d);
xor u3(y,nb,h);
and u4(out,a,y);
endmodule
测试代码如下:
module fangfa3_ts;
reg a_t,b_t,c_t,d_t;
wire out_t;
fangfa3 Fangfa3(.out(out_t),.a(a_t),.b(b_t),.c(c_t),.d(d_t));
initial
begin
a_t=0;
b_t=0;
c_t=0;
d_t=0;
end
always #5 {a_t,b_t,c_t,d_t}={a_t,b_t,c_t,d_t}+1’b1;
endmodule
5.仿真波形
测试结果如下:
如图当abcd={8,13,14,15}时out值为1,否则为0;
总结
提示:
以上就是今天要分享的内容,本文仅仅简单介绍了Verilog,用always块、连续赋值assign和门级原语三种方法完成同一逻辑表达式功能。