C.A.Lee
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
      • Invitee
    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Engagement control
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Versions and GitHub Sync Engagement control Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
Invitee
Publish Note

Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

Your note will be visible on your profile and discoverable by anyone.
Your note is now live.
This note is visible on your profile and discoverable online.
Everyone on the web can find and read all notes of this public team.
See published notes
Unpublish note
Please check the box to agree to the Community Guidelines.
View profile
Engagement control
Commenting
Permission
Disabled Forbidden Owners Signed-in users Everyone
Enable
Permission
  • Forbidden
  • Owners
  • Signed-in users
  • Everyone
Suggest edit
Permission
Disabled Forbidden Owners Signed-in users Everyone
Enable
Permission
  • Forbidden
  • Owners
  • Signed-in users
Emoji Reply
Enable
Import from Dropbox Google Drive Gist Clipboard
   owned this note    owned this note      
Published Linked with GitHub
1
Subscribed
  • Any changes
    Be notified of any changes
  • Mention me
    Be notified of mention me
  • Unsubscribe
Subscribe
--- robots: index, follow tags: NCTU, CS, 共筆 description: 交大資工課程學習筆記 lang: zh-tw dir: ltr breaks: true disqus: calee GA: UA-100433652-1 --- # 數位電路設計----單智君 回目錄 # **第二章 Boolean Algebra and Logic Gates** 1. - Sum of Minterns - Product of Masxterms 2. Standard Forms (two level implementsation 兩層電路) -> maybe faster - Canonical forms - Standard forms - Nonstandard form -> maybe cheaper 3. Other logic operations - all possible functons of n binary variables: n binary varibles -> 2^n distinct minterms -> 2^2^n possible functions ![](https://hackpad-attachments.imgix.net/nctucs08course.hackpad.com_DutsvJqmT6C_p.582121_1457682724934_擷取選取區域_001.png?fit=max&w=882) 4. 16 functions subdivided 3 categories 1. 2 functions 2. 4 functions 3. 10 functions 5. Digital Logic Gates - Boolean expression (AND, OR, NOT) - Others type - feasibility and economy - possibility of extending the gate to more than two inputs - basic properties ex.交換律、結合律... - alone or conjunction - Gate: - 0, 1 -> unnecessary - Transfer, Complement -> y - Inhibition, Implication -> oppo of upon -> unnecessary - AND, OR, NAND, NOR, XOR - NAND and NOR are far more popular than AND and OR ![](https://hackpad-attachments.imgix.net/nctucs08course.hackpad.com_DutsvJqmT6C_p.582121_1457683693180_Logic-gate-index.png?fit=max&w=882) - Extension to multiple inputs - AND, OR: commutative and associative - NAND, NOR: commutative but not associative [(ABC)'*(DE)']' = ABC+DE ≠ (ABCDE)' = A'+B'+C'+D'+E' - XOR, Equivalence: commutative and associative - XOR: odd function -> 輸入奇數個 1 時,輸出爲 1 - Equivalence: even function -> 輸入偶數個 1 時,輸出爲 1 - Positive Logic (H = 1) && Negative Logic (H = 0) 同一電路,正負邏輯會使邏輯閘代表意義互補(dual) eg.AND->OR - Integrated Circuits (ICs) - Levels (複雜度) 1. SSI small-scale, <10 gates 2. MSI medium-scale, 10~100 3. LSI large-scale, 100~x000 4. VLSI very large-scale, x000~ - Families 1. TTL transistor-transistor logic 2. ECL emitter-coupled logic (speed) 3. MOS metal-oxide semiconductor (density) 4. CMOS complementary MOS (power) 5. basic ckt: NAND, NOR, inverter - important parameters (additional) - fan-in (輸入個數) - fan-out (輸出個數) - noise margin (辨識度範圍) - Cost - propagation delay (輸入出時差) - power dissipation ( - CAD tools -> Schematic capture tools -> Logic simulator -> Logic synthesizer # **第三章 Gate-Level Minimization** 1. Introduction and Cost Criteria - Representation of boolean function (Truth table, Algebraic expression) - Minimization of boolean function - Algebraic manipulation: literal minimization -> difficult and hard to sure minimaze - map method: gate-level minization -> more than 4 variable are hard to use - Tabular method: Quine-McCluskey method -> systematic producdure - Cost Criteria - Two cost criteria: 1. Literal cost: the # of literal apperatances in a Boolean expression 2. ... - Literal cost: - the # of literal appenrances in a Boolean expression - e.g. F = AB+C(D+E) -> 5 literals (non-stander) F = AB+CD+CE -> 6 literals (stander form) - Gate input cost (GIC): - the # of inputs to the gates in the implementation - good method for conteporary logic implementation - e.g. G = ABCD + A'B'C'D' -> GIC = 9 G = (A'+B)(B'+C)(C'+D)(D'+A) -> GIC = 12 - For SoP or PoS eqs, GIC = the sum of - all literal appearances - the # of terms excluding terms that consist only of a single literal - the # of distinct complemented single literals operation 2. Map Method - karnaugh map simplification ![](https://courses.cs.washington.edu/courses/cse467/99au/admin/Slides/Week1Lecture2/img020.gif) ![](http://www.enge.vt.edu/sites/kreid/digital/module4/3kmap1.jpg) - simple - k-map: pictorial form of truth table - n input => 2n squares - minterm of function - adjacent squares differ by only one variable - SOP(sum of products) or POS(products of sum) - Not unique - minimum of literals - minimum of gates 1. Two-Variable - 2 var -> 2n = 4 minterms - corresponding minterms have just one var different - Three-Variable - 3 var -> 2n = 8 - Find possible adjacent 2k squares: - each element can used a lot of times - the most left ele have a ele left next to it is the most right ele - the most down ele can also cycle to top - if 1*2 or 2*1 are all 1 -> different ele can be eliminate - if 2*2 same 1 can also be eliminate - if 1*4 or 4*1 same - used bigger rectangle shape is better 1. Four=Variable Map and Five-Variable Map - Four - try to make a square - also can eleminiate by neighbor - also can left to right or down to top - eleminiate for 2, 4, 8 (and so on for n-variable) - used bigger rectangle shape is better - Prime Implicants - Implicant - Prime Implicants (PI): the biggest rectangle for every ele - Essential Prime Implicants (EPI) - minterm: - essential PI - lest PI choose must selected PI - deside the minimal cost out of rest of minterms - Five ![](http://image.slidesharecdn.com/karnaughpptfinal-150906092523-lva1-app6891/95/karnaugh-graph-or-kmap-23-638.jpg?cb=1441531612) ![](http://www2.elo.utfsm.cl/~lsb/elo211/aplicaciones/katz/chapter2/chapter02.doc.anc216.gif) - con - For upper than 5 var... 1. Product-of-Sum (PoS) Simplification - using De Morgan's laws after POS of F - just used POS of F -> 0 and OR - compare POS and SOP for cheaper 2. Don't-Care Conditions and Quine-McCluskey Method (Tabular Method) (x) - Don't-Care - specify with d() = [∑](https://en.wikipedia.org/wiki/Sigma_(letter))m() - unspecified minterms of a function - Incompletely specified function specified function - simplification of an incompletely s - Quine-McCluskey Method - finds all PIs and minimum cover of PIs - used (xy + xy' = x) 1. group by number of 1's 2. compare elements of adjacent groups - ex: F(A,B,C,D) = sigma m(0,1,2,5,7,8,9,10,14) ![](http://cfile3.uf.tistory.com/image/185B4E414F43A20C05C893) 3. NAND and NOR Implementation - The lest step - NOT, NAND, NOR is faster - use NOT, NAND, NOR to make AND, OR, NOT => easier to think - roles: 1. universal property of NAND gate 1. AND = NAND-NOT 2. OR = NOT-NOR 3. AND-NOT = NOT-OR 4. sop(AND-OR) = NAND-NAND 5. NAND = NOT-OR 2. universal property of NOR gate 1. 4. Other Two-Level Implementations - Wire logic - Wired-AND logic: oppen-collector TTL NAND gates - Wired-OR logic: ECL NOR gates - 2-level combinations of gates: - AND OR NAND NOR => 16 - Degenerate forms: 8 - degenerate to dsingle: 2 -> 1 level - AOI (AND->OR->inverst(NOT)) - F' 的 sum of product - AND-NOR - NAND-AND - OAI (OR->AND->inverst) - F' 的 product of sum - OR-NAND - NOR-OR 5. Exculsive-OR Function - Exculsive-OR: XOR, ⊕ - x ⊕ 0 = x - x ⊕ 1 = x' - x ⊕ x = 0 - x ⊕ x' = 1 - x ⊕ x' = x - x ⊕ y' = x' ⊕ y = (x ⊕ y)' - multiple-variable: odd function - 不相鄰的 2n/2個 1 - 奇數個 input -> output is 1 - 交換率、結合率 - 算 parity bit (b1⊕b2⊕b3⊕...⊕bn = parity bit) - Exculsive-NOR: XNOR, equivalence - useful in arithmetic operations and error-detection and correction ckts 6. Multiple-level - G = ABC + ABD + E + ACF + ADF - Sop => GIC = 17 - implementation: distributive law - =>G = AB(C+D) + E + AF(C+D) = A(B+F)(C+D) + E 7. Hardware Description Language (HDL) and Multiple-Level Circuit Optimization - # **Verilog Model** - Hardware description language (HDL) - feature - comment: / / or /* */ - file name: .v - case sensitive - REMEMBER ' ; ' - Synthesizable Modules & Testbench - synthesizable modules: describe hardware - testbench: check output result of module is correct - Sample of synthesizable modules: ex: module Name_Of_Module(inputA,inputB,inputC, outputD,outputE); // module name, parameters for all input and output output outputD, outputE; // describe output input inputA, inputB, inputC; // describe input wire w1; // describe wire /* GATE following, output is always be the first parameters */ and G1(w1,inputA,inputB); // this is an AND gate, G1 is gate name, w1 is output of gate, inputA and inputB is input not G2(E,C); // NOT gate, E output, C input or G3(D, w1, E); // OR gate /* The order of above gate are NOT important */ endmodule - Identifiers: case sensitive, name with number, character, _ - comment / / and /* */ - endmodule can without ' ; ' - Sample of testbench: ex: module test_bench_name; // no input output wire C, D; // output reg A, B; // *input //instantiate device under test Name_Of_Module M1(A, B, C, D); // an instantiation of the model to be verified, name of parameters can be difference // apply inputs one at a time initial begin A=1'b0; B=1'b0; C=1'b0; #100 A=1'b1; B=1'b1; C=1'b1; end initial #200 $finish; endmodule - initial statement - executes the statements in its body at the start of simulation - should be used only in testbenches for simulator - \# show as time - begin, end - Simulation waveforms (show the result) - `timescale 1ns/100ps - ` for compiler directive - #30 -> 30ns delay - testbranch - initial - begin, end - $finish - reg, wire - boolean exprission - assign = - bitwise: & | ~ - logical: && || ! - # **第四章 組合電路 Combinational Logic** **gate設計流程:從問題轉成gate的方法:** 1. Specification:確認需要有多少輸入和輸出,並給定各自的symbol 2. Formulation:確認輸入和輸出的關係,畫truth table 3. Optimization:簡化,使用k-map 4. Technology mapping:畫成電路 5. Verification:測試 **binary 加法器:** 半加器(half adder):把2個bit相加 加法器(full adder) :把3個bit相加(實踐起來會是兩個半加器) ### **設計方法:** - Hierarchical design: - Top-down - Bottom-up - Iterative design ### **加法器 Binary Ripple Carry Adder (n-bit Parallel Adder) (RCA)** 使用Hierarchy & Iterative design,用n個full adder來湊 總共的Propagation-delay是**2n+****1**個gate-delay 但是速度太慢了,所以現實世界不會使用這種設計方法 ![](https://hackpad-attachments.imgix.net/nctucs08course.hackpad.com_DutsvJqmT6C_p.595365_1460101800588_螢幕快照%202016-04-08%20下午3.49.45.png?fit=max&w=882) ### **加法器加速方法** - Carry lookahead:不要等上級給我carry才來算,直接由輸入算出自己的carry [ ] Carry Lookahead Adder (CLA) [ ] Gi = Ai Bi: 一定會有carry [ ] Pi = Ai +Bi: 傳遞的carry跟傳入的carry相同 總共的Propagation-delay固定為**6**個gate-delay ![](https://hackpad-attachments.imgix.net/nctucs08course.hackpad.com_DutsvJqmT6C_p.595365_1460102764100_螢幕快照%202016-04-08%20下午4.05.46.png?fit=max&w=882) **binary 減法器:** A - B = A + (1's complement of B) + 1 用一個M來控制加法器的mode M = 0 => A + B M = 1 => A + B' + 1 ![](https://hackpad-attachments.imgix.net/nctucs08course.hackpad.com_DutsvJqmT6C_p.595365_1460103747927_螢幕快照%202016-04-08%20下午4.21.55.png?fit=max&w=882) ### 處理overflow - 對於unsigned number: - 最左邊的bit有carry out就有 - 對於signed number: - 正加正變負、或負加負變正,就有 - 或是sign bit的carry in⊕carry out為true就有 **十進位加法器:** - BCD加法器 - 先用正常的adder直接加,需要時做的部分只剩下binary sum轉bcd sum的那一塊 - C = K + Z8Z4 + Z8Z2 - BCD sum = binary sum + 0cc0 ![](https://hackpad-attachments.imgix.net/nctucs08course.hackpad.com_DutsvJqmT6C_p.595365_1460515691379_螢幕快照%202016-04-13%20上午10.46.33.png?fit=max&w=882) **binary 乘法器** - a*b個AND GATE - b-1個加法器 - 輸出a+b個bits ![](https://hackpad-attachments.imgix.net/nctucs08course.hackpad.com_DutsvJqmT6C_p.595365_1460516258004_螢幕快照%202016-04-13%20上午10.57.19.png?fit=max&w=882) ![](https://hackpad-attachments.imgix.net/nctucs08course.hackpad.com_DutsvJqmT6C_p.595365_1460516232749_螢幕快照%202016-04-13%20上午10.56.35.png?fit=max&w=882) **比較器** ![](https://hackpad-attachments.imgix.net/nctucs08course.hackpad.com_DutsvJqmT6C_p.595365_1460517027249_螢幕快照%202016-04-13%20上午11.10.07.png?fit=max&w=882) ![](https://hackpad-attachments.imgix.net/nctucs08course.hackpad.com_DutsvJqmT6C_p.595365_1460517057809_螢幕快照%202016-04-13%20上午11.10.37.png?fit=max&w=882) **編碼器 encoder** - 輸入**2^n**個不同的狀況作為訊息 - 編碼成**n**個bit來表示輸入的訊息 - 問題: - 輸入只能有一個bit是1 - 解決方法:priority encoder,決定輸入的優先順序,哪個先編 - 輸入不能全部是0 - 解決方法:valid-output indicator,新增一個輸出,代表現在的輸入是否有意義 ### priority encoder: 優先順序可以任意自訂,這邊的設定為D3優先權最大 ![](https://hackpad-attachments.imgix.net/nctucs08course.hackpad.com_DutsvJqmT6C_p.595365_1460517790274_螢幕快照%202016-04-13%20上午11.22.55.png?fit=max&w=882) **解碼器 decoder** - 就解碼 - 輸出只會有一個是1 ### Line Decoder - 尾巴加個NOT就可以把minterm轉成maxterm - active HIGN: minterm - active LOW: maxterm - 1-to-2-line decoder ![](https://hackpad-attachments.imgix.net/nctucs08course.hackpad.com_DutsvJqmT6C_p.595365_1460518707197_螢幕快照%202016-04-13%20上午11.38.16.png?fit=max&w=882) - 2-to-4-line decoder ![](https://hackpad-attachments.imgix.net/nctucs08course.hackpad.com_DutsvJqmT6C_p.595365_1460518770683_螢幕快照%202016-04-13%20上午11.39.17.png?fit=max&w=882) - 3-to-8-line decoder ![](https://hackpad-attachments.imgix.net/nctucs08course.hackpad.com_DutsvJqmT6C_p.595365_1460518859285_螢幕快照%202016-04-13%20上午11.40.45.png?fit=max&w=882) ### enable input - 新增一個輸入當成enable input - 當enable input為正確的值(可能是1或0)時,電路才工作 ![](https://hackpad-attachments.imgix.net/nctucs08course.hackpad.com_DutsvJqmT6C_p.595365_1460518957263_螢幕快照%202016-04-13%20上午11.42.24.png?fit=max&w=882) **Demultiplexer 解多工器(信號分離器)** - 用來選擇哪一條輸出線會收到資料 - 直接使用line-decoder with enable input來做! - 只要把enable input當作input data,把data當作線路選擇 任何有n個輸入和m個輸出的boolean function都可以用一個n-to-2^n-line decoder配上m個OR來實作 **Multiplexer 多工器** - 很多個輸入,選擇使用哪條輸入當作輸出 - multiple-bit selection logic: 多bits資料組的選擇 - 也可以用multiplexer來實作任何boolean function - 但是multiplexer很貴 - 所以可以用2^n-1的multiplexer來做 - 2^n-2也可以,可是會越來越複雜 **three state gate (tri state gate?)** - 一般gate的output不可以直接拉在一起,除非有wire-logic,或是保證任何時間只有一個gate output是通的 - Three state gate有兩個輸入:common input和control input - 當control input是1時,輸出為common input - 當control input為0時,輸出為0(disabled, 高阻抗?) - 可以搭配decoder用來實作multiplexer **組合電路的HDL設計** - 設計規範: - 每個模組一個.v檔案,檔名必須和模組名一致 - output要設為module的第一個port - 三種設計模式: - gate-level - dataflow(通常只用在combinational circuit - behavioral(主要用來做sequential circuit,但也能用來做combinational circuit - 兩種設計方法: - buttom-up: 先組小電路,用小電路組大電路 - top-down: 先想大的,需要用到小電路在組小的,大電路較常使用top-down方法 - 系統定義的12個gate: - 多input單output: - **and, nand, or, nor, xor, nxor** - 單input多output: - **not, buf** - 四個three state gate: - active high: **bufif1, notif1** - active low: **bufif0, notif0** - 4 value system: - 各個wire的數值只可能有四種情形 - **0, 1, x**(unknown), **z**(high impedance) - **output [0: 3] D**:D是一個vector,有**D[0], D[1], D[2], D[3]**四個數,最高的bit(MSB)是**D[0]** - 2005後的verilog可以將**output, input**的keyword直接寫在module的port list內 - **tri**: 代表那條線路有多個driver(多輸出接在一起的,可能會出現**z**值) - **wire, wor, wand, tri, supply1, supply0,**多種線的定義 - **dataflow modeling** - **{ }** concatenation,一次assign多個bits - **? :** conditional - dataflow可以簡化很多東西,在合成的時候會根據你下的參數和函式庫設計自動生成對應電路 - **Behavioral modeling** - **always @**: 符合條件時不斷執行 - 裡面的output要設為**reg** - @裡面用**or**把各個輸入變數串起來 - 可以寫**always @(*)**,每個變數改變時都會重新run - 每次@裡面的東西改變時,整個block都會重新run一次 - 設定output值時要用**=** - **if else** - **case endcase** **default** - **casex:** 有x或z時執行 - **casez:** 有z時執行 - 數值表示:N'Bvalue - **_**可增加數字可讀性,會被編譯器忽略 - **Test Branch** - 程式進入點:**initial always** - control flow: **#(Time) repeat(Count)** - text的方式顯示結果 - **$display**: 會換行的printf - **$write**: 不會換行的printf - **$monitor**: 當變數有改變會自動顯示 - **$time**: 顯示時間 - **$finish** - **%d**: 前面會有空白, **%0d**: 沒有 - **reg wire parameter** 變數 # ch5 Synchronous Sequential Logic 同步電路:有管制改變時間(有閘門)、好設計 非同步電路:沒有管制、速度快、成本低 Latches:非同步,flip-flops的基本 **SR Latch** - 由兩個NOR組成 - Active **HIGH** - 兩種正常有用狀態: - Set: Q = 1, Q' = 0 - Reset: Q = 0, Q' = 1 - 正常的輸入:S,R不能同時為1 - 功能表: S R Q+ 0 0 Q 0 1 0 1 0 1 1 1 不應該發生 **S'R' Latch** - 由兩個NAND組成 - Active **LOW**的SR Latch - 功能表: S R Q+ 1 1 Q 1 0 0 0 1 1 0 0 不應該發生 with control **D Latch** **moore model vs mealy model** - moore比較穩定 - mealy反應較快 **HDL** 新關鍵字:**forever**: 無限迴圈 always @(**posedge** wire1, **negedge** wire2) **<=**: none blocking assignment, 所有 **<=** 會同時做 **電路設計** 狀態減少直接影響flip-flop數量 化簡方法: - Row matching method - Implication chart method # **小考**

Import from clipboard

Paste your markdown or webpage here...

Advanced permission required

Your current role can only read. Ask the system administrator to acquire write and comment permission.

This team is disabled

Sorry, this team is disabled. You can't edit this note.

This note is locked

Sorry, only owner can edit this note.

Reach the limit

Sorry, you've reached the max length this note can be.
Please reduce the content or divide it to more notes, thank you!

Import from Gist

Import from Snippet

or

Export to Snippet

Are you sure?

Do you really want to delete this note?
All users will lose their connection.

Create a note from template

Create a note from template

Oops...
This template has been removed or transferred.
Upgrade
All
  • All
  • Team
No template.

Create a template

Upgrade

Delete template

Do you really want to delete this template?
Turn this template into a regular note and keep its content, versions, and comments.

This page need refresh

You have an incompatible client version.
Refresh to update.
New version available!
See releases notes here
Refresh to enjoy new features.
Your user state has changed.
Refresh to load new user state.

Sign in

Forgot password

or

By clicking below, you agree to our terms of service.

Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
Wallet ( )
Connect another wallet

New to HackMD? Sign up

Help

  • English
  • 中文
  • Français
  • Deutsch
  • 日本語
  • Español
  • Català
  • Ελληνικά
  • Português
  • italiano
  • Türkçe
  • Русский
  • Nederlands
  • hrvatski jezik
  • język polski
  • Українська
  • हिन्दी
  • svenska
  • Esperanto
  • dansk

Documents

Help & Tutorial

How to use Book mode

Slide Example

API Docs

Edit in VSCode

Install browser extension

Contacts

Feedback

Discord

Send us email

Resources

Releases

Pricing

Blog

Policy

Terms

Privacy

Cheatsheet

Syntax Example Reference
# Header Header 基本排版
- Unordered List
  • Unordered List
1. Ordered List
  1. Ordered List
- [ ] Todo List
  • Todo List
> Blockquote
Blockquote
**Bold font** Bold font
*Italics font* Italics font
~~Strikethrough~~ Strikethrough
19^th^ 19th
H~2~O H2O
++Inserted text++ Inserted text
==Marked text== Marked text
[link text](https:// "title") Link
![image alt](https:// "title") Image
`Code` Code 在筆記中貼入程式碼
```javascript
var i = 0;
```
var i = 0;
:smile: :smile: Emoji list
{%youtube youtube_id %} Externals
$L^aT_eX$ LaTeX
:::info
This is a alert area.
:::

This is a alert area.

Versions and GitHub Sync
Get Full History Access

  • Edit version name
  • Delete

revision author avatar     named on  

More Less

Note content is identical to the latest version.
Compare
    Choose a version
    No search result
    Version not found
Sign in to link this note to GitHub
Learn more
This note is not linked with GitHub
 

Feedback

Submission failed, please try again

Thanks for your support.

On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

Please give us some advice and help us improve HackMD.

 

Thanks for your feedback

Remove version name

Do you want to remove this version name and description?

Transfer ownership

Transfer to
    Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

      Link with GitHub

      Please authorize HackMD on GitHub
      • Please sign in to GitHub and install the HackMD app on your GitHub repo.
      • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
      Learn more  Sign in to GitHub

      Push the note to GitHub Push to GitHub Pull a file from GitHub

        Authorize again
       

      Choose which file to push to

      Select repo
      Refresh Authorize more repos
      Select branch
      Select file
      Select branch
      Choose version(s) to push
      • Save a new version and push
      • Choose from existing versions
      Include title and tags
      Available push count

      Pull from GitHub

       
      File from GitHub
      File from HackMD

      GitHub Link Settings

      File linked

      Linked by
      File path
      Last synced branch
      Available push count

      Danger Zone

      Unlink
      You will no longer receive notification when GitHub file changes after unlink.

      Syncing

      Push failed

      Push successfully