EDA技术 第三章 Verilog设计初步

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

3.1 多路选择器的Verilog描述
5. 4选1多路选择器实现-if输入法
1、if_else语句 2、过程赋值语句 阻塞式赋值 = 非阻塞式赋值 <= 3、数据表达方式 综合器的自动类型转换
3.1 多路选择器的Verilog描述
6. 思考
_ y = ab + c
使用Verilog实现上式功能
3.1 多路选择器的Verilog描述
3.4 1位二进制全加器的Verilog描述
5. 全加器Verilog描述——顶层设计
通过顶层调用底层元件,实现全加器
d
e f
module f_adder(ain,bin,cin,cout,sum); input ain,bin,cin; output cout,sum; wire e,d,f; h_adder u1 (ain,bin,e,d); h_adder u2 (.a(e),.b(cin),.so(sum),.co(f)); or2a u3 (d,f,cout); endmodule
7. 小结
3.1 节中主要通过多路选择器的实 现过程,学习了基本语言结构,以及组 合逻辑电路的功能描述方法 assign连续赋值语句 case条件表达式 If_else 表达式
3.3 二进制描述及Verilog设计
1. 教学目的
通过D触发器的实现过程,学习时 序电路的描述方法。
3.2 时序模块及Verilog设计
3.1 多路选择器的Verilog描述
5. 4选1多路选择器实现-if输入法
module MUX41a (a,b,c,d,s1,s0,y); input a,b,c,d; input s1,s0; output y; reg y; reg [1:0] sel; always @(a or b or c or d or s1 or s0) begin sel={s1,s0}; if(sel==0) y=a; else if (sel==1) y=b; else if (sel==2) y=c; else y=d; end endmodule
1. 边沿型D触发器 2. 电平触发型锁存器
D CP DFF Q
3.2 时序模块及Verilog设计
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY dff1 IS PORT( clk : IN STD_LOGIC; d: IN STD_LOGIC; q: OUT STD_LOGIC ); END dff1; ARCHITECTURE bhv OF dff1 IS SIGNAL q1 : STD_LOGIC; BEGIN PROCESS (clk,q1) BEGIN IF CLK'EVENT AND CLK='1' THEN q1 <= d; END IF; END PROCESS; q<=q1; END bhv;
3.1 多路选择器的Verilog描述
4. 4选1多路选择器实现-case输入法
1、reg型变量(寄存器型) a:当信号为寄存器类型时; b:当信号在always引导的顺序语句中时。 wire型变量(网线型) a:以assign引导的并行语句; b:无需显式定义。 2、always@ 过程语句 敏感信号表(三种写法:or , * posedge, negsedge ) 3、begin end 块语句 4、case语句(case,casez,casex) 逻辑状态:0, 1 ,z,x 5、并位操作{ } 6、按位逻辑操作符 7、等式操作符 8、assign连续赋值语句
思考: 1、如何用case语句实现? 2、如何用if语句实现?
3.4 1位二进制全加器的Verilog描述
3. 半加器Verilog描述方法--case实现方式
a 0 0 1 1
b co so 0 0 0 1 0 1 0 0 1 1 1 0
module h_adder(a,b,so,co); input a,b; output so,co; reg so,co; always @ (*) begin case({a,b}) 0:begin co=0;so=0;end 1:begin co=0;so=1;end 2:begin co=1;so=0;end 3:begin co=1;so=1;end default:begin co=0;so=0;end endcase end endmodule
2. 半加器真值表及电路图
a 0 0 1 1
b co so 0 0 0 1 0 1 0 0 1 1 1 0
co = a &b so = a ^b
3.4 1位二进制全加器的Verilog描述
3. 半加器Verilog描述方法--布尔表达式
module h_adder(a,b,so,co); input a,b; output so,co; assign so=a^b; assign co=a&b; endmodule
3.1 多路选择器的Verilog描述
3. 2选1多路选择器实现-文本输入法 模块表达 端口语句 赋值语句 条件操作符 关键字 标识符 书写格式 文件名称和目录
3.1 多路选择器的Verilog描述
4. 4选1多路选择器实现-case输入法
module MUX41a (a,b,c,d,s1,s0,y); input a,b,c,d; input s1,s0; output y; reg y; always @(a or b or c or d or s1 or s0) begin case ({s1,s0}) 2'b00: y<=a; 2'b01: y<=b; 2'b10: y<=c; 2'b11: y<=d; default: y<=a; endcase end
3.4 1位二进制全加器的Verilog描述
4. 全加器图形输入法
考虑低位进位的情况下,2个输入和
3.4 1位二进制全加器的Verilog描述
5. 全加器Verilog描述——或门
通过顶层调用底层元件,实现全加器,下面使用Verilog描述 实现或门逻辑。
module or2a(a,b,c); input a,b; output c; assign c=a|b; endmodule
3. 实现
module DFF1(D,CLK,Q); input D,CLK; output Q; reg Q; always @ (posedge CLK) Q<=D; endmodule
3.2 时序模块及Verilog设计
4. 异步复位/时钟使能型触发器
module test(D,CLK,EN,RST,Q); input D,CLK,EN,RST; output Q; reg Q; always @ (posedge CLK, negedge RST) if(!RST) Q<=0; else if(EN) Q<=D; endmodule
3.2 计数器设计
1. 计数器的Verilog描述
3.2 计数器设计
2. 不等式操作符
等式操作符 > < >= <=
含义 大于 小于 大于等于 小于等于
作业
1.设计一位十进制计数器,即计数范围 0~9 要求:有进位输出 2. 使用第一题中的一位十进制计数器, 设计3位十进制计数器,即计数范围 000~999 要求:有进位输出 采用顶层设计的方法,调用习 题1的设计。
3.4 1位二进制全加器的Verilog描述
6. 新学内容总结
a. reg/wire数据类型 b.并位操作符 c. case语句、if语句 d. 块语句 e. 连续赋值语句、过程赋值语句
3.4 1位二进制全加器的Verilog描述
7. 思考 习题3-1、3-2、3-3、3-4 设计 习题3-5、3-6、3-7、3-8、3-10
a b
0 1 s
y
a a
b x
s 0
y a
当s=0时,y=a 当s=1时,y=b
x
b
1
b
3.1 多路选择器的Verilog描述
2. 2选1多路选择器实现-原理图形输入法
0 1
1 0 0 1
a 0 0 b
y=a y=b
3.1 多路选择器的Verilog描述
3. 2选1多路选择器实现-文本输入法 module MUX21a (a,b,s,y); input a,b,s; output y; assign y=(s?a:b); endmodule
第三章 Verilog设计入门
3.1 组合电路的Verilog描述 3.2 时序模块及其Verilog描述
3.3 二进制计数器及其Verilog设计
教学目的
通过简单、完整而典型的Verilog 设计示例,初步了解用Verilog表达和 设计电路的方法。
3.1 多路选择器的Verilog描述
1. 2选1多路选择器的示意图和真值表
3.2 时序模块及Verilog设计
5. 同步复位/时钟使能型触发器
module test(D,CLK,EN,RST,Q); input D,CLK,EN,RST; output Q; reg Q; always @ (posedge CLK) if(!RST) Q<=0; else if(EN) Q<=D; endmodule
3.4 1位二进制全加器的Verilog描述
1. 半加器功能描述 全加器可由两个半加器和一个或门构成 半加器是最简单的加法器,把2个1位二进 制数相加,不考虑低位的进位 ,产生一个2 位和,和的低位叫半加和,高位叫半加进位 半加器由一个与门,一个或门和一个异或 门构成
3.4 1位二进制全加器的Verilog设计
6. 异步复位型锁存器
module test(D,CLK,RST,Q); input D,CLK, RST; output Q; Assign Q=(!RST)? 0 : (CLK?D:Q); endmodule module test(D,CLK,RST,Q); input D,CLK, RST; output Q; reg Q; always @ (D,CLK, RST) if(!RST) Q<=0; else if(CLK) Q<=D;
相关文档
最新文档