西北工业大学_数字电子技术基础_实验报告_实验3
- 格式:docx
- 大小:360.33 KB
- 文档页数:12
数字电子技术基础第三次实验报告
、描述Quartusll 软件基本使用步骤
① 编写Verilog 代码,用文本编辑器正确编写源文件
,并经modelsim 仿真确认该电路
设计正确。
② 打开Quartusll 软件,新建工程New project (注意工程名和设计文件的
module 名保
持一致),选择和开发板一致的 FPGA 器件型号。
■■pww n
④编译,Start Compilation ,编译源文件(如有错误修改后,重新编译)
。
I —f 1 UuM-JI 工 HfiaMi
■sm •MITmHL 1 】it A**
5
Kii
atiT^u^ri :i&
1 u
■审3T1
H
・
”峠if
-
Ik r irM "小"=
③添加文件,点击
file->open,之后选择要添加的文件,并勾选 Add file to current
project.
■ 5
r-w in
¥ 口
X.
I M
■
tWIR fetawej
. MtamM* E«Maa4inrv*nn
♦ 1 Tl n .
■
EGvi I IPHIWIV
E R
H
F 4- xsffl
ECA
-iha
W M
ni
WmUAf
⑤查看电路结构,使用 Tool->RTL viewer 工具查看电路图结构,是否和预期设计一致。
rp M. Oi* >
1 JiMiMdaOML .urmpM- 羽r 嘴U 电 Of ■ >lir¥i-*U ■屮剑 f*lM W"M*h 1 $TW Quartus Prime r*rfw 杠 w* ■ « ■ ■! I Q » i 恆G|4OV :I4J ■忙ffl 草* F ■ *■ 1.设计一款时钟上升沿触发的 D 寄存器 TilbfilUL. X.■I:(■■i!|*ij JHft* I i ■i E. duqa.,卜r|il. A, -K^'M la^34r vf (r«i H >«ra w wl as-Kif i*d mich Wp CMIM* e faharwl HKhinu. 3.' thd d&a ip*H¥l: MW mRM_LEL HDCTE^DIS' *ih tnvr 05T tc- r vtw . llivl 4 nt* 111 Hi >4 -Mji lltf ¥111 4 igf IhB 4 ■Z.7UZ - unri J ■»I fi i■- w rnr I U I FIV J mtnt- , ■ w ^aanr* fi Ir ■KdP-ir'iiH/prnrlM*!1I, *. 题目代码以及波形分析 a)编写模块源码 module flipflop(D,Clock,Q); in put D,Clock; output reg Q; always@(posedge Clock) Q=D; en dmodule b) 测试模块 'timescale 1n s/1ps module tb_flipflop; reg Clock_test; reg D_test; wire Q_test; in itial Clock_test=0; always #20 Clock_test=~Clock_test; in itial D_test=0; always #77 D_test=~D_test; flipflop UUT_flipflop(.CIock(Clock_test),.D(D_test),.Q(Q_test)); en dmodule c) 仿真后的波形截图 input D0,D1,Sel,Clock; output reg Q; d) 综合后的RTL 图形 2. 设计一款4bBit 具有并行加载功能的移位寄存器编写模块源码 a) 编写模块源码 module muxdff(D0,D1,Sel,Clock,Q); 每当时钟上升沿到来时,触发器把 D 的信号传给Q 1 -Ml B ! L IVh :> 柏"甲^革曲神甲 翹甘 I 『■申 £^4 HtfTAiw i||j I ** E - - M ■ < J ■: < ' « Ihl^fcp :- * □-refD wire D; assign D=Sel?D1:D0; always@(posedge Clock) Q<=D; endmodule module shift4(R,L,w,Clock,Q); input [3:0]R; input L,w,Clock; output wire [3:0]Q; muxdff Stage3(w,R[3],L,Clock,Q[3]); muxdff Stage2(Q[3],R[2],L,Clock,Q[2]); muxdff Stage1(Q[2],R[1],L,Clock,Q[1]); muxdff Stage0(Q[1],R[0],L,Clock,Q[0]); endmodule b) 测试模块 'timescale 1n s/1ps module tb_shift4; reg Clock_test; reg L_test; reg w_test; reg [3:0]R_test; wire [3:0]Q_test; initial Clock_test=0; always #10 Clock_test=~Clock_test; initial begin L_test=1; #14 L_test=0; //always #14 L_test=~L_test; end initial w_test=0; always #13 w_test=~w_test; initial