HDLBits 學習紀錄

concatenate: {a,b}

duplicate: {N{a}}

組合電路: 任何時刻的輸出只和當下的輸入有關,與前後時序的輸出入無關。
時序電路: 相對於組合電路,任何時刻的輸出都與前一時刻的輸出入有關。

  • always @(*) → 組合電路
    此時給值必須用 =
  • always @(posedge clk/negedge clk) → 時序電路
    此時給值必須用 <=

carry-select adder

兩種(進位與不進位)都算一遍,再依據低位元的結果選擇輸出,相較於ripple-carry adder可增加運算效率

carry-select adder

Adder-Substractor

將b 與32[sub]做XOR的結果,與A相加。當sub = 1時即為a-b,反之則為a+b

--

--

因為目前沒有中文編輯的需求,所以暫時沒有安裝Texmaker,
現在使用Miktex + Texworks(內建) 就很夠用了

安裝

基本上就是下一步,安裝完之後系統會先要求檢查更新,更新完之後就可以在開始功能表搜尋Texworks開始使用

在VScode建立latex環境

0. 先裝好Miktex,(有的人會建議安裝texlive,但因為我一開始是先用miktex+Texwork然後就直接轉到vscode上面,所以沒有嘗試過texlive)

1. 在VScode裡安裝TeX Workshop這個套件

2. 直接Ctrl+alt+B執行,然後就會看到出現以下的錯誤訊息
miktex could not find the script engine ‘perl’ which is required to execute ‘latexmk’
這時候需要到perl的官方網站安裝,如果是windows作業系統的話選擇strawberry perl

3. 安裝完成之後重新開啟VScode就可以了

(4) 可能是我目前的需求還沒有使用到,先把資料放在下面的環境設定

以下是從安裝到指令的參考資料,也是我主要會用到的參考

VScode環境設定參考資料

安裝參考資料

指令參考資料

--

--

main裡面,可以include.c嗎?

#include 等同於複製貼上
也就是說會刪掉目前#include所在的這一行,並將引用的內容全部原地複製貼上
所以確實是可以include .c 但通常不會這麼做

如果.c為函式用法,只需include .h 編譯器會找到.c
若.c為其他程式,可以利用makefile分別編譯完,最後link在一起

void main

首先,標準的C/C++當中並沒有定義void main(), 而main的回傳值必須要是int,這樣返回值才能傳遞給程式的呼叫者(如OS),等同於 exit(0),來判斷函式的執行結果。

雖然現在多數編譯器可以支援void main(),有些編譯器如c99會在沒有return的main當中自動加入return 0,但為了移植的通用性最好不要這樣做。

--

--

Linked List

https://en.wikipedia.org/wiki/File:Singly-linked-list.svg

結構

Linked list在操作上的彈性讓他可以被用來實現多種資料結構,像是先前提過的stack, queue或是tree都可以。

Note: 前面stack與queue在範例當中都是使用array來實作,這邊則是直接用pointer來指向下個節點(node)。

因為鏈結串列是由許多結構相同的節點(node)串在一起形成的,因此我們在宣告時只要定義好一個節點就可以了,其結構包含:

  1. data: 可以根據需求是任意的資料型態。
  2. *next: 資料型態為node,因為next指向下一個節點,而節點的資料型態為node。在宣告時注意必須要遞迴宣告(也就是*next的型態必須和node相同)

操作

在結構的操作上可以把資料存進串列裡,也可以將資料取出。需要特別注意的是,在操作時每個節點的位址(address)都必須有人指著,以避免記憶體流失(memory leakage),因為單向的串列只能由前一個節點指向後一個節點,因此一旦串列中斷就無法再找回該節點所在的記憶體位址。

Note: 這部份似乎就沒有特定的稱呼 add, new, insert, delete, free, remove都有,這邊用的是insert跟 free。

  • insert: 新增一個節點至串列當中,可以根據需求調整函式將新的節點加在串列中的任意位置。

--

--

Qertile 郭泰爾

Qertile 郭泰爾

學習路上順便做點筆記留下痕跡OUO,怕以後忘了曾經所學的這些知識。