基于Quartus II进行EDA设计开发的流程 p26
设计一个半加器
p27
设计一个全加器
连接好的全加器原理图f_adder.bdf
习 题
3-1 基于Quartus II软件,用D触发器设计一个2分频电路,并做波形仿真,在此基础上,设计一个4分频和8分频电路,做波形仿真。 。 3-2 基于Quartus II软件,用7490设计一个能计时(12小时)、计分(60分)和计秒(60秒)的简单数字钟电路。设计过程如下:
(1)先用Quartus II的原理图输入方式,用7490连接成包含进位输出的模60的计数器,并进行仿真,如果功能正确,则将其生成一个部件;
(2)将7490连接成模12的计数器,进行仿真,如果功能正确,也将其生成一个部件; (3)将以上两个部件连接成为简单的数字钟电路,能计时、计分和计秒,计满12小时后系统清0重新开始计时。
(4)在实现上述功能的基础上可以进一步增加其它功能,比如校时功能,能随意调整小时、分钟信号,增加整点报时功能等。
第4章 基于宏功能模块的设计
8位有符号乘法器电路 功能仿真波形 p31
模24方向可控计数器电路
lpm_counter计数器功能仿真波形
锁相环电路
功能仿真波形 习 题
4.1 采用Quartus II软件的宏功能模块lpm_counter设计一个模为60的加法计数器,进行编译和仿真,查看仿真结果。
4.2 采用Quartus II软件的宏功能模块lpm_rom,用查表的方式设计一个实现两个8位无符号数加法的电路,并进行编译和仿真。
4.3 先利用LPM_ROM设计4位×4位和8位×8位乘法器各一个,然后用Verilog语言分别设计4位×4位和8位×8位乘法器,比较两类乘法器的运行速度和资源耗用情况。
4.4 用数字锁相环实现分频,假定输入时钟频率为10MHz,想要得到6MHz的时钟信号,试用altpll宏功能模块实现该电路。
第5章 Verilog HDL设计初步
5.2 Verilog设计举例
【例1】4位全加器
module adder4(cout,sum,ina,inb,cin); output[3:0] sum; output cout;
input[3:0] ina,inb; input cin;
assign {cout,sum}=ina+inb+cin; endmodule p36
Verilog程序的特点
(1)Verilog程序是由模块构成的。每个模块的内容都嵌在module和endmodule两个关键字之间;每个模块实现特定的功能;模块是可以进行层次嵌套的。
(2)每个模块首先要进行端口定义,并说明输入和输出口(input、output或inout),然后对模块功能进行描述。
(3)Verilog程序书写格式自由,一行可以写几个语句,一个语句也可以分多行写。 (4)除了endmodule等少数语句外,每个语句的最后必须有分号。
(5)可以用 /*??*/ 和 //?? 对Verilog程序作注释。好的源程序都应当加上必要的注释,以增强程序的可读性和可维护性。 p37
Verilog 模块的模板
module <顶层模块名> (<输入输出端口列表>); output 输出端口列表; //输出端口声明 input 输入端口列表; //输入端口声明 /*定义数据,信号的类型,函数声明*/ reg 信号名; //逻辑功能定义
assign <结果信号名>=<表达式>; //使用assign语句定义逻辑功能 //用always块描述逻辑功能 always @ (<敏感信号表达式>) begin
//过程赋值
//if-else,case语句
//while,repeat,for循环语句 //task,function调用 end
//调用其他模块
<调用模块名module_name > <例化模块名> (<端口列表port_list >); //门元件例化
门元件关键字 <例化门元件名> (<端口列表port_list>); endmodule p38
习 题
5.1 用Verilog设计一个8位加法器,并进行综合和仿真,查看综合结果和仿真结果。 5.2 用Verilog设计一个8位计数器,并进行综合和仿真,查看综合结果和仿真结果。