Skip to content

Commit 39aa0b2

Browse files
committed
如果採用,此提交將完成6-2範例與練習
修改項目: 模組: 議題
1 parent 1ecf9a6 commit 39aa0b2

3 files changed

Lines changed: 291 additions & 0 deletions

File tree

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
module block (D, Clk, X, Y);
2+
input D, Clk;
3+
output [3:0] X, Y;
4+
reg [3:0] X, Y;
5+
6+
always @ (posedge Clk) begin
7+
X[0] = D;
8+
X[1] = X[0];
9+
X[2] = X[1];
10+
X[3] = X[2];
11+
12+
Y[0] <= D;
13+
Y[1] <= Y[0];
14+
Y[2] <= Y[1];
15+
Y[3] <= Y[2];
16+
17+
end
18+
19+
endmodule // block
Lines changed: 203 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,203 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!-- Product Version: Vivado v2020.1 (64-bit) -->
3+
<!-- -->
4+
<!-- Copyright 1986-2020 Xilinx, Inc. All Rights Reserved. -->
5+
6+
<Project Version="7" Minor="49" Path="/home/timmy/Git/Digital-Logic-Design/VerilogHDL_Practice/CH6/block/block.xpr">
7+
<DefaultLaunch Dir="$PRUNDIR"/>
8+
<Configuration>
9+
<Option Name="Id" Val="f4825676cef44aaa9af6c6646667ceb6"/>
10+
<Option Name="Part" Val="xc7a35tcsg324-1"/>
11+
<Option Name="CompiledLibDir" Val="$PCACHEDIR/compile_simlib"/>
12+
<Option Name="CompiledLibDirXSim" Val=""/>
13+
<Option Name="CompiledLibDirModelSim" Val="$PCACHEDIR/compile_simlib/modelsim"/>
14+
<Option Name="CompiledLibDirQuesta" Val="$PCACHEDIR/compile_simlib/questa"/>
15+
<Option Name="CompiledLibDirIES" Val="$PCACHEDIR/compile_simlib/ies"/>
16+
<Option Name="CompiledLibDirXcelium" Val="$PCACHEDIR/compile_simlib/xcelium"/>
17+
<Option Name="CompiledLibDirVCS" Val="$PCACHEDIR/compile_simlib/vcs"/>
18+
<Option Name="CompiledLibDirRiviera" Val="$PCACHEDIR/compile_simlib/riviera"/>
19+
<Option Name="CompiledLibDirActivehdl" Val="$PCACHEDIR/compile_simlib/activehdl"/>
20+
<Option Name="SimulatorInstallDirModelSim" Val=""/>
21+
<Option Name="SimulatorInstallDirQuesta" Val=""/>
22+
<Option Name="SimulatorInstallDirIES" Val=""/>
23+
<Option Name="SimulatorInstallDirXcelium" Val=""/>
24+
<Option Name="SimulatorInstallDirVCS" Val=""/>
25+
<Option Name="SimulatorInstallDirRiviera" Val=""/>
26+
<Option Name="SimulatorInstallDirActiveHdl" Val=""/>
27+
<Option Name="BoardPart" Val=""/>
28+
<Option Name="ActiveSimSet" Val="sim_1"/>
29+
<Option Name="DefaultLib" Val="xil_defaultlib"/>
30+
<Option Name="ProjectType" Val="Default"/>
31+
<Option Name="IPOutputRepo" Val="$PCACHEDIR/ip"/>
32+
<Option Name="IPDefaultOutputPath" Val="$PSRCDIR/sources_1"/>
33+
<Option Name="IPCachePermission" Val="read"/>
34+
<Option Name="IPCachePermission" Val="write"/>
35+
<Option Name="EnableCoreContainer" Val="FALSE"/>
36+
<Option Name="CreateRefXciForCoreContainers" Val="FALSE"/>
37+
<Option Name="IPUserFilesDir" Val="$PIPUSERFILESDIR"/>
38+
<Option Name="IPStaticSourceDir" Val="$PIPUSERFILESDIR/ipstatic"/>
39+
<Option Name="EnableBDX" Val="FALSE"/>
40+
<Option Name="WTXSimLaunchSim" Val="7"/>
41+
<Option Name="WTModelSimLaunchSim" Val="0"/>
42+
<Option Name="WTQuestaLaunchSim" Val="0"/>
43+
<Option Name="WTIesLaunchSim" Val="0"/>
44+
<Option Name="WTVcsLaunchSim" Val="0"/>
45+
<Option Name="WTRivieraLaunchSim" Val="0"/>
46+
<Option Name="WTActivehdlLaunchSim" Val="0"/>
47+
<Option Name="WTXSimExportSim" Val="0"/>
48+
<Option Name="WTModelSimExportSim" Val="0"/>
49+
<Option Name="WTQuestaExportSim" Val="0"/>
50+
<Option Name="WTIesExportSim" Val="0"/>
51+
<Option Name="WTVcsExportSim" Val="0"/>
52+
<Option Name="WTRivieraExportSim" Val="0"/>
53+
<Option Name="WTActivehdlExportSim" Val="0"/>
54+
<Option Name="GenerateIPUpgradeLog" Val="TRUE"/>
55+
<Option Name="XSimRadix" Val="hex"/>
56+
<Option Name="XSimTimeUnit" Val="ns"/>
57+
<Option Name="XSimArrayDisplayLimit" Val="1024"/>
58+
<Option Name="XSimTraceLimit" Val="65536"/>
59+
<Option Name="SimTypes" Val="rtl"/>
60+
<Option Name="SimTypes" Val="bfm"/>
61+
<Option Name="SimTypes" Val="tlm"/>
62+
<Option Name="SimTypes" Val="tlm_dpi"/>
63+
<Option Name="MEMEnableMemoryMapGeneration" Val="TRUE"/>
64+
<Option Name="DcpsUptoDate" Val="TRUE"/>
65+
</Configuration>
66+
<FileSets Version="1" Minor="31">
67+
<FileSet Name="sources_1" Type="DesignSrcs" RelSrcDir="$PSRCDIR/sources_1">
68+
<Filter Type="Srcs"/>
69+
<File Path="$PPRDIR/../block.v">
70+
<FileInfo>
71+
<Attr Name="UsedIn" Val="synthesis"/>
72+
<Attr Name="UsedIn" Val="implementation"/>
73+
<Attr Name="UsedIn" Val="simulation"/>
74+
</FileInfo>
75+
</File>
76+
<Config>
77+
<Option Name="DesignMode" Val="RTL"/>
78+
<Option Name="TopModule" Val="block"/>
79+
<Option Name="TopAutoSet" Val="TRUE"/>
80+
</Config>
81+
</FileSet>
82+
<FileSet Name="constrs_1" Type="Constrs" RelSrcDir="$PSRCDIR/constrs_1">
83+
<Filter Type="Constrs"/>
84+
<Config>
85+
<Option Name="ConstrsType" Val="XDC"/>
86+
</Config>
87+
</FileSet>
88+
<FileSet Name="sim_1" Type="SimulationSrcs" RelSrcDir="$PSRCDIR/sim_1">
89+
<Filter Type="Srcs"/>
90+
<File Path="$PPRDIR/../block_test.v">
91+
<FileInfo>
92+
<Attr Name="UsedIn" Val="synthesis"/>
93+
<Attr Name="UsedIn" Val="implementation"/>
94+
<Attr Name="UsedIn" Val="simulation"/>
95+
</FileInfo>
96+
</File>
97+
<Config>
98+
<Option Name="DesignMode" Val="RTL"/>
99+
<Option Name="TopModule" Val="block_test"/>
100+
<Option Name="TopLib" Val="xil_defaultlib"/>
101+
<Option Name="TopAutoSet" Val="TRUE"/>
102+
<Option Name="TransportPathDelay" Val="0"/>
103+
<Option Name="TransportIntDelay" Val="0"/>
104+
<Option Name="SelectedSimModel" Val="rtl"/>
105+
<Option Name="PamDesignTestbench" Val=""/>
106+
<Option Name="PamDutBypassFile" Val="xil_dut_bypass"/>
107+
<Option Name="PamSignalDriverFile" Val="xil_bypass_driver"/>
108+
<Option Name="PamPseudoTop" Val="pseudo_tb"/>
109+
<Option Name="SrcSet" Val="sources_1"/>
110+
</Config>
111+
</FileSet>
112+
<FileSet Name="utils_1" Type="Utils" RelSrcDir="$PSRCDIR/utils_1">
113+
<Filter Type="Utils"/>
114+
<Config>
115+
<Option Name="TopAutoSet" Val="TRUE"/>
116+
</Config>
117+
</FileSet>
118+
</FileSets>
119+
<Simulators>
120+
<Simulator Name="XSim">
121+
<Option Name="Description" Val="Vivado Simulator"/>
122+
<Option Name="CompiledLib" Val="0"/>
123+
</Simulator>
124+
<Simulator Name="ModelSim">
125+
<Option Name="Description" Val="ModelSim Simulator"/>
126+
</Simulator>
127+
<Simulator Name="Questa">
128+
<Option Name="Description" Val="Questa Advanced Simulator"/>
129+
</Simulator>
130+
<Simulator Name="IES">
131+
<Option Name="Description" Val="Incisive Enterprise Simulator (IES)"/>
132+
</Simulator>
133+
<Simulator Name="Xcelium">
134+
<Option Name="Description" Val="Xcelium Parallel Simulator"/>
135+
</Simulator>
136+
<Simulator Name="VCS">
137+
<Option Name="Description" Val="Verilog Compiler Simulator (VCS)"/>
138+
</Simulator>
139+
<Simulator Name="Riviera">
140+
<Option Name="Description" Val="Riviera-PRO Simulator"/>
141+
</Simulator>
142+
</Simulators>
143+
<Runs Version="1" Minor="11">
144+
<Run Id="synth_1" Type="Ft3:Synth" SrcSet="sources_1" Part="xc7a35tcsg324-1" ConstrsSet="constrs_1" Description="Vivado Synthesis Defaults" AutoIncrementalCheckpoint="false" WriteIncrSynthDcp="false" State="current" Dir="$PRUNDIR/synth_1" IncludeInArchive="true">
145+
<Strategy Version="1" Minor="2">
146+
<StratHandle Name="Vivado Synthesis Defaults" Flow="Vivado Synthesis 2020"/>
147+
<Step Id="synth_design"/>
148+
</Strategy>
149+
<GeneratedRun Dir="$PRUNDIR" File="gen_run.xml"/>
150+
<ReportStrategy Name="Vivado Synthesis Default Reports" Flow="Vivado Synthesis 2020"/>
151+
<Report Name="ROUTE_DESIGN.REPORT_METHODOLOGY" Enabled="1"/>
152+
<RQSFiles/>
153+
</Run>
154+
<Run Id="impl_1" Type="Ft2:EntireDesign" Part="xc7a35tcsg324-1" ConstrsSet="constrs_1" Description="Default settings for Implementation." AutoIncrementalCheckpoint="false" WriteIncrSynthDcp="false" State="current" Dir="$PRUNDIR/impl_1" SynthRun="synth_1" IncludeInArchive="true" GenFullBitstream="true">
155+
<Strategy Version="1" Minor="2">
156+
<StratHandle Name="Vivado Implementation Defaults" Flow="Vivado Implementation 2020"/>
157+
<Step Id="init_design"/>
158+
<Step Id="opt_design"/>
159+
<Step Id="power_opt_design"/>
160+
<Step Id="place_design"/>
161+
<Step Id="post_place_power_opt_design"/>
162+
<Step Id="phys_opt_design"/>
163+
<Step Id="route_design"/>
164+
<Step Id="post_route_phys_opt_design"/>
165+
<Step Id="write_bitstream"/>
166+
</Strategy>
167+
<GeneratedRun Dir="$PRUNDIR" File="gen_run.xml"/>
168+
<ReportStrategy Name="Vivado Implementation Default Reports" Flow="Vivado Implementation 2020"/>
169+
<Report Name="ROUTE_DESIGN.REPORT_METHODOLOGY" Enabled="1"/>
170+
<RQSFiles/>
171+
</Run>
172+
</Runs>
173+
<Board/>
174+
<DashboardSummary Version="1" Minor="0">
175+
<Dashboards>
176+
<Dashboard Name="default_dashboard">
177+
<Gadgets>
178+
<Gadget Name="drc_1" Type="drc" Version="1" Row="2" Column="0">
179+
<GadgetParam Name="REPORTS" Type="string_list" Value="impl_1#impl_1_route_report_drc_0 "/>
180+
</Gadget>
181+
<Gadget Name="methodology_1" Type="methodology" Version="1" Row="2" Column="1">
182+
<GadgetParam Name="REPORTS" Type="string_list" Value="impl_1#impl_1_route_report_methodology_0 "/>
183+
</Gadget>
184+
<Gadget Name="power_1" Type="power" Version="1" Row="1" Column="0">
185+
<GadgetParam Name="REPORTS" Type="string_list" Value="impl_1#impl_1_route_report_power_0 "/>
186+
</Gadget>
187+
<Gadget Name="timing_1" Type="timing" Version="1" Row="0" Column="1">
188+
<GadgetParam Name="REPORTS" Type="string_list" Value="impl_1#impl_1_route_report_timing_summary_0 "/>
189+
</Gadget>
190+
<Gadget Name="utilization_1" Type="utilization" Version="1" Row="0" Column="0">
191+
<GadgetParam Name="REPORTS" Type="string_list" Value="synth_1#synth_1_synth_report_utilization_0 "/>
192+
<GadgetParam Name="RUN.STEP" Type="string" Value="synth_design"/>
193+
<GadgetParam Name="RUN.TYPE" Type="string" Value="synthesis"/>
194+
</Gadget>
195+
<Gadget Name="utilization_2" Type="utilization" Version="1" Row="1" Column="1">
196+
<GadgetParam Name="REPORTS" Type="string_list" Value="impl_1#impl_1_place_report_utilization_0 "/>
197+
</Gadget>
198+
</Gadgets>
199+
</Dashboard>
200+
<CurrentDashboard>default_dashboard</CurrentDashboard>
201+
</Dashboards>
202+
</DashboardSummary>
203+
</Project>
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
`timescale 1ns / 1ps
2+
3+
module block_test ();
4+
reg D, Clk = 0;
5+
wire [3:0] X, Y;
6+
7+
block UUT (.D(D), .Clk(Clk), .X(X), .Y(Y));
8+
9+
initial begin
10+
#80 D = 1; #150 D = 0;
11+
#270 D = 1; #150 D = 0;
12+
#270 D = 1; #150 D = 0;
13+
#270 D = 1; #150 D = 0;
14+
#270 D = 1; #150 D = 0;
15+
#270 D = 1; #150 D = 0;
16+
#270 D = 1; #150 D = 0;
17+
#270 D = 1; #150 D = 0;
18+
#270 D = 1; #150 D = 0;
19+
#270 D = 1; #150 D = 0;
20+
#270 D = 1; #150 D = 0;
21+
#270 D = 1; #150 D = 0;
22+
#270 D = 1; #150 D = 0;
23+
#270 D = 1; #150 D = 0;
24+
#270 D = 1; #150 D = 0;
25+
26+
end
27+
28+
initial begin
29+
#100 Clk = 1; #100 Clk = 0;
30+
#100 Clk = 1; #100 Clk = 0;
31+
#100 Clk = 1; #100 Clk = 0;
32+
#100 Clk = 1; #100 Clk = 0;
33+
#100 Clk = 1; #100 Clk = 0;
34+
#100 Clk = 1; #100 Clk = 0;
35+
#100 Clk = 1; #100 Clk = 0;
36+
#100 Clk = 1; #100 Clk = 0;
37+
#100 Clk = 1; #100 Clk = 0;
38+
#100 Clk = 1; #100 Clk = 0;
39+
#100 Clk = 1; #100 Clk = 0;
40+
#100 Clk = 1; #100 Clk = 0;
41+
#100 Clk = 1; #100 Clk = 0;
42+
#100 Clk = 1; #100 Clk = 0;
43+
#100 Clk = 1; #100 Clk = 0;
44+
#100 Clk = 1; #100 Clk = 0;
45+
#100 Clk = 1; #100 Clk = 0;
46+
#100 Clk = 1; #100 Clk = 0;
47+
#100 Clk = 1; #100 Clk = 0;
48+
#100 Clk = 1; #100 Clk = 0;
49+
#100 Clk = 1; #100 Clk = 0;
50+
#100 Clk = 1; #100 Clk = 0;
51+
#100 Clk = 1; #100 Clk = 0;
52+
#100 Clk = 1; #100 Clk = 0;
53+
#100 Clk = 1; #100 Clk = 0;
54+
#100 Clk = 1; #100 Clk = 0;
55+
#100 Clk = 1; #100 Clk = 0;
56+
#100 Clk = 1; #100 Clk = 0;
57+
#100 Clk = 1; #100 Clk = 0;
58+
#100 Clk = 1; #100 Clk = 0;
59+
#100 Clk = 1; #100 Clk = 0;
60+
#100 Clk = 1; #100 Clk = 0;
61+
62+
end
63+
64+
initial begin
65+
#6400;
66+
$finish;
67+
end
68+
69+
endmodule // block_test

0 commit comments

Comments
 (0)