Xây dựng bộ điều khiển và nhận dạng tiếng nói phần 5

10 519 2
Xây dựng bộ điều khiển và nhận dạng tiếng nói phần 5

Đang tải... (xem toàn văn)

Thông tin tài liệu

Xây dựng bộ điều khiển và nhận dạng tiếng nói bằng sử lý tín hiệu số DSP 56002

GVHD:Thầy Lê Tuấn Anh Tập Lệnh DSP56002TẬP LỆNH DSP DSP56002 Chương này mô tả tập lệnh vi xử lí DSP56002 gồm 67 lệnh. Mỗi lệnh có chiều dài là một hay hai từ. Trong số đó có 30 lệnh cho phép truyền một hay hai dữ liệu song song. Tập lệnh đươc chia ra các nhóm sau: nhóm truyền dữ liệu, số học, logic, thao tác bit, vòng lặp nhóm điều khiển chương trình. Tập lệnh chứa nhiều lệnh đònh hướng xử lí tín hiệu số.A . DẠNG LỆNH:1./Lệnh một từ: Lệnh một từ tác động lên tất cả các chế độ đònh đòa chỉ của DSP56002, ngoại trừ các chế độ đònh đòa chỉ tuyệt đối dữ liệu tức thời. Mã hợp ngữ nguồn cho loại lệnh một từ có thể nhận biết dựa vào bốn vùng: vùng mã nguồn, vùng toán hạng, vùng dữ liệu tuyến tính X, vùng truyền dữ liệu tuyến tính Y. Vùng mã nguồn: vùng này thường chỉ cho phép tính toán ALU được thực hiện, cũng như xác đònh phép truyền, đònh đòa chỉ tổng quát, điều khiển chương trình. Vùng toán hạng:xác đònh toán hạng được sử dụng bởi mã nguồn. Vùng truyền dữ liệu: vùng truyền dữ liệu xác đònh việc lựa chọn tuyến truyền các chế độ đònh đòa chỉ tương ứng. Ví dụ : MAC X0,Y0,B X:R(0)+,X0 Y:(R4)+,Y0 SVTH:Huỳnh Quốc Trâm 4-57 GVHD:Thầy Lê Tuấn Anh Tập Lệnh DSP560022./ Lệnh hai từ: Đònh đòa chỉ tuyệt đối các chế độ đònh đòa chỉ dữ liệu tức thời đều là lệnh hai từ cung cấp một đòa chỉ tuyệt đối 16 bit đầy đủ hay một dữ liệu tức thời 24 bit đầy đủ. Ví dụ: MOVE #$123456,A0 MOVE #$2000,A0 B . CÁC THAO TÁC TRUYỀN DỮ LIỆU SONG SONG: Ba mươi lệnh của DSP56002 có thể thực hiện phép truyền một hay hai dữ liệu trong một chu kì lệnh đồng thời với mã nguồn của lệnh. Dữ liệu truyền được từ thanh ghi đến thanh ghi, thanh ghi đến bộ nhớ từ bộ nhớ đến thanh ghi được cho phép. Nếu thanh ghi tích lũy A, B là thanh ghi nguồn thì phép dòch hay phép giới hạn xảy ra khi truyền dữ liệu. Nếu A, B là thanh ghi đích thì dấu mở rộng zero tự động đẩy vào bit thấp nhất khi truyền dữ liệu. Khi phép truyền hai dữ liệu được thực thi trong cùng một lệnh thì bản sao nguồn được cho phép nhưng bản sao đích không được cho phép. Ví dụ : SUBL B , A B , X:(R0) B , Y:(R4) ; cho phép ADD B , A X1, B Y1, A ;không cho phép C . CÁC LOẠI TRUYỀN DỮ LIỆU SONG SONG:Các loại truyền song song là:o Truyền dữ liệu ngắn tức thời o Cập nhật thanh ghi đòa chỉ o Truyền bộ nhớ X hay Yo Truyền bộ nhớ X hay Y thanh ghi o Truyền bộ nhớ Lo Truyền bộ nhớ XY1./TRUYỀN DỮ LIỆU NGẮN TỨC THỜI: Thao tác truyền song song này truyền toán hạng ngắn tức thời 8 bit đến thanh ghi đích. Toán hạng 8 bit có thể được biểu diễn như một số nguyên không dấu hay số phân số có dấu phụ thuộc vào thanh ghi đích.a./ Toán hạng tức thời số nguyên không dấu: Một toán hạng ngắn tức thời được biểu diễn như một số nguyên không dấu nếu thanh ghi đích là A2, A1, A0, B2, B1, B0, R7…R0, N7…N0. Dữ liệu 8 bit được chứa trong bit có trọng số thấp nhất của thanh ghi đích bit cao của thanh ghi đích tự động reset thành zero. Ví dụ : ADD B,A #$81,B0 ;B0=$000081b./ Toán hạng ngắn tức thời số phân số có dấu:SVTH:Huỳnh Quốc Trâm 4-58 GVHD:Thầy Lê Tuấn Anh Tập Lệnh DSP56002 Một toán hạng ngắn tức thời 8 bit được biểu diễn như một số phân số có dấu nếu thanh ghi đích là X0, X1, Y0,Y1, A hay B . Toán hạng 8 bit được chứa trong bit có trọng số cao của thanh ghi đích, còn bit thấp của thanh ghi đích tự động reset thành zero. Ví dụ : ADD B,A #$81,B ;B0=$ff810000 0000002./ Truyền dữ liệu từ thanh ghi đến thanh ghi: Thao tác truyền song song truyền nội dung của thanh ghi nguồn đến thanh ghi đích. Ví dụ: ADD B,A B,X13./ Cập nhật thanh ghi đòa chỉ: Thao tác truyền song song này cập nhật nội dung của thanh ghi đòa chỉ Rn tùy thuộc chế độ đònh đòa chỉ thanh ghi. Ví dụ: ADD B,A (R1)+N1 4./ Truyền dữ liệu bộ nhớ X hay Y: Thao tác truyền dữ liệu song song truyền toán hạng đến một từ đến hay đi đối với bộ nhớ X hoặc Y. Từ bộ nhớ X hay Y đến thanh ghi hoặc ngược lại . Ví dụ: ADD A,B A,X:$100 ADD A,B Y:$100,A 5./ Truyền dữ liệu bộ nhớ X hay Y thanh ghi: Thao tác truyền song song truyền một toán hạng một từ đến hoặc đi đối với bộ nhớ X hay Y toán hạng một từ thanh ghi đến thanh ghi. Ví dụ: ADD X,A A,X:(R3+N3) A,Y16./ Truyền dữ liệu bộ nhớ dài: Thao tác truyền song song truyền một từ dài toán hạng đến hoặc từ bộ nhớ L (X:Y). Hai thanh ghi dữ liệu ALU được nối kết với nhau tạo thành toán hạng từ dài. Điều này cho phép một giá trò dữ liệu chính xác gấp đôi hay một giá trò phức được truyền đến hay từ bộ nhớ L.7./ Truyền dữ liệu bộ nh XY: Thao tác truyền song song truyền hai từ đơn toán hạng đến hay từ bộ nhớ X Y . Ví dụ: ADD X,B X:(R0) +,X1 Y0,Y:(R7)-D . TẬP LỆNH DSP56002 : Tập lệnh DSP56002 được chia thành các nhóm sau : Truyền dữ liệu  Số học  Logic  Thao tác bit Vòng lặp Điều khiển chương trình SVTH:Huỳnh Quốc Trâm 4-59 GVHD:Thầy Lê Tuấn Anh Tập Lệnh DSP560021./ Các lệnh truyền : Lệnh truyền dữ liệu trên Bus dữ liệu X, bus dữ liệu Y, bus dữ liệu chương trình bus dữ liệu toàn cục. Các lệnh này xem như một dữ liệu ALU NOP (không xử lí )với khả năng thực hiện các phép truyền song song. Lệnh truyền tác động lên bit giới hạn L bit chia tỉ lệ S ở thanh ghi mã điều khiển (CCR), trong đó L là bit thứ 6 S là bit thứ 7. CCR chiếm 8 bit thấp của thanh ghi trạng thái (SR). Bit L được tác động nếu giới hạn xảy ra khi đọc thanh ghi tích lũy dữ liệu ALU. Bit S được tác động nếu dữ liệu tăng thêm được tác động khi thanh ghi tích lũy A B được truyền trên cùng một bus. Các lệnh truyền:1.1. Lệnh LUA: Cập nhật đòa chỉ. Ví dụ: LUA (R0)+N0,N1 ; Cập nhật thanh ghi đòa chỉ R0 chứa đòa chỉ cập nhật trong N1 .1.2. Lệnh MOVE:Truyền dữ liệu Ví dụ : MOVE X1,B1.3.Lệnh MOVEC (hay MOVE): Truyền dữ liệu thanh ghi điều khiển Ví dụ: MOVEC A,LC ; Truyền nội dung thanh ghi tích lũy đến thanh ghi điều khiển vòng lặp. Hay MOVE A,LC 1.4.Lệnh MOVEM (hay MOVE): Truyền nội dung đến bộ nhớ chương trình ngược lại. Ví dụ :MOVE R3,P:(R2)-N2 Hay MOVEM R3,P:(R2)-N2 MOVE P:$0000,LC Hay MOVEM P:$000,LC 1.5.Lệnh MOVEP : Truyền dữ liệu ngoại vi Ví dụ : MOVEP X:$FFFE , A2./ Các lệnh số học Các lệnh số học dùng ALU dữ liệu để thực hiện thực hiện tất cả các loại phép xử lí số học. Toán hạng nguồn cho các lệnh số học được chứa trong thanh ghi nhập ALU dữ liệu hay thanh ghi tích lũy. Toán hạng dành cho kết quả được tạo ra bởi sự thực thi các lệnh số học thì ở thanh ghi A hay B. Các lệnh số học cho phép truyền song song xảy ra đồng thời với việc thực thi mã lệnh. Thao tác truyền song song sử dụng bus dữ liệu X Y đến ALU dữ liệu đối với việc dùng trong các lệnh tuần tự cũng có thể truyền kết quả tạo bởi thực thi lệnh trước kế đó từ ALU dữ liệu đến bộ nhớ X hay Y. Lệnh số học thực thi trong một chu kì lệnh có thể ảnh hưởng đến tất cả các bit trong thanh ghi mã lệnh điều kiện. Những lệnh số học:- ABS Giá trò tuyệt đối SVTH:Huỳnh Quốc Trâm 4-60 GVHD:Thầy Lê Tuấn Anh Tập Lệnh DSP56002- ADC Cộng với cờ- ADD Cộng - ADDL Dòch trái sau đó cộng - ADDR Dòch phải sau đó cộng - ASL Dòch trái - ASR Dòch phải- CLR Xóa - CMP So sánh - CMPM So sánh độ lớn - DEC Giảm một- DIV Chia- INC Tăng một- MAC Nhân / Tích lũy - MACR Nhân / Tích lũy làm tròn - MPY Nhân- MPYR Nhân Làm tròn- NEG Lấy phần bù- NORM Chuẩn hóa- RND Làm tròn - SBC Trừ với cờ nhớ- SUB Trừ- SUBL Dòch trái sau đó trừ- SUBR Dòch phải sau đó trừ - TCC Truyền có điều kiện - TFR Truyền- TST Kiểm tra 2.1. Các lệnh cộng trừ số học : Lệnh Thao tác Cú pháp Nguồn ĐíchADC S+D+C→ D ADC S , D [pm] X , Y A , BADD S+D → D ADD S , D [pm]AX , X1 , X0Y , Y1 , Y0 BA , BA , BADDL S+2D→ D ADDDL S, D [pm] ABBAADDR S+D/2→ D ADDR S , D [pm] ABBASBC D-S-C→ D SBC S , D [pm] X , Y A , BA BSVTH:Huỳnh Quốc Trâm 4-61 GVHD:Thầy Lê Tuấn Anh Tập Lệnh DSP56002SUB D-S → D SUB S , D [pm] BX , X1 , X0Y , Y1 , Y0AA , BA , BSUBL 2D-S → D SUBL S , D [pm] ABBASUBR D/2-S → D SUBR S , D [pm] ABBA C : Cờ nhớ [pm] : Truyền song song2.2. Các lệnh nhân số học : Trong phép tính nhân, kết quả được chứa trong thanh ghi tích lũy A hoặc B. Nguồn S1, S2 là các thanh ghi: X1, X0 , Y1 , Y0 Lệnh Thao tác Cú phápMAC D ±(S1*S2) → DD ± (S1*2n−) → DMAC ±S1 , S2 , D [pm]MAC ±S1 , #n , D MACR D ± (S1*S2)+r → D D ± (S1*2n−)+r → DMACR ±S1 , S2 , D [pm] MACR ± S1 , #n , DMPY ±(S1*S2) → D±(S1*2n−) → DMPY ± S1 , S2 , D [pm]MPY ±S1 , #n , DMPYR ±(S1*S2) + r → D±(S1*2n−) + r → DMPYR ± S1 , S2 , D [pm]MPYR ±S1 , #n , D [pm] : truyền song song r : làm tròn 2.3. Các lệnh số học khác :Lệnh Cú pháp Thao tác Nguồn ĐíchTFR TFR S , D [pm] S → DABX1 , X0Y1 , Y0BAA , BB , ANEG NEG D [pm] 0 – D → D A , BABS ABS D [pm] D → D A , BCLEAR CLR D [pm] 0 → D A , B Lệnh Cú pháp Thao tác Nguồn ĐíchNORMNếu E.U.Z = 0 thì ASL → D R1−n → RnSVTH:Huỳnh Quốc Trâm 4-62 GVHD:Thầy Lê Tuấn Anh Tập Lệnh DSP56002NORM Rn, DNếu E =1 thì ASR → D R1+n → RnNgược lại thì NOP A , B Rn : Đòa chỉ thanh ghi Rn E : Bit mở rộng (Bit thứ 15 của thanh ghi trạng thái) U : Bit không bình thường (Bit thứ 4 của thanh ghi trạng thái) Z : Bit zero (bit thứ 2 của thanh ghi trạng thái)3./ Các lệnh logic : Các lệnh logic sử dụng dữ liệu ALU để thực hiện tất cả các loại thao tác logic. Các toán hạng của nguồn logic (ngoại trừ ANDI ORI) được chứa trong thanh ghi nhập hay thanh ghi tích lũy của dữ liệu ALU, kết quả tạo bởi lệnh logic (ngoại trừ ANDI ORI) được chứa trong thanh ghi tích lũy A hay B. Kết quả tạo bởi lệnh ANDI hoặc ORI được chứa trong thanh ghi MR, CCR, OMR. Các lệnh logic (ngoại trừ ANDI ORI) đều cho hai phép truyền song song được thực thi đồng thời với phép toán nguồn. Phép truyền song song sử dụng XDB YDB. Vì vậy, phép truyền song song có thể truyền dữ liệu mới được thoát ra khỏi bộ nhớ X hay Y đến dữ liệu ALU với các lệnh tuần tự cũng có thể truyền kết quả được tạo ra của lệnh đến trước đó từ dữ liệu ALU đến bộ nhớ X hay Y. Các lệnh logic thực thi trong một chu kì lệnh có thể tác động đến tất cả các bit trong thanh ghi mã điều khiển CCR.3.1. Lệnh LOGIC:Lệnh Cú pháp Thao tác Nguồn ĐíchAND AND S , D S*D → D X1 , X0Y1 , Y0A , BA , BOR OR S , D S+D → D X1 , X0Y1 , Y0A , BA , BEOR EOR S , D S ⊕ D → D X1 , X0Y1 , Y0A , BA , BNOT NOT D_D → DA , B Những lệnh này là lệnh thao tác 24 bit, được thực hiện trên bit 24 →47 của thanh ghi tích lũy A B 3.2. Lệnh dòch xoay:Lệnh Cú pháp Thao tác ĐíchLSL LSL D Dòch trái thanh ghi tích lũy A , BSVTH:Huỳnh Quốc Trâm 4-63 GVHD:Thầy Lê Tuấn Anh Tập Lệnh DSP56002 Bit 24 = 0 C = bit 47ROL ROL D Xoay trái thanh ghi tích luỹ Bit 24 = C C = bit 47A , BLSR LSR D Dòch phải thanh ghi tích lũyBit 24 = 0C = bit 24A , BROR ROR D Xoay phải thanh ghi tích lũyBit 47 = CC = bit 24A , B3.3. Lệnh LOGIC tức thời :Lệnh Cú pháp Thao tác ĐíchANDI ANDI #xx , D #xx * D → D MR , CCR , OMRORI ORI #xx , D #xx + D → D MR , CCR , OMR4./ Lệnh thao tác trên bit : Những lệnh thao tác trên bit :BCLR Kểm tra xóa bitBSET Kiểm tra set bitBCHG Kiểm tra thay đổi bit BTST Kiểm tra bit trên bộ nhớ thanh ghi .Lệnh Cú pháp Thao tácBCLR BCLR #n , X:<erea>BCLR #n , Y:<erea>BCLR #n , DD(n) → C0 → D(n)BSET BSET #n , X:<erea>BSET #n , Y:<erea>BSET #n , DD(n) → C1 → D(n)BCHG BCHG #n , X:<erea>BCHG#n,Y:<erea>BCHG #n , DD(n) → C−)(nD → D(n)BTST BTST #n , X:<erea>BTST #n , Y:<erea>BTST #n , DD(n) → C D(n) là bit thứ n của vùng toán hạng 24 bit , 0 ≤ n ≤ 23SVTH:Huỳnh Quốc Trâm 4-64 GVHD:Thầy Lê Tuấn Anh Tập Lệnh DSP560025./ Các lệnh vòng lặp: Các lệnh vòng lặp đó là DO ENDDO. Lệnh ngắt DO tạo ra để bắt đầu vòng lặp DO phần cứng. Lệnh ENDDO có thể được dùng để kết thúc ngang vòng lặp DO phần cứng trước khi nó hoàn thành. Nội dung thanh ghi đếm vòng lặp (LC) xác đònh số lần vòng lặp được lặp lại. Nội dung thanh ghi (LA) chỉ ra vò trí của từ lệnh cuối cùng của vòng lặp DO. LC LA có thể được nén vào hệ thống Stack (SS), vì vậy cho phép các vòng lặp DO phần cứng được ngắt hay chèn. Chúng có thể được đẩy ra khỏi vùng Stack bởi lệnh RET hay ENDDO .6./ Các lệnh điều khiển chương trình: Các lệnh điều khiển chương trình bao gồm các lệnh nhảy, nhảy có điều kiện các lệnh tác động lên PC SS. Dữ liệu bất kì nào đó truyền trên XDB YDB có thể được xác đònh trong một số lệnh điểu khiển chương trình. Những lệnh này cũng có tác động lên CCR. * Các lệnh điều khiển chương trình :DEBUG Vào chế độ sửa lỗi DEBUGcc Vào chế độ sửa lỗiIll Lệnh không hợp lệ Jcc Nhảy có điều kiệnJMP NhảyJCLR Nhảy nếu bit clear (nhảy khi bit =0) JSET Nhảy nếu bit set (nhảy khi bit =1)JScc Nhảy đến chương trình con có điều kiện JSR Nhảy đến chương trình conJSCLR Nhảy đến chương trình con nếu bit clear JSSET Nhảy đến chương trình con nếu bit được setNOP Không làm gì cả REP Lặp lại lệnh kế tiếp RESET Reset thiết ngoại vi trên chip RTI Trở về từ ngắt RTS Trở về từ chương trình con STOP Ngừng xử líSWI Ngắt phần mềm WAIT Chờ ngắtSVTH:Huỳnh Quốc Trâm 4-65 GVHD:Thầy Lê Tuấn Anh Tập Lệnh DSP56002BẢNG NHÓM CÁC LỆNH ĐIỀU KHIỂN CHƯƠNG TRÌNHMã nguồn Phép toán Cấu trúc ngữ phápREPLC→TEMP,#xxx→LCLặp lại lệnh kế tiếp cho đến khi LC=1TEMP→LCREP #xxxREP X:<ea>REP Y:<ea>REP SJSET Nếu S(n)= 1 thì xxxx→PCNgược lại PC+1→PCJSET #n,X:<ea>,xxxx JSET #n,Y:<ea>,xxxxJSET #n,S,xxxxJCLR Nếu S(n)= 0 thì xxxx→PCNgược lại PC+1→PCJCLR #n,X:<ea>,xxxx JCLR #n,Y:<ea>,xxxxJCLR #n,S,xxxxJSSET Nếu S(n)= 1 thì SP+1 →SP PC→SSH SR→SSL xxxx→PCNgược lại PC+1→PC JSSET #n,X:<ea>,xxxx JSSET #n,Y:<ea>,xxxxJSSET #n,S,xxxxJSCLR Nếu S(n)= 0 thì SP +1→SP PC→SSH SR→SSL xxxx→PCNgược lại PC+1→PC JSCLR #n,X:<ea>,xxxx JSCLR #n,Y:<ea>,xxxxJSCLR #n,S,xxxxSVTH:Huỳnh Quốc Trâm 4-66 . Các lệnh điều khiển chương trình: Các lệnh điều khiển chương trình bao gồm các lệnh nhảy, nhảy có điều kiện và các lệnh tác động lên PC và SS. Dữ. Y:$100,A 5. / Truyền dữ liệu bộ nhớ X hay Y và thanh ghi: Thao tác truyền song song truyền một toán hạng một từ đến hoặc đi đối với bộ nhớ X hay Y và toán

Ngày đăng: 16/11/2012, 09:21

Hình ảnh liên quan

BẢNG NHÓM CÁC LỆNH ĐIỀU KHIỂN CHƯƠNG TRÌNH - Xây dựng bộ điều khiển và nhận dạng tiếng nói phần 5
BẢNG NHÓM CÁC LỆNH ĐIỀU KHIỂN CHƯƠNG TRÌNH Xem tại trang 10 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan