Professional Documents
Culture Documents
HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA ĐIỆN – ĐIỆN TỬ
---------------o0o---------------
MỤC LỤ
I. Mục tiêu.................................................................................................................4
Question milestone2.................................................................................................4
II. Thiết kế đơn chu kỳ...........................................................................................7
1. Sơ đồ khối........................................................................................................7
2. Lập bảng phân tích lệnh...................................................................................7
3. Kết quả mô phỏng............................................................................................9
III. ……................................................................................................................... 10
1. Sơ đồ khối......................................................................................................10
2. Kết quả mô phỏng..........................................................................................10
DANH SÁCH HÌNH MINH HỌA
Question milestone2
Trả lời:
- Chuyển đổi số nhị phân này thành biểu diễn thập lục phân của nó:
16'b0010001110110011
Để chuyển đổi một số nhị phân thành số thập lục phân, ta chia số nhị phân thành
các đoạn 4 bit, bắt đầu từ bit bên phải nhất, và sau đó ánh xạ mỗi đoạn 4 bit thành một
chữ số thập lục phân tương ứng.
Với số nhị phân 16 bit này:
0010 0011 1011 0011
Chia thành 4 đoạn 4 bit:
0010 0011 1011 0011
Ánh xạ mỗi đoạn 4 bit thành một chữ số thập lục phân:
23B3
Vậy biểu diễn thập lục phân của số nhị phân 16'b0010001110110011 là 0x23B3.
- Chuyển đổi số thập lục phân này thành biểu diễn nhị phân của nó: 16'hEECA
Biểu diễn nhị phân của số thập lục phân 16'hEECA là 1110111011001010, hoặc
16'b1110111011001010.
- Cộng và trừ
• Xác định: 16’h5A78 + 16’h11FE
• Xác định: 16’hEFB7 + 16’h6AA9
• Xác định: 16’h7713 – 16’h3BC1
• Giải thích khái niệm tràn và tràn.
Vậy, 16'h5A78 + 16'h11FE = 16'h6C76
16'hEFB7 + 16'h6AA9 = 16'h6611
16'h7713 - 16'h3BC1 = 16'h3B52
Tràn là khi kết quả của một phép tính vượt quá giá trị tối đa mà một biến có thể lưu
trữ. Ví dụ, nếu ta cộng hai số nguyên dương và kết quả vượt quá giá trị tối đa mà một
số nguyên có thể lưu trữ, thì ta nói đã xảy ra tràn.
- Tính logic
• Xác định: 16’h5A78 và 16’h11FE
• Xác định: 16’hEFB7 or 16’h6AA9
• Xác định: 16’h7713 xor 16’h3BC1
16'h5A78 & 16'h11FE = 16'h1078.
16'hEFB7 or 16'h6AA9 = 16'hEFFF.
16'h7713 xor 16'h3BC1 = 16'h4CD2.
- So sánh
• Cho hai số 16 bit, toán tử nào có thể được sử dụng để biết chúng là
giống hệt nhau?
• Cho hai số 16 bit, làm thế nào để xác định số nào nhỏ hơn số
khác?
• Để biết hai số 16 bit có giống hệt nhau hay không, ta có thể sử dụng toán tử so sánh
bằng (==). Nếu hai số bằng nhau, toán tử này trả về giá trị true, ngược lại trả về giá trị
false.
• Để xác định số nào nhỏ hơn số khác trong hai số 16 bit, ta có thể sử dụng toán tử so
sánh nhỏ hơn (<). Nếu số thứ nhất nhỏ hơn số thứ hai, toán tử này trả về giá trị true,
ngược lại trả về giá trị false. Ta cũng có thể sử dụng toán tử lớn hơn (>) để xác định
số nào lớn hơn số khác. Nếu số thứ nhất lớn hơn số thứ hai, toán tử này trả về giá trị
true, ngược lại trả về giá trị false.
Trả lời:
Một unpacked array là một mảng trong đó mỗi phần tử chiếm một vị trí bộ nhớ riêng
biệt. Mặt khác, một packed array là một mảng trong đó nhiều phần tử được lưu trữ
trong một vị trí bộ nhớ.
Trong nhiều ngôn ngữ lập trình, bao gồm một số phiên bản của Fortran và C, các
mảng được giải nén theo mặc định. Điều này có nghĩa là mỗi phần tử trong mảng
được cấp phát địa chỉ riêng của nó trong bộ nhớ. Ví dụ: trong một mảng số nguyên đã
giải nén có ba phần tử (tức là int myArray[3]), phần tử đầu tiên có thể được lưu trữ tại
địa chỉ bộ nhớ 1000, phần tử thứ hai tại địa chỉ 1004 và phần tử thứ ba tại địa chỉ
1008.Mặt khác, các mảng đóng gói được sử dụng trong một số ngôn ngữ lập trình
(chẳng hạn như Verilog và VHDL) để lưu trữ nhiều phần tử của cùng một kiểu dữ liệu
trong một khối bộ nhớ liền kề. Điều này có thể tiết kiệm bộ nhớ và cũng làm cho một
số hoạt động hiệu quả hơn. Trong một mảng các số nguyên được đóng gói có ba phần
tử (tức là int [2:0] myArray), cả ba phần tử có thể được lưu trữ trong một vị trí bộ nhớ
duy nhất, với mỗi giá trị chiếm một số bit nhất định trong vị trí đó. Kiểu đóng gói này
thường được sử dụng trong thiết kế phần cứng, trong đó việc sử dụng bộ nhớ và hiệu
suất đều là những yếu tố quan trọng.
Tóm lại, sự khác biệt chính giữa các packed array và unpacked array là cách chúng
phân bổ bộ nhớ và sự đánh đổi giữa mức sử dụng bộ nhớ và hiệu suất mà chúng mang
lại.
Để xác định số bit địa chỉ cần thiết cho một kích thước bộ nhớ nhất định, chúng ta
có thể sử dụng công thức: Number of address bits = log2(memory size in bytes)
Cho rằng chúng ta có bộ nhớ 8KB, trước tiên chúng ta có thể chuyển đổi bộ nhớ
này thành byte bằng cách nhân 8KB với 1024 (vì có 1024 byte trong một
kilobyte): 8KB = 8 * 1024 = 8192 bytes Bây giờ chúng ta có thể sử dụng công
thức để xác định số bit địa chỉ cần thiết: Number of address bits = log2(8192) = 13
Do đó, chúng tôi sẽ yêu cầu 13 bit địa chỉ cho bộ nhớ 8KB.
-$writememh : Từ khóa này được sử dụng để ghi dữ liệu vào một mảng bộ nhớ từ
một tệp có định dạng thập lục phân. Dữ liệu từ tệp được ghi vào bộ nhớ bắt đầu từ
vị trí bộ nhớ đã chỉ định ở định dạng thập lục phân.
$writememb : Từ khóa này được sử dụng để ghi dữ liệu vào một mảng bộ nhớ từ
một tệp có định dạng nhị phân. Dữ liệu từ tệp được ghi vào bộ nhớ bắt đầu từ vị trí
bộ nhớ đã chỉ định ở định dạng nhị phân.
$readmemh : Từ khóa này được sử dụng để đọc dữ liệu từ một mảng bộ nhớ vào
một tệp có định dạng thập lục phân. Dữ liệu từ bộ nhớ được đọc, bắt đầu từ vị trí
bộ nhớ đã chỉ định, ở định dạng thập lục phân và được lưu trữ trong tệp.
$readmemb : Từ khóa này được sử dụng để đọc dữ liệu từ một mảng bộ nhớ vào
một tệp có định dạng nhị phân. Dữ liệu từ bộ nhớ được đọc, bắt đầu từ vị trí bộ
nhớ đã chỉ định, ở định dạng nhị phân và được lưu trữ trong tệp.