From 59771a48137c3a323782ff3a1fc7a6f67bd24a3e Mon Sep 17 00:00:00 2001 From: musabe24 Date: Thu, 22 Feb 2024 23:07:11 +0100 Subject: [PATCH 1/4] =?UTF-8?q?Aufgabe=20Zuhause=20komplett=20von=20vorne?= =?UTF-8?q?=20angefangen=20zu=20l=C3=B6sen=20und=20lauff=C3=A4hig=20gemach?= =?UTF-8?q?t.=20Es=20besteht=20noch=20das=20Problem,=20das=20die=20Fu?= =?UTF-8?q?=C3=9Fg=C3=A4ngerampel=20zu=20fr=C3=BCh=20auf=20gr=C3=BCn=20geh?= =?UTF-8?q?t.=20Es=20muss=20erst=20ein=20zyklus=20vergehen,=20bevor=20das?= =?UTF-8?q?=20geschieht.=20->=20LATCH?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- labor_3/Übungen/ampel/sim/modelsim.ini | 324 +++++++++++++++++ labor_3/Übungen/ampel/sim/sim.tcl | 3 +- labor_3/Übungen/ampel/sim/vsim.wlf | Bin 0 -> 73728 bytes labor_3/Übungen/ampel/sim/wave.do | 1 + labor_3/Übungen/ampel/sim/work/_info | 63 ++++ labor_3/Übungen/ampel/sim/work/_vmake | 3 + .../Übungen/ampel/sim/work/ampel/_primary.dat | Bin 0 -> 4818 bytes .../Übungen/ampel/sim/work/ampel/_primary.dbs | Bin 0 -> 6570 bytes .../Übungen/ampel/sim/work/ampel/_primary.vhd | 32 ++ .../Übungen/ampel/sim/work/ampel/verilog.prw | Bin 0 -> 2168 bytes .../Übungen/ampel/sim/work/ampel/verilog.psm | Bin 0 -> 51000 bytes .../sim/work/mod_n_counter_10bit/_primary.dat | Bin 0 -> 506 bytes .../sim/work/mod_n_counter_10bit/_primary.dbs | Bin 0 -> 651 bytes .../sim/work/mod_n_counter_10bit/_primary.vhd | 16 + .../sim/work/mod_n_counter_10bit/verilog.prw | Bin 0 -> 304 bytes .../sim/work/mod_n_counter_10bit/verilog.psm | Bin 0 -> 6352 bytes .../ampel/sim/work/tb_ampel/_primary.dat | Bin 0 -> 939 bytes .../ampel/sim/work/tb_ampel/_primary.dbs | Bin 0 -> 1173 bytes .../ampel/sim/work/tb_ampel/_primary.vhd | 4 + .../ampel/sim/work/tb_ampel/verilog.prw | Bin 0 -> 558 bytes .../ampel/sim/work/tb_ampel/verilog.psm | Bin 0 -> 8016 bytes labor_3/Übungen/ampel/src/ampel.v | 335 ++++++++++++++++++ labor_3/Übungen/ampel/src/ampel_wo_src.v | 159 --------- 23 files changed, 780 insertions(+), 160 deletions(-) create mode 100644 labor_3/Übungen/ampel/sim/modelsim.ini create mode 100644 labor_3/Übungen/ampel/sim/vsim.wlf create mode 100644 labor_3/Übungen/ampel/sim/work/_info create mode 100644 labor_3/Übungen/ampel/sim/work/_vmake create mode 100644 labor_3/Übungen/ampel/sim/work/ampel/_primary.dat create mode 100644 labor_3/Übungen/ampel/sim/work/ampel/_primary.dbs create mode 100644 labor_3/Übungen/ampel/sim/work/ampel/_primary.vhd create mode 100644 labor_3/Übungen/ampel/sim/work/ampel/verilog.prw create mode 100644 labor_3/Übungen/ampel/sim/work/ampel/verilog.psm create mode 100644 labor_3/Übungen/ampel/sim/work/mod_n_counter_10bit/_primary.dat create mode 100644 labor_3/Übungen/ampel/sim/work/mod_n_counter_10bit/_primary.dbs create mode 100644 labor_3/Übungen/ampel/sim/work/mod_n_counter_10bit/_primary.vhd create mode 100644 labor_3/Übungen/ampel/sim/work/mod_n_counter_10bit/verilog.prw create mode 100644 labor_3/Übungen/ampel/sim/work/mod_n_counter_10bit/verilog.psm create mode 100644 labor_3/Übungen/ampel/sim/work/tb_ampel/_primary.dat create mode 100644 labor_3/Übungen/ampel/sim/work/tb_ampel/_primary.dbs create mode 100644 labor_3/Übungen/ampel/sim/work/tb_ampel/_primary.vhd create mode 100644 labor_3/Übungen/ampel/sim/work/tb_ampel/verilog.prw create mode 100644 labor_3/Übungen/ampel/sim/work/tb_ampel/verilog.psm create mode 100644 labor_3/Übungen/ampel/src/ampel.v delete mode 100644 labor_3/Übungen/ampel/src/ampel_wo_src.v diff --git a/labor_3/Übungen/ampel/sim/modelsim.ini b/labor_3/Übungen/ampel/sim/modelsim.ini new file mode 100644 index 0000000..b0f61a8 --- /dev/null +++ b/labor_3/Übungen/ampel/sim/modelsim.ini @@ -0,0 +1,324 @@ +; Copyright 1991-2009 Mentor Graphics Corporation +; +; All Rights Reserved. +; +; THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION WHICH IS THE PROPERTY OF +; MENTOR GRAPHICS CORPORATION OR ITS LICENSORS AND IS SUBJECT TO LICENSE TERMS. +; + +[Library] +others = $MODEL_TECH/../modelsim.ini + +; Altera Primitive libraries +; +; VHDL Section +; +; +; Verilog Section +; + +work = work +[vcom] +; VHDL93 variable selects language version as the default. +; Default is VHDL-2002. +; Value of 0 or 1987 for VHDL-1987. +; Value of 1 or 1993 for VHDL-1993. +; Default or value of 2 or 2002 for VHDL-2002. +; Default or value of 3 or 2008 for VHDL-2008. +VHDL93 = 2002 + +; Show source line containing error. Default is off. +; Show_source = 1 + +; Turn off unbound-component warnings. Default is on. +; Show_Warning1 = 0 + +; Turn off process-without-a-wait-statement warnings. Default is on. +; Show_Warning2 = 0 + +; Turn off null-range warnings. Default is on. +; Show_Warning3 = 0 + +; Turn off no-space-in-time-literal warnings. Default is on. +; Show_Warning4 = 0 + +; Turn off multiple-drivers-on-unresolved-signal warnings. Default is on. +; Show_Warning5 = 0 + +; Turn off optimization for IEEE std_logic_1164 package. Default is on. +; Optimize_1164 = 0 + +; Turn on resolving of ambiguous function overloading in favor of the +; "explicit" function declaration (not the one automatically created by +; the compiler for each type declaration). Default is off. +; The .ini file has Explicit enabled so that std_logic_signed/unsigned +; will match the behavior of synthesis tools. +Explicit = 1 + +; Turn off acceleration of the VITAL packages. Default is to accelerate. +; NoVital = 1 + +; Turn off VITAL compliance checking. Default is checking on. +; NoVitalCheck = 1 + +; Ignore VITAL compliance checking errors. Default is to not ignore. +; IgnoreVitalErrors = 1 + +; Turn off VITAL compliance checking warnings. Default is to show warnings. +; Show_VitalChecksWarnings = 0 + +; Keep silent about case statement static warnings. +; Default is to give a warning. +; NoCaseStaticError = 1 + +; Keep silent about warnings caused by aggregates that are not locally static. +; Default is to give a warning. +; NoOthersStaticError = 1 + +; Turn off inclusion of debugging info within design units. +; Default is to include debugging info. +; NoDebug = 1 + +; Turn off "Loading..." messages. Default is messages on. +; Quiet = 1 + +; Turn on some limited synthesis rule compliance checking. Checks only: +; -- signals used (read) by a process must be in the sensitivity list +; CheckSynthesis = 1 + +; Activate optimizations on expressions that do not involve signals, +; waits, or function/procedure/task invocations. Default is off. +; ScalarOpts = 1 + +; Require the user to specify a configuration for all bindings, +; and do not generate a compile time default binding for the +; component. This will result in an elaboration error of +; 'component not bound' if the user fails to do so. Avoids the rare +; issue of a false dependency upon the unused default binding. +; RequireConfigForAllDefaultBinding = 1 + +; Inhibit range checking on subscripts of arrays. Range checking on +; scalars defined with subtypes is inhibited by default. +; NoIndexCheck = 1 + +; Inhibit range checks on all (implicit and explicit) assignments to +; scalar objects defined with subtypes. +; NoRangeCheck = 1 + +[vlog] + +; Turn off inclusion of debugging info within design units. +; Default is to include debugging info. +; NoDebug = 1 + +; Turn off "loading..." messages. Default is messages on. +; Quiet = 1 + +; Turn on Verilog hazard checking (order-dependent accessing of global vars). +; Default is off. +; Hazard = 1 + +; Turn on converting regular Verilog identifiers to uppercase. Allows case +; insensitivity for module names. Default is no conversion. +; UpCase = 1 + +; Turn on incremental compilation of modules. Default is off. +; Incremental = 1 + +; Turns on lint-style checking. +; Show_Lint = 1 + +[vsim] +; Simulator resolution +; Set to fs, ps, ns, us, ms, or sec with optional prefix of 1, 10, or 100. +Resolution = ps + +; User time unit for run commands +; Set to default, fs, ps, ns, us, ms, or sec. The default is to use the +; unit specified for Resolution. For example, if Resolution is 100ps, +; then UserTimeUnit defaults to ps. +; Should generally be set to default. +UserTimeUnit = default + +; Default run length +RunLength = 100 + +; Maximum iterations that can be run without advancing simulation time +IterationLimit = 5000 + +; Directive to license manager: +; vhdl Immediately reserve a VHDL license +; vlog Immediately reserve a Verilog license +; plus Immediately reserve a VHDL and Verilog license +; nomgc Do not look for Mentor Graphics Licenses +; nomti Do not look for Model Technology Licenses +; noqueue Do not wait in the license queue when a license isn't available +; viewsim Try for viewer license but accept simulator license(s) instead +; of queuing for viewer license +; License = plus + +; Stop the simulator after a VHDL/Verilog assertion message +; 0 = Note 1 = Warning 2 = Error 3 = Failure 4 = Fatal +BreakOnAssertion = 3 + +; Assertion Message Format +; %S - Severity Level +; %R - Report Message +; %T - Time of assertion +; %D - Delta +; %I - Instance or Region pathname (if available) +; %% - print '%' character +; AssertionFormat = "** %S: %R\n Time: %T Iteration: %D%I\n" + +; Assertion File - alternate file for storing VHDL/Verilog assertion messages +; AssertFile = assert.log + +; Default radix for all windows and commands... +; Set to symbolic, ascii, binary, octal, decimal, hex, unsigned +DefaultRadix = symbolic + +; VSIM Startup command +; Startup = do startup.do + +; File for saving command transcript +TranscriptFile = transcript + +; File for saving command history +; CommandHistory = cmdhist.log + +; Specify whether paths in simulator commands should be described +; in VHDL or Verilog format. +; For VHDL, PathSeparator = / +; For Verilog, PathSeparator = . +; Must not be the same character as DatasetSeparator. +PathSeparator = / + +; Specify the dataset separator for fully rooted contexts. +; The default is ':'. For example, sim:/top +; Must not be the same character as PathSeparator. +DatasetSeparator = : + +; Disable VHDL assertion messages +; IgnoreNote = 1 +; IgnoreWarning = 1 +; IgnoreError = 1 +; IgnoreFailure = 1 + +; Default force kind. May be freeze, drive, deposit, or default +; or in other terms, fixed, wired, or charged. +; A value of "default" will use the signal kind to determine the +; force kind, drive for resolved signals, freeze for unresolved signals +; DefaultForceKind = freeze + +; If zero, open files when elaborated; otherwise, open files on +; first read or write. Default is 0. +; DelayFileOpen = 1 + +; Control VHDL files opened for write. +; 0 = Buffered, 1 = Unbuffered +UnbufferedOutput = 0 + +; Control the number of VHDL files open concurrently. +; This number should always be less than the current ulimit +; setting for max file descriptors. +; 0 = unlimited +ConcurrentFileLimit = 40 + +; Control the number of hierarchical regions displayed as +; part of a signal name shown in the Wave window. +; A value of zero tells VSIM to display the full name. +; The default is 0. +; WaveSignalNameWidth = 0 + +; Turn off warnings from the std_logic_arith, std_logic_unsigned +; and std_logic_signed packages. +; StdArithNoWarnings = 1 + +; Turn off warnings from the IEEE numeric_std and numeric_bit packages. +; NumericStdNoWarnings = 1 + +; Control the format of the (VHDL) FOR generate statement label +; for each iteration. Do not quote it. +; The format string here must contain the conversion codes %s and %d, +; in that order, and no other conversion codes. The %s represents +; the generate_label; the %d represents the generate parameter value +; at a particular generate iteration (this is the position number if +; the generate parameter is of an enumeration type). Embedded whitespace +; is allowed (but discouraged); leading and trailing whitespace is ignored. +; Application of the format must result in a unique scope name over all +; such names in the design so that name lookup can function properly. +; GenerateFormat = %s__%d + +; Specify whether checkpoint files should be compressed. +; The default is 1 (compressed). +; CheckpointCompressMode = 0 + +; List of dynamically loaded objects for Verilog PLI applications +; Veriuser = veriuser.sl + +; Specify default options for the restart command. Options can be one +; or more of: -force -nobreakpoint -nolist -nolog -nowave +; DefaultRestartOptions = -force + +; HP-UX 10.20 ONLY - Enable memory locking to speed up large designs +; (> 500 megabyte memory footprint). Default is disabled. +; Specify number of megabytes to lock. +; LockedMemory = 1000 + +; Turn on (1) or off (0) WLF file compression. +; The default is 1 (compress WLF file). +; WLFCompress = 0 + +; Specify whether to save all design hierarchy (1) in the WLF file +; or only regions containing logged signals (0). +; The default is 0 (save only regions with logged signals). +; WLFSaveAllRegions = 1 + +; WLF file time limit. Limit WLF file by time, as closely as possible, +; to the specified amount of simulation time. When the limit is exceeded +; the earliest times get truncated from the file. +; If both time and size limits are specified the most restrictive is used. +; UserTimeUnits are used if time units are not specified. +; The default is 0 (no limit). Example: WLFTimeLimit = {100 ms} +; WLFTimeLimit = 0 + +; WLF file size limit. Limit WLF file size, as closely as possible, +; to the specified number of megabytes. If both time and size limits +; are specified then the most restrictive is used. +; The default is 0 (no limit). +; WLFSizeLimit = 1000 + +; Specify whether or not a WLF file should be deleted when the +; simulation ends. A value of 1 will cause the WLF file to be deleted. +; The default is 0 (do not delete WLF file when simulation ends). +; WLFDeleteOnQuit = 1 + +; Automatic SDF compilation +; Disables automatic compilation of SDF files in flows that support it. +; Default is on, uncomment to turn off. +; NoAutoSDFCompile = 1 + +[lmc] + +[msg_system] +; Change a message severity or suppress a message. +; The format is: = [,...] +; Examples: +; note = 3009 +; warning = 3033 +; error = 3010,3016 +; fatal = 3016,3033 +; suppress = 3009,3016,3043 +; The command verror can be used to get the complete +; description of a message. + +; Control transcripting of elaboration/runtime messages. +; The default is to have messages appear in the transcript and +; recorded in the wlf file (messages that are recorded in the +; wlf file can be viewed in the MsgViewer). The other settings +; are to send messages only to the transcript or only to the +; wlf file. The valid values are +; both {default} +; tran {transcript only} +; wlf {wlf file only} +; msgmode = both diff --git a/labor_3/Übungen/ampel/sim/sim.tcl b/labor_3/Übungen/ampel/sim/sim.tcl index 1773ef0..1b31acb 100644 --- a/labor_3/Übungen/ampel/sim/sim.tcl +++ b/labor_3/Übungen/ampel/sim/sim.tcl @@ -10,7 +10,8 @@ vmap work work #Top level testbench vlog tb_ampel.v -#vlog ../src/ampel.v +define+SIMULATION +vlog ../src/ampel.v +define+SIMULATION +vlog ../src/mod_n_counter_10bit.v #Simulate #vsim -c -t ps -L ampel tb_ampel diff --git a/labor_3/Übungen/ampel/sim/vsim.wlf b/labor_3/Übungen/ampel/sim/vsim.wlf new file mode 100644 index 0000000000000000000000000000000000000000..6d99a51b2e374e11e14ce3b1335d26c0ec5e1ae0 GIT binary patch literal 73728 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 +IlLNUY`h`GTJ1?TjLj1BUS2 +VOCKRzhG[H7hm^_`n>48^e3 +R3 +Z13 w1708631937 +8../src/mod_n_counter_10bit.v +F../src/mod_n_counter_10bit.v +L0 1 +R7 +r1 +!s85 0 +31 +!s108 1708639474.750000 +!s107 ../src/mod_n_counter_10bit.v| +!s90 -reportprogress|300|../src/mod_n_counter_10bit.v| +!s101 -O0 +o-O0 +vtb_ampel +Z14 I:0IMZj9F7dM=NBGQ@:fYS0 +Z15 V6nf?5m:3VQD@E=_a?l5VH1 +R3 +R13 +Z16 8tb_ampel.v +Z17 Ftb_ampel.v +L0 17 +R7 +r1 +31 +o-O0 +Z18 !s100 1oY2jolgFK??ee;z]EH8c2 +Z19 !s108 1708639474.609000 +Z20 !s107 tb_ampel.v| +Z21 !s90 -reportprogress|300|tb_ampel.v| +!i10b 1 +!s85 0 +!s101 -O0 diff --git a/labor_3/Übungen/ampel/sim/work/_vmake b/labor_3/Übungen/ampel/sim/work/_vmake new file mode 100644 index 0000000..2f7e729 --- /dev/null +++ b/labor_3/Übungen/ampel/sim/work/_vmake @@ -0,0 +1,3 @@ +m255 +K3 +cModel Technology diff --git a/labor_3/Übungen/ampel/sim/work/ampel/_primary.dat b/labor_3/Übungen/ampel/sim/work/ampel/_primary.dat new file mode 100644 index 0000000000000000000000000000000000000000..985cf7c38c4d5ed37d0f4b46517e409fca0dab27 GIT binary patch literal 4818 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 arv+Nrf8PVwXYjxCf&bnI%7CA#H~%lU4Z8FI literal 0 HcmV?d00001 diff --git a/labor_3/Übungen/ampel/sim/work/mod_n_counter_10bit/_primary.dat b/labor_3/Übungen/ampel/sim/work/mod_n_counter_10bit/_primary.dat new file mode 100644 index 0000000000000000000000000000000000000000..2bfdebbdd89800aad9eac83268752ddb1b9f0851 GIT binary patch literal 506 zcmZQ9IK}t<_an2PUxCDvn)o|UFa55aeeZquk4+39@H?LIUCYBh28P)Je~p>`MBHBb z+xz}Be|zSoz8tf-fC|ja#go`Bl&o-dXJT0CIk}OA#~>$X=Go7ktY;M7_|EM6%+Gd4 z=S|?rd#nr{yY`eHf0K5D6R7Ry=ACIE^A*l5?PX8U*b-y0rpb$gX_c;nR6`}lTz3YB zM9xx1&Wnc6iCg{)ft1j&oKrvg|hak}Q9fRdA-8@!HIk zV~hIj_*jGW55+It;E}>U=a=$#kQ061fXIobxCEBvI((nHRZ}5QYoT5+Tk+H;ZPkd9 zrA?l7P3&LHe$;c`KXYrwR6C6d_LxJ9+rV1+!CHB^1hjG^zAxSC$v9D2*Cn34rALID zomI8S8zlXH3W&UF%{{}Vw)MLFO@sL*sjnAaNnUoulf7l3NFclD#B{yKo*U=*>%0u^ z{m061e&6nV4&OIlZ%kOgu2Jmpg>(IFx$T8%{L9%GE?xbyLW}W7m*%edr~WTf3z=6P z>ilHw!=JaJ_OJT8^2EWoEl)XC>|QGK@zNEBB^r@QVN1I!_Dj8XvuR71G4r5Zk~qiS tIgblMqH>Ga8Xol@RFjK{6EQg2^!~i;T!ona?=R+Uk6<#`>LaI|2mlNu)`S26 literal 0 HcmV?d00001 diff --git a/labor_3/Übungen/ampel/sim/work/mod_n_counter_10bit/_primary.dbs b/labor_3/Übungen/ampel/sim/work/mod_n_counter_10bit/_primary.dbs new file mode 100644 index 0000000000000000000000000000000000000000..46dc89713802a35a6cbfb783bd97e0aecf682738 GIT binary patch literal 651 zcmZQ9IK}t<*CVsWPe9`D-PhfZ~Cx<3{+`+T(I(w$adCAze}^j?L@i1<@#I^ z$qh{hIns|u^;?jbl)$CSo?)9_w@-|UJiq_*0-*xMi3}TAKu!P$F(?Q?fR|6c@zS?d zvwWvb^!~kR@3}oMMYABD1v!pI1FQ(52jUk2Cll<57D6 literal 0 HcmV?d00001 diff --git a/labor_3/Übungen/ampel/sim/work/mod_n_counter_10bit/_primary.vhd b/labor_3/Übungen/ampel/sim/work/mod_n_counter_10bit/_primary.vhd new file mode 100644 index 0000000..5969a9e --- /dev/null +++ b/labor_3/Übungen/ampel/sim/work/mod_n_counter_10bit/_primary.vhd @@ -0,0 +1,16 @@ +library verilog; +use verilog.vl_types.all; +entity mod_n_counter_10bit is + generic( + N : integer := 10 + ); + port( + CLK : in vl_logic; + RST : in vl_logic; + EN : in vl_logic; + Q : out vl_logic_vector(9 downto 0); + TC : out vl_logic + ); + attribute mti_svvh_generic_type : integer; + attribute mti_svvh_generic_type of N : constant is 1; +end mod_n_counter_10bit; diff --git a/labor_3/Übungen/ampel/sim/work/mod_n_counter_10bit/verilog.prw b/labor_3/Übungen/ampel/sim/work/mod_n_counter_10bit/verilog.prw new file mode 100644 index 0000000000000000000000000000000000000000..1f0d70b1900cca11b54a7750861a7f0608249fee GIT binary patch literal 304 zcmXYrI}XAy42E5vBMSqgrCfldEtCyZF(9Cb($3{kkQjIfl?nA2y#WW|X#5UDcD~sE z?<8Ks-8$5M6IKlzgLSY8cEBFk{p$`jtII9V8q}(;+2JO9UW=pfk?Fp0e=bO*m&CMzEClCVh}! DoH#v@ literal 0 HcmV?d00001 diff --git a/labor_3/Übungen/ampel/sim/work/mod_n_counter_10bit/verilog.psm b/labor_3/Übungen/ampel/sim/work/mod_n_counter_10bit/verilog.psm new file mode 100644 index 0000000000000000000000000000000000000000..963c66679a9a269955d3085e4bc591d259031d30 GIT binary patch literal 6352 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 S;FzBQ%_1+3%4Pdq zo_Dh_{F|Vzyv&^msJ*ghrzDVKP%v0p$XR}2@tR{k;j`V$K~g(&EpLIPwlA&cDnGM$ z$}yYpYPatoOLx9SNO2>iz`Bs6cyLScBBam_D)iFJ@fA3^s)oY>I?{29qp@g(!!&)C3%cso}tB4%jZR zIT&id=7?8E{#_=@&amOLV9HU!XFIplyS@H%Ti`43tdtfer(}btA9A>>&Y8W7`peb zIn%kgs`-%I?v{J2PCfRSHDmRueY;%sR&L$HWj=Yj?8N^Iw7&QJdi(k6yej|T$ct0l zRYREMR?kssJ#=up{L+l|tNM?L-krJNR8VmCf&(HQ(>0B~mhdcmd7)fk$`t;)k1WHY duIBU|E-Db;u-I=~4QJ!^G?N4Se#j{&0syqinB4#X literal 0 HcmV?d00001 diff --git a/labor_3/Übungen/ampel/sim/work/tb_ampel/_primary.dbs b/labor_3/Übungen/ampel/sim/work/tb_ampel/_primary.dbs new file mode 100644 index 0000000000000000000000000000000000000000..69401eb0a838c06cf6478aebd5f3f138726852cb GIT binary patch literal 1173 zcmZQ9IK}t<*CVsWPe9_>z1Q83!LrGO4K2NEF5_;`4M$d|MbkJ}3k7#Qs=;cpU%bGS0BF3Vc}# z;<5d#%Q(%H;T&X@>gdIBz$)q9EtX3~LR^>M-@IUGSaJW}?WaXirFD1SZ*~Y~$+|K7 zmFIKQk`1(C7Kp2t%z7hBdj=?E-1>SUVWnE8Dw6;729%Fb58Ei`7iD?=zAySga!D?;P9b*kR7Y z)8kD0;yo!*2mX^|`WzGQElz7o;zpXVL%buFoSLz1euY*Rk+n*Fu{kKEe418j-a zu+KW~c)mSrw@~di1D%#57= literal 0 HcmV?d00001 diff --git a/labor_3/Übungen/ampel/sim/work/tb_ampel/verilog.psm b/labor_3/Übungen/ampel/sim/work/tb_ampel/verilog.psm new file mode 100644 index 0000000000000000000000000000000000000000..ab56c209fa4e393fbb3155a15afb3cda8f584f0d GIT binary patch literal 8016 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 literal 0 HcmV?d00001 diff --git a/labor_3/Übungen/ampel/src/ampel.v b/labor_3/Übungen/ampel/src/ampel.v new file mode 100644 index 0000000..96e2703 --- /dev/null +++ b/labor_3/Übungen/ampel/src/ampel.v @@ -0,0 +1,335 @@ +/****************************************************** +* +* Description: Vorlage Ampelsteurerung +* Date: 05.01.2018 +* File Name: ampel_wo_src.v +* Version: 1.2 +* Target: Simulation and Synthesis +* Technology: +* +* Rev Author Date Changes +* ----------------------------------------------------- +* 1.0 RHK 10.10.2011 Initial Release +* 1.1 JZ 10.03.2016 several bugfixes +* 1.2 JZ 05.01.2018 angepasst auf neues Ampelboard +* 1.3 MW 07.03.2019 STATE Konstanten angepasst +*******************************************************/ + +`timescale 1ns / 1ps + +module ampel ( + input CLOCK_50, + input [1:0] KEY, + output [2:0] LEDH_L, + output [2:0] LEDH_R, + output [2:0] LEDN_L, + output [2:0] LEDN_R, + output [1:0] LEDF_L, + output [1:0] LEDF_R, + output reg DBG +); + +reg [9:0] CLKDIV1; +reg [9:0] CLKDIV2; +reg [9:0] CLKDIV3; + +reg MELDER; +reg MELDER_Q; +reg MELDER_QQ; +reg MELDER_ACK; +reg CLOCK_ENABLE; + +reg START_WARTEN; +reg [3:0] STATE; +reg [2:0] HAUPTSTR; +reg [2:0] NEBENSTR; +reg [1:0] FUSSGAENGER; + +reg [3:0] WARTEZAEHLER; +reg [3:0] WARTEWERT; + +wire en_div_1; +wire en_div_2; +wire en_div_3; + +wire [9:0] q_div_1; +wire [9:0] q_div_2; +wire [9:0] q_div_3; + +wire tc_div_1; +wire tc_div_2; +wire tc_div_3; + +// R Gr +parameter FUSS_AUS = 2'b00; +parameter FUSS_ROT = 2'b10; +parameter FUSS_GRUEN = 2'b01; +// R Ge Gr +parameter AUTO_AUS = 3'b000; +parameter AUTO_ROT = 3'b100; +parameter AUTO_GELB = 3'b010; +parameter AUTO_GRUEN = 3'b001; + +assign RESET = ~KEY[1]; + +assign LEDH_L = HAUPTSTR; +assign LEDH_R = HAUPTSTR; +assign LEDN_L = NEBENSTR; +assign LEDN_R = NEBENSTR; +assign LEDF_L = FUSSGAENGER; +assign LEDF_R = FUSSGAENGER; + +`ifdef SIMULATION +`define DIVVAL1 10-1 +`define DIVVAL3 5-1 +`else +`define DIVVAL1 1000-1 +`define DIVVAL3 50-1 +`endif + +`define FUSS_WARTEN 4 //Wartezeit +`define GELB_DAUER 4 //Wartezeit +`define FUSS_GRUEN_DAUER 4 //Wartezeit +`define ALLE_ROT_DAUER 4 //Wartezeit + +`define HAUPT_GRUEN_DAUER 4 //Wartezeit +`define NEBEN_GRUEN_DAUER 4 //Wartezeit + + +`define PHASEVAL 8 + +//clock divider to generate 1 Hz +//Clock Enable Generation +assign en_div_1 = 1'b1; +assign en_div_2 = tc_div_1; +assign en_div_3 = tc_div_1 & tc_div_2; + +always @(en_div_3) begin + CLOCK_ENABLE <= en_div_3; +end + + +// synchronisze KEY to CLOCK_50 +always @(posedge CLOCK_50) begin + MELDER_Q = ~KEY[0]; + MELDER_QQ = MELDER_Q; +end + +// Melder sofort setzen +// Melder zuruecksetzen wenn die Anforderung von der Statemachine verarbeitet +// wurde. Die Ampelanlage gibt den FUSSGAENGERn nur dann gruen wenn +// ein Melder anstehst... +always @(posedge CLOCK_50 or posedge RESET) begin + if (RESET) + MELDER <= 1'b0; + else begin + case ({MELDER_QQ,MELDER_ACK}) + 2'b00: ; + 2'b01: MELDER <= 1'b0; + 2'b10: MELDER <= 1'b1; + 2'b11: MELDER <= ~MELDER; + endcase + end +end + +//Wartezaehler + +assign WARTEN_FERTIG = (WARTEZAEHLER == 1'b0); + +always @(posedge CLOCK_50 or posedge RESET) begin + if (RESET) begin + WARTEZAEHLER <= WARTEWERT; + end + else if (CLOCK_ENABLE) begin + if (~WARTEN_FERTIG) begin + WARTEZAEHLER <= WARTEZAEHLER - 1'b1; + end + else if (START_WARTEN) begin + START_WARTEN <= ~START_WARTEN; + WARTEZAEHLER <= WARTEWERT; + end + end +end + + +always @(posedge CLOCK_50 or posedge RESET) + if (RESET) + begin + HAUPTSTR <= AUTO_GRUEN; + NEBENSTR <= AUTO_ROT; + FUSSGAENGER <= FUSS_ROT; + START_WARTEN <= 1'b0; + STATE <= 4'd0; + MELDER_ACK <= 1'b0; + end + else + if (CLOCK_ENABLE) + case (STATE) + 4'd0: begin + if (~WARTEN_FERTIG) begin + START_WARTEN <= 1'b0; + STATE <= 4'd0; + end + else begin + HAUPTSTR <= AUTO_GRUEN; + NEBENSTR <= AUTO_ROT; + FUSSGAENGER <= FUSS_ROT; + START_WARTEN <= 1'b1; + WARTEWERT <= `HAUPT_GRUEN_DAUER; + STATE <= 4'd1; + end + end + + 4'd1: begin + if(~WARTEN_FERTIG) begin + START_WARTEN <= 1'b0; + STATE <= 4'd1; + end + else begin + HAUPTSTR <= AUTO_GELB; + NEBENSTR <= AUTO_ROT; + FUSSGAENGER <= FUSS_ROT; + START_WARTEN <= 1'b1; + WARTEWERT <= `GELB_DAUER; + STATE <= 4'd2; + end + + end + 4'd2: begin + if (~WARTEN_FERTIG) begin + START_WARTEN <= 1'b0; + STATE <= 4'd2; + end + else if (WARTEN_FERTIG && MELDER) begin + HAUPTSTR <= AUTO_ROT; + NEBENSTR <= AUTO_ROT; + FUSSGAENGER <= FUSS_ROT; + START_WARTEN <= 1'b1; + WARTEWERT <= `FUSS_WARTEN; + MELDER_ACK <= 1'b1; + STATE <= 4'd3; + end + else if (WARTEN_FERTIG && ~MELDER) begin + HAUPTSTR <= AUTO_ROT; + NEBENSTR <= AUTO_ROT; + FUSSGAENGER <= FUSS_ROT; + START_WARTEN <= 1'b1; + WARTEWERT <= `ALLE_ROT_DAUER; + STATE <= 4'd4; + end + + end + 4'd3: begin + if (~WARTEN_FERTIG) begin + START_WARTEN <= 1'b0; + STATE <= 4'd3; + end + else begin + HAUPTSTR <= AUTO_ROT; + NEBENSTR <= AUTO_ROT; + FUSSGAENGER <= FUSS_GRUEN; + START_WARTEN <= 1'b1; + WARTEWERT <= `FUSS_GRUEN_DAUER; + MELDER_ACK <= 1'b0; + STATE <= 4'd2; + end + end + 4'd4: begin + if (~WARTEN_FERTIG) begin + START_WARTEN <= 1'b0; + STATE <= 4'd4; + end + else begin + HAUPTSTR <= AUTO_ROT; + NEBENSTR <= AUTO_GELB | AUTO_ROT; + FUSSGAENGER <= FUSS_ROT; + START_WARTEN <= 1'b1; + WARTEWERT <= `GELB_DAUER; + STATE <= 4'd5; + end + end + 4'd5: begin + if (~WARTEN_FERTIG) begin + START_WARTEN <= 1'b0; + STATE <= 4'd5; + end + else begin + HAUPTSTR <= AUTO_ROT; + NEBENSTR <= AUTO_GRUEN; + FUSSGAENGER <= FUSS_ROT; + START_WARTEN <= 1'b1; + WARTEWERT <= `NEBEN_GRUEN_DAUER; + STATE <= 4'd6; + end + end + 4'd6: begin + if (~WARTEN_FERTIG) begin + START_WARTEN <= 1'b0; + STATE <= 4'd6; + end + else begin + HAUPTSTR <= AUTO_ROT; + NEBENSTR <= AUTO_GELB; + FUSSGAENGER <= FUSS_ROT; + START_WARTEN <= 1'b1; + WARTEWERT <= `GELB_DAUER; + STATE <= 4'd7; + end + end + 4'd7: begin + if (~WARTEN_FERTIG) begin + START_WARTEN <= 1'b0; + STATE <= 4'd7; + end + else begin + HAUPTSTR <= AUTO_ROT; + NEBENSTR <= AUTO_ROT; + FUSSGAENGER <= FUSS_ROT; + START_WARTEN <= 1'b1; + WARTEWERT <= `ALLE_ROT_DAUER; + STATE <= 4'd8; + end + end + 4'd8: begin + if (~WARTEN_FERTIG) begin + START_WARTEN <= 1'b0; + STATE <= 4'd8; + end + else begin + HAUPTSTR <= AUTO_GELB | AUTO_ROT; + NEBENSTR <= AUTO_ROT; + FUSSGAENGER <= FUSS_ROT; + START_WARTEN <= 1'b1; + WARTEWERT <= `GELB_DAUER; + STATE <= 4'd0; + end + end + default: + STATE <= 4'd1; + endcase + +mod_n_counter_10bit #(.N(`DIVVAL1)) divider_1( + .CLK(CLOCK_50), + .RST(RESET), + .EN(en_div_1), + .Q(q_div_1), + .TC(tc_div_1) +); + +mod_n_counter_10bit #(.N(`DIVVAL1)) divider_2( + .CLK(CLOCK_50), + .RST(RESET), + .EN(en_div_2), + .Q(q_div_2), + .TC(tc_div_2) +); + +mod_n_counter_10bit #(.N(`DIVVAL3)) divider_3( + .CLK(CLOCK_50), + .RST(RESET), + .EN(en_div_3), + .Q(q_div_3), + .TC(tc_div_3) +); + +endmodule diff --git a/labor_3/Übungen/ampel/src/ampel_wo_src.v b/labor_3/Übungen/ampel/src/ampel_wo_src.v deleted file mode 100644 index 03994c7..0000000 --- a/labor_3/Übungen/ampel/src/ampel_wo_src.v +++ /dev/null @@ -1,159 +0,0 @@ -/****************************************************** -* -* Description: Vorlage Ampelsteurerung -* Date: 05.01.2018 -* File Name: ampel_wo_src.v -* Version: 1.2 -* Target: Simulation and Synthesis -* Technology: -* -* Rev Author Date Changes -* ----------------------------------------------------- -* 1.0 RHK 10.10.2011 Initial Release -* 1.1 JZ 10.03.2016 several bugfixes -* 1.2 JZ 05.01.2018 angepasst auf neues Ampelboard -* 1.3 MW 07.03.2019 STATE Konstanten angepasst -*******************************************************/ - -`timescale 1ns / 1ps - -module ampel ( - input CLOCK_50, - input [1:0] KEY, - output [2:0] LEDH_L, - output [2:0] LEDH_R, - output [2:0] LEDN_L, - output [2:0] LEDN_R, - output [1:0] LEDF_L, - output [1:0] LEDF_R, - output reg DBG -); - -reg [9:0] CLKDIV1; -reg [9:0] CLKDIV2; -reg [9:0] CLKDIV3; - -reg MELDER; -reg MELDER_Q; -reg MELDER_QQ; -reg MELDER_ACK; -reg CLOCK_ENABLE; - -reg START_WARTEN; -reg [3:0] STATE; -reg [2:0] HAUPTSTR; -reg [2:0] NEBENSTR; -reg [1:0] FUSSGAENGER; - -reg [3:0] WARTEZAEHLER; -reg [3:0] WARTEWERT; - -// R Gr -parameter FUSS_AUS = 2'b00; -parameter FUSS_ROT = 2'b10; -parameter FUSS_GRUEN = 2'b01; -// R Ge Gr -parameter AUTO_AUS = 3'b000; -parameter AUTO_ROT = 3'b100; -parameter AUTO_GELB = 3'b010; -parameter AUTO_GRUEN = 3'b001; - -assign RESETn = KEY[1]; - -assign LEDH_L = HAUPTSTR; -assign LEDH_R = HAUPTSTR; -assign LEDN_L = NEBENSTR; -assign LEDN_R = NEBENSTR; -assign LEDF_L = FUSSGAENGER; -assign LEDF_R = FUSSGAENGER; - -`ifdef SIMULATION -`define DIVVAL1 10-1 -`define DIVVAL3 5-1 -`else -`define DIVVAL1 1000-1 -`define DIVVAL3 50-1 -`endif - -`define FUSS_WARTEN 4 //Wartezeit -`define GELB_DAUER 4 //Wartezeit -`define FUSS_GRUEN_DAUER 4 //Wartezeit -`define ALLE_ROT_DAUER 4 //Wartezeit - -`define HAUPT_GRUEN_DAUER 4 //Wartezeit -`define NEBEN_GRUEN_DAUER 4 //Wartezeit - - -`define PHASEVAL 8 - -//clock divider to generate 1 Hz -// - -// HIER IHREN CODE EINFÜGEN - - -// synchronisze KEY to CLOCK_50 -always @(posedge CLOCK_50) begin -// HIER IHREN CODE EINFÜGEN -end - -// Melder sofort setzen -// Melder zuruecksetzen wenn die Anforderung von der Statemachine verarbeitet -// wurde. Die Ampelanlage gibt den FUSSGAENGERn nur dann gruen wenn -// ein Melder anstehst... -always @(posedge CLOCK_50 or negedge RESETn) begin - if (~RESETn) - MELDER <= 1'b0; - else begin -// HIER IHREN CODE EINFÜGEN - end -end - -//Wartezaehler -// HIER IHREN CODE EINFÜGEN - -assign WARTEN_FERTIG = // HIER IHREN CODE EINFÜGEN; - - -always @(posedge CLOCK_50 or negedge RESETn) - if (~RESETn) - begin - HAUPTSTR <= AUTO_GRUEN; - NEBENSTR <= AUTO_ROT; - FUSSGAENGER <= FUSS_ROT; - START_WARTEN <= 1'b0; - STATE <= 4'd0; - MELDER_ACK <= 1'b0; - end - else - if (CLOCK_ENABLE) - case (STATE) - 4'd0: begin - - end - 4'd1: begin - - end - 4'd2: begin - - end - 4'd3: begin - - end - 4'd4: begin - - end - 4'd5: begin - - end - 4'd6: begin - - end - 4'd7: begin - - end - default: - STATE <= 4'd1; - endcase - -endmodule From 3c2c1f907549dcfd62c02fa5a7aa48f0c24e3c59 Mon Sep 17 00:00:00 2001 From: musabe24 Date: Fri, 23 Feb 2024 11:47:11 +0100 Subject: [PATCH 2/4] =?UTF-8?q?Versucht,=20n=C3=A4her=20an=20die=20L=C3=B6?= =?UTF-8?q?sung=20zu=20kommen.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- labor_3/Übungen/ampel/sim/sim.tcl | 3 +- labor_3/Übungen/ampel/sim/vsim.wlf | Bin 73728 -> 40960 bytes labor_3/Übungen/ampel/sim/wave.do | 54 ++++++++++++++---- labor_3/Übungen/ampel/sim/work/_info | 14 ++--- .../Übungen/ampel/sim/work/ampel/_primary.dat | Bin 4818 -> 4837 bytes .../Übungen/ampel/sim/work/ampel/_primary.dbs | Bin 6570 -> 6570 bytes .../Übungen/ampel/sim/work/ampel/verilog.prw | Bin 2168 -> 2199 bytes .../Übungen/ampel/sim/work/ampel/verilog.psm | Bin 51000 -> 51688 bytes .../sim/work/mod_n_counter_10bit/_primary.dat | Bin 506 -> 506 bytes .../sim/work/mod_n_counter_10bit/_primary.dbs | Bin 651 -> 651 bytes .../ampel/sim/work/tb_ampel/_primary.dat | Bin 939 -> 939 bytes .../ampel/sim/work/tb_ampel/_primary.dbs | Bin 1173 -> 1173 bytes labor_3/Übungen/ampel/src/ampel.v | 7 +-- 13 files changed, 56 insertions(+), 22 deletions(-) diff --git a/labor_3/Übungen/ampel/sim/sim.tcl b/labor_3/Übungen/ampel/sim/sim.tcl index 1b31acb..5b719a5 100644 --- a/labor_3/Übungen/ampel/sim/sim.tcl +++ b/labor_3/Übungen/ampel/sim/sim.tcl @@ -20,4 +20,5 @@ vsim -c -t ps tb_ampel #get wave do wave.do -run 1500 us \ No newline at end of file +run 1500 us +#run 400 us \ No newline at end of file diff --git a/labor_3/Übungen/ampel/sim/vsim.wlf b/labor_3/Übungen/ampel/sim/vsim.wlf index 6d99a51b2e374e11e14ce3b1335d26c0ec5e1ae0..2f3114e836c51d940fbfb2745482cbe04a83a72d 100644 GIT binary patch delta 2148 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 R3 -Z13 w1708631937 +Z13 w1708675165 8../src/mod_n_counter_10bit.v F../src/mod_n_counter_10bit.v L0 1 @@ -37,7 +37,7 @@ R7 r1 !s85 0 31 -!s108 1708639474.750000 +!s108 1708681485.276000 !s107 ../src/mod_n_counter_10bit.v| !s90 -reportprogress|300|../src/mod_n_counter_10bit.v| !s101 -O0 @@ -55,7 +55,7 @@ r1 31 o-O0 Z18 !s100 1oY2jolgFK??ee;z]EH8c2 -Z19 !s108 1708639474.609000 +Z19 !s108 1708681485.163000 Z20 !s107 tb_ampel.v| Z21 !s90 -reportprogress|300|tb_ampel.v| !i10b 1 diff --git a/labor_3/Übungen/ampel/sim/work/ampel/_primary.dat b/labor_3/Übungen/ampel/sim/work/ampel/_primary.dat index 985cf7c38c4d5ed37d0f4b46517e409fca0dab27..3fc3b591455aa9fbe9363066ada122c66bbf7335 100644 GIT binary patch delta 797 zcmV+&1LFMBCFLbZ0dUF=Je$=5DSkei)dGTLvs$KEp3O`0Y*r|q0000009ytDrY-_e zZvg-R0I$pgcdD9I0RR91Ik^OMNmN$^0I!Rc1qB2+u}2~VXeL86;%VjF$h;PuOC*IR zbvdVgW9YHlV0#4sd9I&d*1v~-`R@k1?ey7WutsqQ(a}nx00000#z#Vr;2+^Iz+@A< z`cL&9`v+mgDvJOB000IR&?@a&*tQglUQ?_Sn`?X9+oQouX_LML>H!#&sRbqh+LO=) ztN{wMeFl300Vb3A2gm_bv%&~(0Rc?2G713&0fv(_4}JkIld}(g0alYT5PpANxdi|+ zwlr_#E5KH)i#Yc53hT3|ip`rg5rhfd(z%5S@oCA~-Ht^BXu7?h%W~N2=HgfGtdI4_ zQf9(J_;fxa?H<*;{VuxT2J$%9R^)Lc_`HOFp(HAty!UydAYHxR(MZ{0_6z^kG~Mj= zN{OdQuib@jztU)#tp!YzM@)v@(G@J)h%JGX0qP27<~)v$7L(n1-I;{$krQ()~a z?gn&nE4NDILuCp`YOc2sG(aPH?T0`+TE5~?s=TID2^aW7A47#fK^&-f~Pk9@nImwD>HWe)H{lAzjJ?d*^hxE`~PuK zfi?`1@!R(7k7GIhviL?Q41kar=PxFvC;p*|hC9+Lnab+K4#5cDo!gUW&qFE2*h~JB zV0-VtE}!N(a$E6lw5*h7G3$uP|GF;ksEwGozsLbJOK}?4wrT$C~+lIO8rK>hDBini-`T@ b7C=v}#h5CLBi(jh(?;I&{l_At^Dl>)xejpE delta 778 zcmV+l1NHpnCDJ8F0dUF=_xs{D`SttaHspL?+{wfHeVg9zi}B1q8UUNFoGPAVW0bY31C=ycV2GB!wV# zIj4SO=&{>jdj$Y_uAg7lzlVPL?*`rM-q@YKICv9F!>@+k90%bFDiiH!&(y#*!#+mqx4tN{zNkp_DK0Vk6U2*?3dv(^Z2 z0Rc_3MhXE10f&=F4}JkJlgAH!0aueo5PpAOxdi|+wlr^T0r-l1hTwI^CMIL0QckHF z+*AYwQH!a^A!HF+@1ls*Wnw<9=f4Q&K4E3TVPE(k(Nyk_D0$|f-!d3$@b)>lyR+Qu*2>|Wm4hgqtTEbpnJZ{M&QpZ?+q&-H%` z=bbq1{gnZ-7kaymm0zQ87+`;?QE)XwGY+5wVN4+X~VDQ9DFN^wpr@?b43ky~SGZ?-OzaV-_#N+xDy7FCzX$O(}He%HTB=l}F* z%l1#rkk6^v>0xiQhbYPFMbmK4snOx!aa4yW!RkcKkk6^t=YemuhbYJDMbmf4#DZf2 z;Pi34SkWrVzcV9e-kPqb8eJxyn(&@Kv}vr=hERUjI*p&89UB;+?hSi}P;~M>Ez0^Q I!2=#6VJWhH-T(jq diff --git a/labor_3/Übungen/ampel/sim/work/ampel/_primary.dbs b/labor_3/Übungen/ampel/sim/work/ampel/_primary.dbs index 30a0ab8f47b8b07236d35adbb4ea212e914565cd..03b7c1e9f5ab9bdf5152a00dfa56134f3d2230ec 100644 GIT binary patch literal 6570 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 literal 6570 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 EKS6Uj9RL6T literal 51000 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 arv+Nrf8PVwXYjxCf&bnI%7CA#H~%lU4Z8FI diff --git a/labor_3/Übungen/ampel/sim/work/mod_n_counter_10bit/_primary.dat b/labor_3/Übungen/ampel/sim/work/mod_n_counter_10bit/_primary.dat index 2bfdebbdd89800aad9eac83268752ddb1b9f0851..e62cea9ff3d11f266f940bbabd01fb84a05f8c28 100644 GIT binary patch delta 173 zcmV;e08;<@1Ns9#0dUF=Je$=5DSkei)dGTLvs(X1p3O`0Y*r|q0000009ytDt~cSj z0{|O#{r&>{!rPJiBi}|(p97^02pX|HR{>?CE5KIyw?|3MitB`vqtnb~UbR&78U^AfMe1!W)6T$zess)e%7LJ=#* b+iW=f6^}PeFR|^6f-h^Vo0ZZ%ZO@09)&Nr+ delta 173 zcmV;e08;<@1Ns9!0dUF=_xs{D`SttaHspL?+~v~yeVg9zi}gyD_= z0Gkl~GXnfr+ok(U-qb0=V3?V~K4KRLy`1B4R9bCv27uy^!6qJ9 bUKB9Jg742AogiF~_voItSOPG$Odca)8*W$Q diff --git a/labor_3/Übungen/ampel/sim/work/mod_n_counter_10bit/_primary.dbs b/labor_3/Übungen/ampel/sim/work/mod_n_counter_10bit/_primary.dbs index 46dc89713802a35a6cbfb783bd97e0aecf682738..f4cd6eb46be7ec34c5580e3f1c15b72ae1252593 100644 GIT binary patch delta 228 zcmeBX?Pe8YEI7qyGwUkTb6ZOwsq---tkr#U)JD-l#(D-twkTDN8_OfjgTr-RFLEF=G delta 250 zcmeBX?Pe8aEI7sY{nsP2#!o=v@7>qkkK^L+Y!oYGtPgqc{I0X#Ht!jFM-9DN{o1v@ z3aU(AFEMTVtchRv#It^$x_MMoIB}c(jctX2Dvgf|R{jy$&N}ILX?D1sDEGHqpDQA{ zq3Mha3=Does^5adqy#Qq_6*zfx_x3)bRh-?ejr;Kh*=f@ b2@qg`P(V@;h(U%ku?SDjW0Gc`y!1B!zYJ0q diff --git a/labor_3/Übungen/ampel/sim/work/tb_ampel/_primary.dat b/labor_3/Übungen/ampel/sim/work/tb_ampel/_primary.dat index f2bf391de7e1c62ada20276d70863496be4fb12b..c44630599f876b4fe1513ea03cddad8c54e92005 100644 GIT binary patch delta 310 zcmV-60m=TW2df820dUF=Je$=5DSkei)dGTLvs$7{p3O`0Y*r|q0000009ytDrY-_e zZvg-R0I$pgcdD9I0RR91Ik^OMNl{k>0I!Rc1qBy4u}6Rcf3+*XR)mkHE5P<1pvNaO z%S^n4kESKYmL8zTCp*QmqGXSzBhCpPpvNaQ!_uN-h|6$Fm66~vv#R*LyQ_07mG?~T z;4}&BkuJ&QKv3l+AJ>iMJpD+|o}{dt<}%cI*r4}7UfBc)>DUO3fB{*qq5$wRc2v`H zNzq_eNTw1!WQb|wdAMYW1;1L&oF^j~+d(SeD^{#lf`e2E7j+4l(i3wZ7O4*ry2mD3 zgJ)mM&0edF2ZCO+Bl0*!MB1sAxnNPq%=JOTKMRDyn}^4imI%KxzW zU~yD}ex~%g({RfFxc8oKw1R%1{3X+H%Kx_U{%^B|6Z3evTrfOqDaw&{dw%p5#b6*X zIni&U0t7Wph-Mcv8eQw;etP3mbfH9L0Qj^BtuMoD^~u=e0E@q@%!#9VgTfxWgx;#k z<4l^EtIED*x458`JcOaCM58dK9R$A3;j>B?r7qFvFwtNYJ*Jd=p IzW5#^VOgV`HUIzs diff --git a/labor_3/Übungen/ampel/sim/work/tb_ampel/_primary.dbs b/labor_3/Übungen/ampel/sim/work/tb_ampel/_primary.dbs index 69401eb0a838c06cf6478aebd5f3f138726852cb..83df6f5c5734e57da85adc45b9fc418ca5f0eb61 100644 GIT binary patch delta 440 zcmbQrIh9k4vEUS+&8(|T&uuM%r0A!NuvYiYQ5!{9FxAT_vPF3%XMeGFcFNO!^~T`m z10e60tul!B#E$*ns^siHrh7oVR~G62)~2wnpRD{@T_;WFceTf!q&@R43%hpi-*@*z zqUVmi-ScMWyx7%wcg-Z(Kl}c+ELGEabS?VDUhhAv{|kC7GkosTEUU~A`^qplgvXd6J< z3IH*q6p#P`n4Ag&gCLOW48%+ z{d>2c7DbiT-Fd&+A($oW#_U&~&rM4<*tP|BJ++-#uIBaO->s+BzHjDyUT$iXw8Vea zqLfmJHT6akS2H*FJF>xsYeY83bNZ{EFK z+3Nj?lbf$JuhB`Y?V7RjNRmMLr_5zb_P28O8wfqC`X9*1z`!6PwKF8%YI9yr^-?Y% zR{)3^C4mG8z~r157zBY_XCP)`(U`oCS*m_LNFE5B-S(ZDXvV-G4`eF=G0Q%XC=h_m zh5$t%1;R{>4 gK!QbKatw>K{7I-hCr}8&GzYSPPGVr Date: Fri, 23 Feb 2024 11:47:26 +0100 Subject: [PATCH 3/4] =?UTF-8?q?Versucht,=20n=C3=A4her=20an=20die=20L=C3=B6?= =?UTF-8?q?sung=20zu=20kommen.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- labor_3/Übungen/ampel/sim/vsim.wlf | Bin 40960 -> 90112 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/labor_3/Übungen/ampel/sim/vsim.wlf b/labor_3/Übungen/ampel/sim/vsim.wlf index 2f3114e836c51d940fbfb2745482cbe04a83a72d..b7e4f1c6b75b94359ce3b00851962701675f408a 100644 GIT binary patch literal 90112 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 delta 8 PcmZoTz}j$tX~6;j5X=L} From 1b9840c27cab5a0b6374c25e1f14bde0476c9b45 Mon Sep 17 00:00:00 2001 From: musabe24 Date: Fri, 23 Feb 2024 11:48:18 +0100 Subject: [PATCH 4/4] =?UTF-8?q?Versucht.=20n=C3=A4her=20an=20die=20L=C3=B6?= =?UTF-8?q?sung=20zu=20kommen.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- labor_3/Übungen/ampel/sim/vsim.wlf | Bin 90112 -> 90112 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/labor_3/Übungen/ampel/sim/vsim.wlf b/labor_3/Übungen/ampel/sim/vsim.wlf index b7e4f1c6b75b94359ce3b00851962701675f408a..a3eb37990ec942d20529b6167b3de072224f47a9 100644 GIT binary patch delta 21 ccmZoTz}j$tl}Vs%B9k_wOQYUaJ;qD%08E<(+5i9m delta 21 ccmZoTz}j$tl}R{dB9k_wW24?yJ;qD%087IL$N&HU