28 / 36 · 概念
切片與串接
追蹤串接位元如何對應至新暫存器。
單元可免費閱讀,註冊課程即可儲存學習進度。
學習目標
- 追蹤串接位元如何對應至新暫存器。
大括號表示串接而非加法
q<={q[1:0],din} 將位元並排。切片 01 與 din=1 得 011,不是數值 1+1。右側皆讀取舊 q,一個邊緣不會先寫 q[0],再把新值連續複製至 q[1]、q[2]。
always_ff @(posedge clk)
if (rst) q <= 3'b000;
else q <= {q[1:0], din};| 新位置 | 來源 |
|---|---|
| q[2] | 舊 q[1] |
| q[1] | 舊 q[0] |
| q[0] | 邊緣時的 din |
順序改變就改變方向
{din,q[2:1]} 將輸入放最高位。寬度相同但方向不同,語法有效不代表電路等價。代入 q=101、din=1,原式得 011,反向式得 110,可用手算案例找出方向錯誤。
自己試試看
q=010、din=0,{q[1:0],din} 是什麼?
查看解說
在切片 10 後接 0,得到 100;舊 q[2] 不被使用。
✓ 已學習