专用集成电路 设计与实践
实验报告
专用集成电路 设计与实践
班 级:12050642X 学 号:12050642X32 姓 名:郝颖璋
实验一:系统认知与电机控制
一、实验目的 1、熟悉实验箱的系统 2、掌握电机的控制 二、实验设备 计算机、实验箱 三、实验内容
用开关控制电机的转动
四、电路图设计
五、Verilog源文件及测试平台 1、源文件
`timescale 10ns/ 10ns //单位/精度 module Con_Motor( CLK, Command, CP );
input CLK;
input Command; output CP; reg CP; reg[15:0] counter;
always@(posedge CLK) begin if(Command == 0) counter =20) counter
else counter
always@(posedge CLK) begin
if(counter ==0) CP =1)&&(counter
endmodule
六、实验结果
七、实验总结
通过这次的实验,我基本熟悉Modelsim软件,掌握了Modelsim软件的编译、仿真方法。同时在编写程序的过程中,加深了我对课上所讲的HDL的语法的认识
实验二:基本输入输出仿真和测试
一、实验目的
1、了解输入输出仿真和测试的主要用途 2、掌握具体电路的方法 二、实验设备 计算机、实验箱 三、实验内容 用仿真软件测试 四、电路图设计
五、Verilog源文件及测试平台 1、源文件
`timescale 10ns/ 10ns //单位/精度 module test_led( CLK, Data_Key, Data_Led );
input CLK; input[7:0] Data_Key; output[7:0] Data_Led; reg[7:0] Data_Led; always@(posedge CLK) begin Data_Led
endmodule
六、实验结果
七、实验总结
实验三:流水灯仿真和测试
一、实验目的
1、熟悉和掌握quartus ii和modelsim软件的使用方法 2、学习简单电路的的设计和硬件测试
二、实验设备 计算机、实验箱 三、实验内容
1、用quartus ii软件创建工程 2、用modelsim软件进行仿真 四、电路图设计
五、Verilog源文件及测试平台 1、源文件
`timescale 10ns/ 10ns //单位/精度 module Con_Led( CLK, Command, Data_Led );
input CLK;
input Command; output[7:0] Data_Led; reg[7:0] Data_Led; reg[2:0] Count;
always@(posedge CLK) begin Count
always@(posedge CLK) begin
if(Command ==0) begin if (Count ==0) Data_Led
end else begin if (Count ==0) Data_Led >1); end end
endmodule 2、测试平台
`timescale 1 ps/ 1 ps
module Con_Led_vlg_tst(); reg eachvec; reg CLK;
reg Command; wire [7:0] Data_Led; Con_Led i1 ( .CLK(CLK), .Command(Command), .Data_Led(Data_Led) );
initial
begin CLK =0; Command =0; #10 Command =1; #10 Command =0;
$display("Running testbench");
end always begin
#1 CLK = ~CLK; end endmodule
六、实验结果
七、实验总结
实验四:数字时钟仿真和测试
一、实验目的
1、掌握数字时钟的基本原理
2、熟悉数字时钟在仿真软件环境下如何测试 二、实验设备 计算机 、实验箱 三、实验内容
1、用开关控制数码管的亮暗 2、使用引脚控制数码管 四、电路图设计
五、Verilog源文件及测试平台 1、源文件
`timescale 10ns/ 10ns //单位/精度 module led_smg4( CLK, Command, Data_Seg );
input CLK;
input Command; output[7:0] Data_Seg; reg[7:0] Data_Seg; reg[3:0] Count; always@(posedge CLK) begin
if(Command ==0) Count =9) Count
end
always@(posedge CLK) begin
case(Count)
4'b0000: Data_Seg =8'hc0;//显示0 4'b0001: Data_Seg =8'hf9;//显示1 4'b0010: Data_Seg =8'ha4;//显示2 4'b0011: Data_Seg =8'hb0;//显示3 4'b0100: Data_Seg =8'h99;//显示4 4'b0101: Data_Seg =8'h92;//显示5 4'b0110: Data_Seg =8'h82;//显示6 4'b0111: Data_Seg =8'hf8;//显示7 4'b1000: Data_Seg =8'h80;//显示8 4'b1001: Data_Seg =8'h90;//显示9 default: Data_Seg =8'hc0;//熄灭 endcase end
endmodule 2、测试平台
`timescale 1 ps/ 1 ps
module Con_Seg_vlg_tst(); reg CLK;
reg Command; wire [7:0] Data_Seg; Con_Seg i1 ( .CLK(CLK), .Command(Command), .Data_Seg(Data_Seg) );
initial begin CLK =0; Command =0;
#5 Command =1; $display("Running testbench");
end always
begin
#1 CLK
六、实验结果
七、实验总结
回顾四个实验的过程,总的来说收获还是很多的。最直接的收获是提高了实验中的基本操作能力,并对各种常见仪器有了了解,并掌握了基本的操作。但感到更重要的收获是培养了自己对实验的兴趣。还有,就是切身的体验到了严谨的实验态度是何等的重要。本学期的实验也在很大程度上开阔了我的视野,增长了见识,在喟叹先人的聪明才智之余,更激发了我们对未知领域的求知与探索。