实验二 verilog行为语句实验
- 格式:doc
- 大小:207.00 KB
- 文档页数:6
实验二:基于verilogHDL行为语句的电路设计班级:姓名:学号:
作业完成后,以班级为单位,班长或课代表收集齐电子版实验报告,统一提交.
文件命名规则如“通1_王五_学号”
一、实验目的
1、了解verilog HDL行为语句,可综合与非可综合
2、掌握always过程块的格式,注意事项
3、掌握串行块begin-end、assign持续赋值
4、掌握if-else、for、·define、等可综合过程语句
5、练习基本的组合电路和时序电路的verilogHDL设计与仿真
二、预习要求
1.了解veirlogHDL行为语句。
2. Verilog HDL的模块结构的组成。
3.简单电路系统设计的流程和方法。
三、实验基本概念
1、74HC138的功能表入下
2、74160的功能表
3、74161
四、实验内容
(一)典型习题的验证与仿真
设计要求:
1、将课本(课件)中的模256计数器在QuartusII进行编辑和综合,体会计数器设计,注意控制信号的同步、异步,高电平与低电平有效的问题。
2、将阻塞赋值与非阻塞赋值的实例进行综合,对比RTL与门级视图,体会区别。
3、将模60的BCD码加法计数器进行编辑、综合和仿真,并思考数电仿真中的24进制加法
器电路设计与此设计的关联性,可尝试设计一个模24进制计数器。
4.BCD码的七段管译码器设计
5、for循环实现2个8位乘法,尝试用别的方法设计乘法器并进行综合,并进行对比
6、过程和结果(后面继续添加)
上述题目,课件皆有源代码,如果个人对代码有改进,有引申,将代码黏贴到下面空白处,或者写一下自己对上述需注意问题的体会。(内容不限)
(二)设计一个类似于74138的译码器电路
设计要求:
1、用verilog设计译码器,并进行综合和仿真
2.观察RTL级和门级综合视图,对比在数字电路上学过的电路结构。
3.QuartusII进行功能仿真,验证设计的正确性。
4、过程和结果(后面继续添加)
将在程序编辑、编译过程中的错误进行记录(截图或者文本),并错误指出来
(2)代码与仿真结果(结果截图)
module test(s1,s2,s3,a0,a1,a2,y0,y1,y2,y3,y4,y5,y6,y7);
input s1,s2,s3,a0,a1,a2;
output reg y0,y1,y2,y3,y4,y5,y6,y7;
always @(s1 or s2 or s3 or a0 or a1 or a2)
begin
if((~s1)|(~(s2&s3))) {y7,y6,y5,y4,y3,y2,y1,y0}=7'b11111111;
if(s1&(s2&s3))
begin case({a2,a1,a0})
3'b000:{y7,y6,y5,y4,y3,y2,y1,y0}=7'b11111110;
3'b001:{y7,y6,y5,y4,y3,y2,y1,y0}=7'b11111101;
3'b010:{y7,y6,y5,y4,y3,y2,y1,y0}=7'b11111011;
3'b011:{y7,y6,y5,y4,y3,y2,y1,y0}=7'b11110111;
3'b100:{y7,y6,y5,y4,y3,y2,y1,y0}=7'b11101111;
3'b101:{y7,y6,y5,y4,y3,y2,y1,y0}=7'b11011111;
3'b110:{y7,y6,y5,y4,y3,y2,y1,y0}=7'b10111111;
3'b111:{y7,y6,y5,y4,y3,y2,y1,y0}=7'b01111111;
default:{y7,y6,y5,y4,y3,y2,y1,y0}=7'bxxxxxxxx;
endcase
end
end
endmodule
module Verilog2(E1,E2,E3,A,B,C,Y0,Y1,Y2,Y3,Y4,Y5,Y6,Y7);
input E1,E2,E3; //使能输入端(74LS138有三个使能输入)input A,B,C; //输入
output wire Y0,Y1,Y2,Y3,Y4,Y5,Y6,Y7; //输出
assign Y0 = ((E1 & !E2 & !E3) ==1'b1) ? !(!A & !B & !C) : 1'bz;
assign Y1 = ((E1 & !E2 & !E3) ==1'b1) ? !(!A & !B & C) : 1'bz;
assign Y2 = ((E1 & !E2 & !E3) ==1'b1) ? !(!A & B & !C) : 1'bz;
assign Y3 = ((E1 & !E2 & !E3) ==1'b1) ? !(!A & B & C) : 1'bz;
assign Y4 = ((E1 & !E2 & !E3) ==1'b1) ? !( A & !B & !C) : 1'bz;
assign Y5 = ((E1 & !E2 & !E3) ==1'b1) ? !( A & !B & C) : 1'bz;
assign Y6 = ((E1 & !E2 & !E3) ==1'b1) ? !( A & B & !C) : 1'bz;
assign Y7 = ((E1 & !E2 & !E3) ==1'b1) ? !( A & B & C) : 1'bz; endmodule
(三)设计一个类似于74161的计数器电路
设计要求: