1. Trang chủ
  2. » Luận Văn - Báo Cáo

Ứng dụng kỹ thuật số trong kỹ thuật điều chế vector không gian

70 59 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 70
Dung lượng 0,99 MB

Nội dung

Đại Học Quốc Gia Tp.Hồ Chí Minh TRƯỜNG ĐẠI HỌC BÁCH KHOA CỘNG HÒA Xà HỘI CHỦ NGHĨA VIỆT NAM Độc Lập – Tự Do – Hạnh Phúc NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên: NGUYỄN QUỐC HÀ Phái: Nam Ngày, tháng, năm sinh: 15_ 10_ 1974 Nơi sinh: THÁI NGUYÊN Chuyên ngành: KỸ THUẬT ĐIỆN ITÊN ĐỀ TÀI: ỨNG DỤNG KỸ THUẬT SỐ TRONG KỸ THUẬT ĐIỀU CHẾ VECTOR KHÔNG GIAN NHIỆM VỤ VÀ NỘI DUNG: ™ Nghiên cứu lý thuyết véc tơ không gian ™ Nghiên cứu kỹ thuật điều chế véc tơ không gian ™ Mô ứng dụng kỹ thuật số kỹ thuật điều chế véc tơ không gian để điều khiển nghịch lưu IIIIIIVVVI- NGÀY GIAO NHIỆM VỤ: 14/02/2003 NGÀY HOÀN THÀNH NHIỆM VỤ: 30/12/2003 HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: TS NGUYỄN VĂN NHỜ HỌ VÀ TÊN CÁN BỘ CHẤM NHẬN XÉT 1: HỌ VÀ TÊN CÁN BỘ CHẤM NHẬN XÉT 2: CÁN BỘ HƯỚNG DẪN CÁN BỘ NHẬN XÉT1 CÁN BỘ NHẬN XÉT TS NGUYỄN VĂN NHỜ TS DƯƠNG HOÀI NGHĨA TS PHẠM ĐÌNH TRỰC Nội dung đề cương luận văn thạc só Hội Đồng Chuyên Ngành thông qua Ngày … tháng…… năm2004 PHÒNG ĐÀO TẠO -SĐH CHỦ NHIỆM NGÀNH LỜI CÁM ƠN Qua trình học tập, với giảng dạy tận tình Thầy, cô trường giúp đỡ bạn lớp KTĐ K12, Tôi hoàn thành môn học Tôi xin chân thành cám ơn giúp đỡ Trường Đại Học Bách Khoa, phòng quản lý sau Đại học hỗ trợ tạo điều kiện thuận lợi để hoàn thành tập luận văn Tôi xin cảm ơn toàn thể quý Thầy Cô trường Đại học Bách Khoa, Thầy Cô giảng dạy năm học qua, đặc biệt: Thầy Ts NGUYỄN VĂN NHỜ trực tiếp hướng dẫn hoàn thành luận văn Xin chân thành cám ơn bạn học viên cao học khóa 12 Kỹ Thuật Điện đóng góp nhiều ý kiến quý giá giúp hoàn thành tập luận văn MỤC LỤC Lời cảm ơn Mục lục Chương 0: chương mở đầu Chương I: Vector không gian đại lượng ba pha I Vector không gian đại lượng ba pha I.1 Xây dựng vector không gian I.2 Chuyển đổi hệ tọa độ vector không gian I.3 Khái quát ưu việc mô tả động xoay chiều ba pha Trên hệ tọa độ từ thông Rotor I.4 Mô hình toán ĐCKĐB ba pha rotor lồng sóc I.5 Tóm tắc chương I Chương II: Điều khiển biến tần dựa sở phương pháp điều chế vector không gian II Điều khiển biến tần dựa sở phương pháp điều chế vector không gian II.1 Nguyên lý phương pháp điều chế vector không gian II.2 Cách tính thực thời gian đóng ngắt biến tần II.3 Một số vấn đề liên quan đến DEAD_TIME Chương III: Lý thuyết kỹ thuật số III.1 Kỹ thuật Analog III.2 Kỹ thuật Digital III.3 Giới thiệu FPGA III.4 Các đặc điểm FPGA III.5 Cấu trúc FPGA Chương IV: Mô kết IV.1 Thiết kế mạch điều khiển 42 IV.2 Mô kết Chương V: chương kết luận: V.1 Tổng kết V.2 Kết luận đánh giá V.3 Những vấn đề tồn hướng phát trieån 5 11 15 18 19 20 23 27 28 29 30 30 33 33 34 41 44 49 50 50 51 Luận Văn Tốt Nghiệp CHƯƠNG 0: CHƯƠNG MỞ ĐẦU Nguyễn Quốc Hà Trang Luận Văn Tốt Nghiệp Ngày nay, với phát triển khoa học kỹ thuật, công nghệ tích hợp IC ngày phát triển nên tạo thiết bị gọn nhẹ có tính cao, dung lượng lớn … người viết luận văn muốn ứng dụng kỹ thuật số để áp dụng kỹ thuật điều chế vector không gian Phương pháp điều chế vector không gian không toán mở, đưa hướng như: toán nghịch lưu đa bậc, Matrix inverter, … để tạo thiết bị điều khiển ngày hoàn thiện Tuy nhiên, việc áp dụng lý thuyết thực tế Việt Nam chưa nhiều khuôn khổ luận văn này, người viết muốn sử dụng kỹ thuật số để ứng dụng điều chế vector không gian hai bậc 0.1 MỤC ĐÍCH CỦA LUẬN VĂN: -Nghiên cứu lý thuyết véc tơ không gian -Nghiên cứu phương pháp điều chế véc tơ không gian -Ứng dụng kỹ thuật số kỹ thuật điều chế véc tơ không gian 0.2 TẦM QUAN TRỌNG CỦA ĐỀ TÀI: Phương pháp điều chế véc tơ không gian phương pháp mang tính đại việc ứng dụng điều khiển máy điện xoay chiều mở rộng để triển khai hệ thống điện pha Ngày nay, việc ứng dụng kỹ thuật số việc điều khiển mang tính phổ biến công nghệ tích hợp ngày phát triển nên tạo thiết bị điều khiển gọn nhẹ như: Microprocesor, DSP, FPGA …Do đó, người thực muốn ứng dụng kỹ thuật FPGA (A Field Programmable Gate Array) kỹ thuật điều chế véc tơ không gian để điều khiển nghịch lưu 0.3 PHẠM VI NGHIÊN CỨU: ™ Nghiên cứu lý thuyết véc tơ không gian ™ Nghiên cứu kỹ thuật điều chế véc tơ không gian ™ Mô ứng dụng kỹ thuật số kỹ thuật điều chế véc tơ không gian để điều khiển nghịch lưu 0.4 CÁC CÔNG TRÌNH LIÊN HỆ: 1.EKH Van Der Pols; JDL Hacsakkers Design and Implemetation of A PWM for Lever Invector Using μP and EPLD IEEE 1993 Nguyễn Quốc Hà Trang Luận Văn Tốt Nghiệp 2.Monoconic chip-set: Complete Control System for Digital PWM Inverter Drivers IEEE 1993 0.5 NỘI DUNG CỦA ĐỀ TÀI: 1.Giới thiệu lý thuyết véc tơ không gian: Trong chương này, người viết tổng hợp lại lý thuyết vector không gian nhằm cho người đọc nắm rõ lý thuyết 2.Phương pháp điều chế véc tơ không gian: Trong phần này, người viết nêu lên phương pháp điều chế vector không gian, sau đưa công thức liên quan để ứng dụng cho phần 3.Lý thuyết Kỹ thuật số: Trong phần này, người viết đưa kỹ thuật điều khiển số ứng dụng để điều chế vector không gian sau đưa giải pháp lựa chọn kỹ thuật FPGA cấu trúc FPGA để người đọc nắm kỹ thuật ứng dụng lý thuyết FPGA Mô kết quả: Trong phần này, người viết phân tích đưa giải thuật, tiến hành mô phần mềm MAXPLUS II Hãng ALTERA, đưa kết quả, kết luận đưa hướng phát triển đề tài Chương kết luận: Trong chương người viết tổng kết, đánh giá, kết luận đưa số đề nghị Phần phụ lục: phần này, người viết đưa chương trình điều khiển toàn hệ thống Nguyễn Quốc Hà Trang Luận Văn Tốt Nghiệp CHƯƠNG I: VECTOR KHÔNG GIAN CỦA CÁC ĐẠI LƯNG BA PHA Nguyễn Quốc Hà Trang Luận Văn Tốt Nghiệp I VECTOR KHÔNG GIAN CỦA CÁC ĐẠI LƯNG BA PHA I.1 XÂY DỰNG VECTOR KHÔNG GIAN: Động xoay chiều ba pha (ĐCXCBP) - dù Động không đồng (ĐCKĐB) hay hay động đồng (ĐCĐB)-đều có cuộn dây Stator với dòng điện ba pha, bố trí không gian tổng quát hình I.1 Pha U • isu Pha V • isv Pha W • isw Rotor Stator Hình I.1: Sơ đồ cuộn dây dòng stator ĐCXCBP Trong hình này,ba dòng điện isu, isv, isw ba dòng chảy từ lưới qua đầu nối vào động Khi chạy động biến tần, ba dòng đầu biến tần Ba dòng điện thỏa mãn phương trình: i su (t ) + i sv (t ) + i sw (t ) = (I.1) Trong dòng điện pha thỏa mãn công thức sau đây: ⎧i su (t ) = i s cos(ω s t ) ⎪⎪ ⎨i sv (t ) = i s cos ω s t + 120 ⎪ ⎪⎩i sw (t ) = i s cos ω s t + 240 ( ( ) ) (I.2) Về phương diện mặt phẳng học (mặt cắt ngang), ĐCXCBP có cuộn dây lệch góc 1200 Nếu mặt cắt ta thiết lập hệ tọa độ phức với trục thực qua trục cuộn dây U động cơ, ta xây dựng vector không gian sau đây: i s (t ) = [ 0 i su (t ) + i sv (t )e j120 + i sw (t )e j 240 = i s e jγ Nguyễn Quốc Hà ] (I.3) Trang Luận Văn Tốt Nghiệp Theo công thức (I.3), vector is(t) vector có modul không đổi quay mặt phẳng phức (cơ học) với tốc độ góc ωs = 2πfs tạo với trục thực (đi qua trục cuộn dây pha U) góc pha γ = ωst Trong fs tần số mạch Stator Việc xây dựng vector is(t) mô tả hình (I.2) Im e j120 v u w e j 240 γ Re i su (t ) i sv (t )e e120 0 i sw (t )e e 240 Hình I.2: Thiết lập vector không gian từ đại lượng pha Qua hình I.2 ta dễ dàng thấy dòng điện pha hình chiếu vector thu trục cuộn dây pha tương ứng Đối với đại lượng khác động như: điện áp, dòng Rotor, từ thông Stator từ thông rotor, ta xây dựng vector không gian tương ứng dòng điện kể Ta đặt tên cho trục thực mặt phẳng phức nói trục α trục ảo β quan sát hình chiếu vector dòng xuống hai trục Hai hình chiếu đặt tên hai dòng isα isβ (hình I.3) β is is isβ Cuộn dây pha V 1200 Cuộn dây isv 120 pha U isu = isα 1200 α Cuộn dây pha W Hình I.3: Biểu diễn dòng điện stator dạng vector không gian Nguyễn Quốc vớ Hài phần tử isα isβ thuộc hệ tọa độ stator cố định.Trang Luận Văn Tốt Nghiệp Dễ dàng nhận thấy hai dòng điện hai dòng hình sin Như lý thuyết máy điện đề cập đến cách kỹ lưỡng Ta hình dung động tương ứng với hai cuộn dây cố định α β thay cho ba cuộn u, v w Điều cần ghi nhớ là: hệ tọa độ nói hệ tọa độ stator (viết tắt là: TĐST) cố định, để phân biệt với tọa độ quay đề cập đến sau Trên sở công thức (I.1) kèm theo điều kiện điểm trung tính ba cuộn dây stator không nối đất, ta cần đo hai số ba dòng điện stator (ví dụ isu isv) đầy đủ thông tin vector is(t) với thành phần công thức (I.4) Cần ghi nhớ công thức (I.4) trục cuộn dây pha U chọn làm trục quy chiếu chuẩn (reference axis) (hình I.3) Điều có ý nghóa toàn trình xây dựng hệ thống điều khiển/điều chỉnh sau này: (I.4a) ⎧i sα = i su ⎪ í ⎨ ⎪i sβ = (i su + 2i sv ) ⎩ (I.4b) Baèng cách tương tự vector dòng Stator, vector điện áp Stator us, dòng Rotor ir, từ thông Stator Ψs từ thông Rotor Ψr điều biểu diễn phần tử thuộc hệ TĐST ⎧i s = i sα + ji sβ (I.5a) ⎪ (I.5b) ⎪u s = u sα + ju sβ ⎪ (I.5c) ⎨ir = irα + jirβ ⎪ (I.5d) ⎪ψ r = ψ rα + jψ rβ (I.5e) ⎪ψ = ψ + jψ ⎩ s sα sβ Trên đây, ta ôn lại khái niệm quy ước việc xây dựng vector không gian (cơ học) đại lượng xoay chiều ba pha ĐCXCBP Các vector biểu diễn hệ TĐST cố định Mặt khác, mục đích cụ thể ta biểu diễn vector thu hệ tọa độ thông qua phép chuyển sang hệ tọa độ khác I.2 CHUYỂN ĐỔI HỆ TỌA ĐỘ VECTOR KHÔNG GIAN Nguyễn Quốc Hà Trang Luận Văn Tốt Nghiệp chip FLEX10K20R240 ta có thiết bị điều khiển biến tần đơn giản V.3 NHỮNG VẤN ĐỀ TỒN TẠI VÀ HƯỚNG PHÁT TRIỂN: Việc nghiên cứu lý thuyết vector không gian không việc ứng dụng kỹ thuật số việc điều chế vector không gian thực tế chưa nhiều kỹ thuật dùng FPGA FPGA với ưu điểm thời gian thiết kế nhanh, thời gian đáp ứng cao, có nhớ nội bên trong, giá thành hợp lý sau FPGA ứng dụng rộng rãi Trong trình mô phỏng, kết đưa xung kích cho nghịch lưu hai bậc tần số khác Thực tế, cần sử dụng cần phải đưa qua mạch khuếch đại cách ly để bảo vệ cho FPGA Do thời gian có hạn nên người viết luận văn khảo sát hệ thống chế độ vòng hở tức đầu xung kích phụ thuộc vào tần số đặt việc điều khiển chưa linh hoạt Tuy nhiên, để khắc phục nhược điểm hy vọng người nghiên cứu sau sử dụng tín hiệu phản hồi đưa so sánh với tín hiệu đặt để tạo xung kích linh hoạt Ngoài ra, sử dụng biến tần thành phần hài sóng điện áp xuất cần phải có biện pháp để hạn chế thành phần hài Đây toán cần giải Nguyễn Quốc Hà Trang 53 Luận Văn Tốt Nghiệp PHỤ LỤC: CHƯƠNG TRÌNH TẠO XUNG KÍCH TỪ FPGA HỌ FLEX10K20R240 Megafunction wizard: DETAI GENERATION: STANDARD VERSION: WM1.0 MODULE: DETAI ============================================================ File Name: DETAI.vhd Megafunction Name(s): -DETAI ============================================================ ************************************************************ ************************************************************ INCLUDE "LPM_ROM1.inc"; SUBDESIGN lpm_rom1 ( address[7 0] : INPUT; inclock : INPUT; q[7 0] : OUTPUT); VARIABLE LPM_ROM1_component : lpm_rom1 WITH ( LPM_WIDTH = 8, LPM_WIDTHAD = 8, LPM_ADDRESS_CONTROL = "REGISTERED", LPM_INDATA = "REGISTERED", LPM_OUTDATA = "REGISTERED", LPM_FILE = "C:\sin1.hex" ); BEGIN q[7 0] = LPM_ROM1_component.q[7 0]; LPM_ROM1_component.address[7 0] = address[7 0]; LPM_ROM1_component.inclock = inclock; END; ============================================================ INCLUDE "LPM_ROM2.inc"; SUBDESIGN lpm_rom2 ( address[7 0] : INPUT; inclock : INPUT; q[7 0] : OUTPUT); VARIABLE Nguyễn Quốc Hà trang Luận Văn Tốt Nghiệp LPM_ROM_component : LPM_ROM WITH ( LPM_WIDTH = 8, LPM_WIDTHAD = 8, LPM_ADDRESS_CONTROL = "REGISTERED", LPM_INDATA = "REGISTERED", LPM_OUTDATA = "REGISTERED", LPM_FILE = "D:\sin2.hex" ); BEGIN END; q[7 0] = LPM_ROM_component.q[7 0]; LPM_ROM_component.address[7 0] = address[7 0]; LPM_ROM_component.inclock = inclock; ============================================================ CHUONG TRINH TAO THANH GHI REG1 REG4 INCLUDE "lpm_reg1 reg4"; PARAMETERS ( LPM_WIDTH, LPM_DIRECTION = "LEFT", LPM_AVALUE = 0, LPM_SVALUE = 0, DEVICE_FAMILY ); INCLUDE "aglobal.inc"; SUBDESIGN lpm_reg1 ( data[LPM_WIDTH-1 0] clock enable shiftin load aclr, aset sclr, sset q[LPM_WIDTH-1 0] shiftout ) : INPUT = GND; : INPUT; : INPUT = VCC; : INPUT = VCC; : INPUT = GND; : INPUT = GND; : INPUT = GND; : OUTPUT; : OUTPUT; VARIABLE IF (FAMILY_HAS_PRESET() == & USED(aclr) & USED(aset)) GENERATE dffs[LPM_WIDTH-1 0] : dffeea; ELSE GENERATE dffs[LPM_WIDTH-1 0] : DFFE; END GENERATE; shift_node[LPM_WIDTH-1 0] : NODE; IF (USED(LPM_AVALUE)) GENERATE Nguyễn Quốc Hà trang Luận Văn Tốt Nghieäp ac : lpm_constant with (LPM_WIDTH=LPM_WIDTH, LPM_CVALUE=LPM_AVALUE); END GENERATE; IF (USED(LPM_SVALUE)) GENERATE sc : lpm_constant with (LPM_WIDTH=LPM_WIDTH, LPM_CVALUE=LPM_SVALUE); END GENERATE; BEGIN ASSERT (LPM_WIDTH > 0) REPORT "Value of LPM_WIDTH parameter must be greater than 0" SEVERITY ERROR HELP_ID LPM_SHIFTREG_WIDTH; ASSERT (USED(aset) # USED(LPM_AVALUE) == 0) REPORT "Ignored LPM_AVALUE parameter because the aset port is not used" SEVERITY WARNING HELP_ID LPM_SHIFTREG_AVALUE; ASSERT (USED(sset) # USED(LPM_SVALUE) == 0) REPORT "Ignored LPM_SVALUE parameter because the sset port is not used" SEVERITY WARNING HELP_ID LPM_SHIFTREG_SVALUE; ASSERT (LPM_DIRECTION == "LEFT" # LPM_DIRECTION == "RIGHT") REPORT "Illegal value for LPM_DIRECTION parameter (%) value must be LEFT or RIGHT" LPM_DIRECTION SEVERITY ERROR HELP_ID LPM_SHIFTREG_DIRECTION; ASSERT (FAMILY_IS_KNOWN() == 1) DEVICE_FAMILY SEVERITY WARNING HELP_ID LPM_SHIFTREG_FAMILY_UNKNOWN; % common ports % dffs[].ena = enable; dffs[].clk = clock; % Asynchronous control logic % IF (USED(LPM_AVALUE)) GENERATE dffs[].clrn = !aclr & (!aset # ac.result[]); dffs[].prn = aclr # !aset # !ac.result[]; ELSE GENERATE IF (USED(aclr)) GENERATE dffs[].clrn = !aclr; END GENERATE; IF (USED(aset)) GENERATE dffs[].prn = aclr # !aset; END GENERATE; END GENERATE; Nguyễn Quốc Hà trang Luận Văn Tốt Nghieäp % Shift direction nodes % if (LPM_WIDTH > 1) GENERATE IF (LPM_DIRECTION == "LEFT") GENERATE shift_node[] = (dffs[LPM_WIDTH-2 0].q, shiftin); shiftout = dffs[LPM_WIDTH-1].q; ELSE GENERATE shift_node[] = (shiftin, dffs[LPM_WIDTH-1 1].q); shiftout = dffs[0].q; END GENERATE; ELSE GENERATE shift_node[] = shiftin; shiftout = dffs[0].q; END GENERATE; % Synchronous input logic % IF (USED(LPM_SVALUE)) GENERATE dffs[].d = !sclr & ( sset & sc.result[] # !sset & ( !load & shift_node[] # load & data[])); ELSE GENERATE dffs[].d = !sclr & (sset # ( !load & shift_node[] END GENERATE; # load & data[])); % Connect outputs % q[] = dffs[].q; END; ============================================================ CHUONG TRINH TAO BO COUNTER 1-4 INCLUDE "LPM_COUNTER"; FUNCTION p8count(clk, clrn, setn, ldn, dnup, gn, h, g, f, e, d, c, b, a) RETURNS (qh, qg, qf, qe, qd, qc, qb, qa, cout); FUNCTION f8count(clk, clrn, setn, ldn, dnup, gn, h, g, f, e, d, c, b, a) RETURNS (qh, qg, qf, qe, qd, qc, qb, qa, cout); PARAMETERS ( LPM_WIDTH, LPM_AVALUE = 0, LPM_SVALUE = 0, DEVICE_FAMILY, CARRY_CHAIN = "IGNORE", CARRY_CHAIN_LENGTH = 32, NOT_GATE_PUSH_BACK = "OFF", CARRY_CNT_EN = "SMART", LABWIDE_SCLR = "ON" For FLEX10K20R240 devices UP or DOWN counter ? Nguyễn Quốc Hà trang Luận Văn Tốt Nghiệp DEFINE COUNT_ONLY_UP() = ((LPM_DIRECTION=="UP") # ((LPM_DIRECTION=="DEFAULT") & !USED(updown))); DEFINE COUNT_ONLY_DOWN() = (LPM_DIRECTION=="DOWN"); DEFINE COUNT_UP() = (!COUNT_ONLY_DOWN()); counter DEFINE COUNT_DOWN() = (!COUNT_ONLY_UP()); up or up/down down or up/down check if we use clr for modulus overflow DEFINE UseSyncClrModUp() = ( (COUNT_ONLY_UP() # USED(updown)) & USED(LPM_MODULUS) & (nBasicExtraSyncInput()>0) don't use clr if basic counter FLEX10K and 8K specific: to be removed when SPR42458 is closed & !(((FAMILY_FLEX10K()==1) # (FAMILY_FLEX8000()==1)) & USED(updown) %& !USED(SCLR)%) ); count the number of extra sync inputs DEFINE nBasicExtraSyncInput() = ExtraUpDown() + (USED(clk_en) & 1) + (USED(cnt_en) & 1) + (USED(sclr) & 1) + (USED(sset) & 1) + (USED(sload) & 1) + (ModulusCounter() & COUNT_UP() & 1) + (ModulusCounter() & COUNT_DOWN() & 1); DEFINE UseFuncSCLR() = (UseSyncClrModUp() # USED(sclr)); DEFINE UseClearableCounterMode() = (FAMILY_HAS_CLEARABLE_COUNTER_MODE() & UseFuncSCLR() & !USED(updown)); DEFINE UseLabWideSclr()= ((FAMILY_FLEX6000()==1) & UseFuncSCLR() & (LABWIDE_SCLR=="ON")); -& (nBasicExtraSyncInput()>2)); don't use lab-wide clr if basic counter DEFINE FLEXUseCarryChain() = -!(need_not_gate_push_back_off()) & !(OK_to_use_8count()) & !USED(sconst) & (FAMILY_FLEX()==1) & (CARRY_CHAIN!="IGNORE") & (CARRY_CHAIN_LENGTH>3); SUBDESIGN LPM_COUNTER1 ( clock : INPUT; clk_en : INPUT = VCC; Clock Enable cnt_en : INPUT = VCC; Count Enable updown : INPUT = VCC; VCC counts up, GND counts down aclr, aset, aconst, aload : INPUT = GND; sclr, sset, sconst, sload : INPUT = GND; data[LPM_WIDTH-1 0] : INPUT = GND; used by aload and/or sload q[LPM_WIDTH-1 0] : OUTPUT; Counter output LPM specification calls for the following, but MAX+PLUS II only implements 16 eq outputs: -eq[2^LPM_WIDTH-1 0] : OUTPUT; eq[15 0] : OUTPUT; Counter decode output ) VARIABLE if aconst or aset is used in a FLEX 8000 or FLEX 10K device, Nguyễn Quốc Hà trang Luận Văn Tốt Nghiệp NOT_GATE_PUSH_BACK must be turned off IF need_not_gate_push_back_off() GENERATE New LPM_COUNTER instance c2 : LPM_COUNTER1 WITH( NOT_GATE_PUSH_BACK="OFF" ); ELSE GENERATE Is this a simple p-term counter? IF OK_to_use_pcustom() GENERATE IF LPM_WIDTH>1 GENERATE IF LPM_DIRECTION!="DOWN" GENERATE and_a[LPM_WIDTH-1 1][LPM_WIDTH-2 0] : NODE; END GENERATE; and_b[LPM_WIDTH-1 1][LPM_WIDTH-2 0] : NODE; END GENERATE; state storage dffs[LPM_WIDTH-1 0] : DFFE; ELSE GENERATE can we use the p-term 8count macrofunction? IF OK_to_use_8count() GENERATE feature set is limited to 8count, so use 8count IF FAMILY_FLEX()==1 GENERATE p8c[CEIL(LPM_WIDTH div 8)-1 0] : f8count; ELSE GENERATE p8c[CEIL(LPM_WIDTH div 8)-1 0] : p8count; END GENERATE; ELSE GENERATE state storage IF NEED_dffeea() GENERATE dffs[LPM_WIDTH-1 0] ELSE GENERATE dffs[LPM_WIDTH-1 0] END GENERATE; : dffeea; : DFFE; IF USED(LPM_AVALUE) GENERATE ac : LPM_CONSTANT WITH( LPM_WIDTH=LPM_WIDTH, LPM_CVALUE=LPM_AVALUE ); END GENERATE; IF USED(LPM_SVALUE) GENERATE sc : LPM_CONSTANT WITH( LPM_WIDTH=LPM_WIDTH, LPM_CVALUE=LPM_SVALUE ); END GENERATE; IF FLEXUseCarryChain() GENERATE carrybit[SizeCarryChain()-1 0] Count[LPM_WIDTH-1 0] : CARRY; : NODE; IF LoadMuxLCELL() GENERATE IF nLoadInput()

Ngày đăng: 17/02/2021, 10:07

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN