aboutsummaryrefslogtreecommitdiffstats
path: root/quantum/visualizer/led_test.h
blob: 5e2325753ef95cf71d607f5f371d8311c38d2747 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/*
The MIT License (MIT)

Copyright (c) 2016 Fred Sundvik

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/

#ifndef TMK_VISUALIZER_LED_TEST_H_
#define TMK_VISUALIZER_LED_TEST_H_

#include "visualizer.h"

bool keyframe_fade_in_all_leds(keyframe_animation_t* animation, visualizer_state_t* state);
bool keyframe_fade_out_all_leds(keyframe_animation_t* animation, visualizer_state_t* state);
bool keyframe_led_left_to_right_gradient(keyframe_animation_t* animation, visualizer_state_t* state);
bool keyframe_led_top_to_bottom_gradient(keyframe_animation_t* animation, visualizer_state_t* state);
bool keyframe_led_crossfade(keyframe_animation_t* animation, visualizer_state_t* state);
bool keyframe_mirror_led_orientation(keyframe_animation_t* animation, visualizer_state_t* state);
bool keyframe_normal_led_orientation(keyframe_animation_t* animation, visualizer_state_t* state);

extern keyframe_animation_t led_test_animation;


#endif /* TMK_VISUALIZER_LED_TEST_H_ */
a root environment % (i.e. run "sudo su" and then execute the commands in the root % shell, don't just prefix the commands with "sudo"). % formats the text according the set language \usepackage[english]{babel} \usepackage{amsmath} \usepackage{multirow} \usepackage{booktabs} \usepackage{listings} \usepackage{setspace} \usepackage{skull} \usepackage{units} \usepackage{tikz} \usetikzlibrary{calc} \usetikzlibrary{arrows} \usetikzlibrary{scopes} \usetikzlibrary{through} \usetikzlibrary{shapes.geometric} \lstset{basicstyle=\ttfamily} \def\B#1{{\tt\textbackslash{}#1}} \def\C#1{\lstinline[language=C++]{#1}} \def\V#1{\lstinline[language=Verilog]{#1}} \lstdefinelanguage{liberty}{ morecomment=[s]{/*}{*/}, morekeywords={library,cell,area,pin,direction,function,clocked_on,next_state,clock,ff}, morestring=[b]", } \lstdefinelanguage{rtlil}{ morecomment=[l]{\#}, morekeywords={module,attribute,parameter,wire,memory,auto,width,offset,size,input,output,inout,cell,connect,switch,case,assign,sync,low,high,posedge,negedge,edge,always,update,process,end}, morestring=[b]", } \lstdefinelanguage{ys}{ morecomment=[l]{\#}, } \lstset{ commentstyle=\color{YosysGreen}, } \newenvironment{boxalertenv}{\begin{altenv}% {\usebeamertemplate{alerted text begin}\usebeamercolor[fg]{alerted text}\usebeamerfont{alerted text}\setlength{\fboxsep}{1pt}\colorbox{bg}} {\usebeamertemplate{alerted text end}}{\color{.}}{}}{\end{altenv}} \newcommand<>{\boxalert}[1]{{% \begin{boxalertenv}#2{#1}\end{boxalertenv}% }} \newcommand{\subsectionpagesuffix}{ \vfill\begin{centering} {\usebeamerfont{subsection name}\usebeamercolor[fg]{subsection name}of \sectionname~\insertsectionnumber} \vskip1em\par \setbeamercolor{graybox}{bg=gray} \begin{beamercolorbox}[sep=8pt,center]{graybox} \usebeamerfont{subsection title}\insertsection\par \end{beamercolorbox} \end{centering}} \title{Yosys Open SYnthesis Suite} \author{Clifford Wolf} \institute{http://www.clifford.at/yosys/} \usetheme{Madrid} \usecolortheme{seagull} \beamertemplatenavigationsymbolsempty \definecolor{YosysGreen}{RGB}{85,136,102} \definecolor{MyBlue}{RGB}{85,130,180} \setbeamercolor{title}{fg=black,bg=YosysGreen!70} \setbeamercolor{titlelike}{fg=black,bg=YosysGreen!70} \setbeamercolor{frametitle}{fg=black,bg=YosysGreen!70} \setbeamercolor{block title}{fg=black,bg=YosysGreen!70} \setbeamercolor{item projected}{fg=black,bg=YosysGreen} \begin{document} \begin{frame} \titlepage \end{frame} \setcounter{section}{-3} \section{Abstract} \begin{frame}{Abstract} Yosys is the first full-featured open source software for Verilog HDL synthesis. It supports most of Verilog-2005 and is well tested with real-world designs from the ASIC and FPGA world. \bigskip Learn how to use Yosys to create your own custom synthesis flows and discover why open source HDL synthesis is important for researchers, hobbyists, educators and engineers alike. \bigskip This presentation covers basic concepts of Yosys, writing synthesis scripts for a wide range of applications, creating Yosys scripts for various non-synthesis applications (such as formal equivalence checking) and writing extensions to Yosys using the C++ API. \end{frame} \section{About me} \begin{frame}{About me} Hi! I'm Clifford Wolf. \bigskip I like writing open source software. For example: \begin{itemize} \item Yosys \item OpenSCAD (now maintained by Marius Kintel) \item SPL (a not very popular scripting language) \item EmbedVM (a very simple compiler+vm for 8 bit micros) \item Lib(X)SVF (a library to play SVF/XSVF files over JTAG) \item ROCK Linux (discontinued since 2010) \end{itemize} \end{frame} \section{Outline} \begin{frame}{Outline} Yosys is an Open Source Verilog synthesis tool, and more. \bigskip Outline of this presentation: \begin{itemize} \item Introduction to the field and Yosys \item Yosys by example: synthesis \item Yosys by example: advanced synthesis \item Yosys by example: beyond synthesis \item Writing Yosys extensions in C++ \end{itemize} \end{frame} \include{PRESENTATION_Intro} \include{PRESENTATION_ExSyn} \include{PRESENTATION_ExAdv} \include{PRESENTATION_ExOth} \include{PRESENTATION_Prog} \end{document}