基于VerilogHDL语言的FPGA设计 课程作业 学院:研究生学院 专业班级:电研12班
姓名:曹雅萍 学号:1202810068
作业题目:基于verilog语言的74LS163设计 完成日期:2013年5月15日 一、设计要求
74LS163是的可预置四位二进制同步清除计数器。 本设计是用Verilog语言编程实现74LS163的功能仿真。
二、顶层设计结构图 EPET LD CLK CR
Q[3:0] D 74LS163 C B A
三、 模块详细设计 3.1规范说明
图逻辑:
功能表:
3.2 端口定义
信号名称 信号类型 详细说明 CR 输入 同步清零,低有效 CLK 输入 时钟 LD 输入 置数,高有效 EPET 输入 使能端,高有效 D 输入 数据输入 C 输入 数据输入 B 输入 数据输入 A 输入 数据输入 Q[3:0] 输出 数据输出 3.3 代码
module LSlk; input ld;
input [1:0]epe163(cr,clk,ld,epet,d,c,b,a,Q);
input cr,ct; input d,c,b,a; output [3:0]Q; reg [3:0]Q;
always@(posedge clk) if(!cr) Q<=4'b0000; else if(!ld) begin Q<=Q; end
else case(epet) 2'b0x: begin Q<=Q;end 2'bx0: begin Q<=Q;end 2'b11: begin Q<=Q+1'b1;end endcase endmodule 3.4 激励代码 module LS163_test; reg cr,clk; reg [1:0]epet; reg ld; reg d,c,b,a; wire [3:0]Q;
LS163 U1(.cr(cr),.clk(clk),.ld(ld),.epet(epet), .d(d),.c(c),.b(b),.a(a),.Q(Q));
initial begin ld=1'b1;epet=2'b00;cr=1'b0; end initial clk=1'b0; always #20 clk=~clk; initial begin #20 cr=1'b0; #40 cr=1'b1; #40 ld=1'b0; #80 ld=1'b1; #140 epet=2'b0x; #160 epet=2'bx0; #200 epet=2'b11; end initial begin a=1'b1; b=1'b0; c=1'b0; d=1'b1; end endmodule 3.4 仿真结果
四、 结论和问题
本次设计中,由于书写激励的过程中与设计中的变量为对应,再给输入变 量赋值的时候一直写成是给Q赋值,所以一直出现错误。吸取教训,日后改正~
因篇幅问题不能全部显示,请点此查看更多更全内容