内容发布更新时间 : 2024/11/13 15:36:31星期一 下面是文章的全部内容请认真阅读。
p76
思考与练习
7.1 试编写求补码的Verilog程序,输入是带符号的8位二进制数。 7.2 试编写两个四位二进制数相减的Verilog程序。
7.3 有一个比较电路,当输入的一位8421BCD码大于4时,输出为1,否则为0。试编写出Verilog程序。
7.4 试编写一个实现3输入与非门的Verilog源程序。 p77
思考与练习
7.5 用Verilog语言设计一个类似74138的译码器电路,用Synplify软件对设计文件进行综合,观察RTL级综合视图和门级综合视图。
7.6 用Verilog语言设计一个功能类似74161的电路,用Synplify软件对设计文件进行综合,观察RTL级综合视图和门级综合视图。
7.7 用Verilog设计一个8位加法器,用Quartus II软件进行综合和仿真。 7.8 用Verilog设计一个8位计数器,用Quartus II软件进行综合和仿真。
第8章 数字设计的层次与风格 p79
Verilog设计的描述风格 结构(Structural)描述 行为(Behavioural)描述 数据流(Data Flow)描述 p80
在Verilog程序中可通过如下方式描述电路的结构 ◆ 调用Verilog内置门元件(门级结构描述) ◆ 调用开关级元件(晶体管级结构描述) ◆ 用户自定义元件UDP(也在门级) 8.2 结构(Structural)描述 p81
门级结构描述的2选1MUX
module MUX1(out, a, b, sel); output out;
input a, b, sel; not (sel_, sel); and (a1, a, sel_), (a2, b, sel); or (out, a1, a2); endmodule
p82
8.3 行为描述
就是对设计实体的数学模型的描述,其抽象程度远高于结构描述方式。行为描述类似于高级编程语言,当描述一个设计实体的行为时,无需知道具体电路的结构,只需要描述清楚输入与输出信号的行为,而不需要花费更多的精力关注设计功能的门级实现。 p83
行为描述的2选1MUX
module mux2(out, a, b, sel); output out;
input a, b, sel; reg out;
always @(a or b or sel) begin
if(sel) out = b; else out = a; end
endmodule
p84
8.4 数据流描述
数据流描述方式主要使用持续赋值语句,多用于描述组合逻辑电路,其格式为:
assign LHS_net=RHS_expression;
右边表达式中的操作数无论何时发生变化,都会引起表达式值的重新计算, 并将重新计算后的值赋予左边表达式的net型变量。 p85
数据流描述的2选1MUX
module MUX3(out, a, b, sel); output out;
input a, b, sel;
assign out = sel ? b : a; endmodule
p86
`include \
module add4_1(sum, cout, a, b, cin); output [3:0] sum; output cout;
input [3:0] a, b; input cin;
full_add1 f0(a[0],b[0],cin,sum[0],cin1); full_add1 f1(a[1],b[1],cin1,sum[1],cin2); full_add1 f2(a[2],b[2],cin2,sum[2],cin3); full_add1 f3(a[3],b[3],cin3,sum[3],cout); endmodule
结构描述的4位级连全加器 p87
module add4_2(cout,sum,a,b,cin); output[3:0] sum; output cout; input[3:0] a,b; input cin;
assign {cout,sum}=a+b+cin; endmodule
数据流描述的4位加法器 p88 习 题
8.1 Verilog支持哪几种描述方式,各有什么特点?
8.2 分别用结构描述和行为描述方式设计一个基本的D触发器,并进行综合。 8.3 分别用结构描述和行为描述方式设计一个JK触发器,并进行综合。 8.4 试编写同步模5计数器程序,有进位输出和异步复位端。 8.5 编写4位串/并转换程序。 8.6 编写4位并/串转换程序。 8.7 编写4位除法电路程序。