本文完成了對MIPS-CPU的指令集確定,流水線與架構設計,代碼編寫,并且在x86計算機上搭建了稱為gccmips_elf的仿真系統,完成了對MIPS-CPU硬件系統的模擬仿真,最終完成FPGA芯片的下載與實現。 @@ 本文完成了包含34條指令的MIPS-CPU指令集的制定,完成了整個MIPS-CPU的架構設計與5級流水線級數的確定。制定了整個CPU的主控制模塊的狀態轉移圖;根據MIPS-CPU的指令集的模式,完成了對不同模式下的指令的分析,給出了相應的取指,譯碼,產生新的程序存儲器尋址地址,執行,數據存儲器與寄存器文件回寫的控制信號,完成取指令模塊,譯碼模塊,執行模塊,數據回寫等模塊代碼的編寫,從而完成了流水線模塊的代碼設計。 @@ 重點分析了由于流水線設計而引入的競爭與冒險,分析了在不同流水線階段可能存在的競爭與冒險,對引起競爭與冒險的原因進行了確定,并通過增加一些電路邏輯來避免競爭與冒險的發生,完成了競爭與冒險檢測電路模塊以及數據回寫前饋電路模塊的代碼編寫,從而解決了競爭與冒險的問題,使設計的5級流水線得以暢順實現。 @@ 完成了MIPS-CPU的仿真系統平臺的搭建,該仿真器用來對應用程序進行編譯,鏈接與執行,生成相應匯編語言程序以及向量文件(16進制機器碼);并且同時產生相關的Modelsim仿真,及Quartus II下載驗證的文件。本設計利用該仿真系統來評估設計的MIPS-CPU的硬件系統,模擬仿真結果證明本文設計的MIPS-CPU可以實現正常功能。本論文課題的研究成功對今后從事專用RISC-CPU設計的同行提供了有益的參考。 @@ 最終將設計的MIPS-CPU下載到ALTERA公司的FPGA-EP1C6Q240芯片,并且借助ALTERA公司提供的Quartus II軟件進行了編譯與驗證,對設計的MIPS-CPU的資源使用,關鍵路徑上的時序,布線情況進行了分析,最終完成各個指標的檢查,并且借助Quartus II軟件內嵌的Signal Tap軟件進行軟硬件聯合調試,結果表明設計的MIPS-CPU功能正常,滿足約束,指標正確。 @@關鍵詞 MIPS;流水線;競爭與冒險;仿真器;FPGA
上傳時間: 2013-07-31
上傳用戶:gjzeus
隨著電子技術的不斷發展,各種智能核儀器逐步走向自動化、智能化、數字化和便攜式的方向發展。針對傳統的多道脈沖幅度分析器體積大,人機交互不友好,不方便現場分析等的缺陷[5]。新型的高速、集成度高、界面友好的多道脈沖幅度分析器的陸續出現填補了這一缺點。 隨著電子技術的發展,以ARM為核的處理器技術的應用領域不斷擴大,相比較單片機而言,它的主頻高、運算速度快,可以滿足多道脈沖幅度分析器的苛刻的時間上的要求。而且ARM處理器功耗小,適合于功耗要求比較苛刻的地方,這些方面的特點正好滿足了便攜式多道脈沖幅度分析器野外勘察的要求。同時,由于以ARM為核的處理器具有豐富的外設資源,這樣就簡化了外設電路及芯片的使用,降低了功耗并增強了產品的信賴性。另外,ARM芯片可以方便的移植操作系統,為多道脈沖幅度分析器多任務的管理和并行的處理,甚至硬實時功能的實現提供了前提。而且在ARM平臺使用嵌入式linux操作系統使多道脈沖幅度分析器的軟件易于升級。 智能化和小型化是多道脈沖幅度分析器的發展趨勢。智能化要求系統的自動化程度高、操作簡便、容錯性好。智能化除了需要控制軟件外,還需要軟件命令的執行者即硬件控制電路來實現相應的控制邏輯,兩者的結合才能真正的實現智能化。小型化要求系統的體積小、功耗小、便于攜帶;小型化除了要求采用微功耗的器件,還要求電路板的尺寸盡量的小且所用元件盡量的少,但小型化的同時必須保持系統的智能化,即不能減少智能化所要求的復雜的邏輯和時序的控制功能。為此采用高集成度的ARM芯片實現控制電路能滿意地同時滿足智能化和小型化的要求。在研制的多道脈沖幅度分析器中,幾乎所有的控制都可以用控制芯片來實現,如閾值設定、自動穩譜以及多道數據采集,在節省了元件的數目和電路板的尺寸的同時仍能保持系統的智能化程度。 Linux內核精簡而高效,可修改性強,支持多種體系結構的處理器等,使得它是一個非常適合于嵌入式開發和應用的操作系統。嵌入式Linux可以運行的硬件平臺十分廣泛,從x86、MIPS、POWERPC到ARM,以及其他許多硬件體系結構。目前在世界范圍內,ARM體系結構的SOC逐漸占領32位嵌入式微處理器市場,ARM處理器及技術的應用幾乎已經深入到各個領域,例如:工業控制,無線通訊,網絡,消費類電子,成像等。 本課題采用三星公司生產的ARM(Advanced RISC Machines,先進精簡指令集機器)芯片S3C2410A設計并研制了一種便攜式的核數據采集系統設計方案。利用ARM芯片豐富的外設資源對傳統的多道脈沖幅度分析器進行改進和簡化。系統由前端探測器系統,以及由線性脈沖放大器、甄別電路、控制電路、采樣保持電路組成的前置電路,中央處理器模塊,顯示模塊,用戶交互模塊,存儲模塊,網絡傳輸模塊等多個模塊組成。本設計基于ARM9芯片S3C2410,并在此平臺上移植了嵌入式linux操作系統來進行任務的調度和處理等。 電路板核心板部分設計采用6層PCB板結構,這樣增加了系統可靠性,提高了電磁兼容的穩定性。數據采集系統是多道脈沖幅度分析器的核心,A/D轉換直接使用了S3C2410內置的ADC(Analog to Digital Converter,模數轉換器),在2.5 MHz的轉換時鐘下最大轉換速度500 KSPS(Kilo-Samples per second,千采樣點每秒),滿足了系統最低轉換時間≤5 μs的要求,并且控制簡單,簡化了外部接口電路。由于SD(Secure Digital Card,安全數碼卡)卡存儲容量大、攜帶方便、成本低等優點,所以設計中采用其作為外部的數據存儲設備,其驅動部分采用SD卡軟件包,為開發帶來了方便。本設計采用640*480的6.4寸LCD(Liquid Crystal Display,液晶顯示)屏作為人機交互的顯示部分,并且通過Qt/Embedded為系統提供圖形用戶界面的應用框架和窗口系統。其中包括了波形顯示部分和用戶菜單設置部分,這樣方便了用戶操作。系統的數據存取方面是基于SQLite嵌入式小型數據庫而進行的。為了方便數據向上位機的傳輸,系統設計中采用XML(Extensible Markup Language,可擴展標記語言)格式來組織傳輸的數據,通過基于TCP/IP(Transmission Control Protocol/Internet Protocol)協議的Linux下Socket套接字編程,來進行與上位機或PC(Personal Computer,個人計算機或桌面機)等的連接和數據傳輸。
上傳時間: 2013-04-24
上傳用戶:tzl1975
大多數現在的PCL打印機驅動程序都是將需要打印的文件(包括圖形或者文本)處理成JPEG文件發送到打印機進行打印,因為這樣一方面可以減少發送給打印機的數據量,一方面可以極大的簡化驅動程序的開發。而在打印機內部,這些JPEG文件又被解碼成BMP文件進行進一步的處理。采用這種方式工作的打印機JPEG解碼的工作占據了其CPU時間的一半以上,所以JPEG文件解碼引擎是打印機的核心之一,提高JPEG的解碼速度對于提高打印機的處理能力至關重要。 同時,JPEG文件解碼工作是一個計算密集型的作業,主要有兩個辦法提高它的速度:一個是設計更高效的算法,一個是采用性能更加強勁的CPU設備。在單核CPU的嵌入式環境中,JPEG編解碼速度已經幾乎到了極限,難有提升的空間,然而近兩年多核嵌入式芯片的出現,為大幅度提升它的性能提供了可能。 本文基于嵌入式的Linux平臺,采用ARM11 MPCore4核處理器,針對PCL,XL打印機控制語言的JPEG文件解碼設計和實現了一個高速引擎,主要內容為: 分析和解碼PCL,XL文件,提取出其中的JPEG文件。 對JPEG文件實現并行化解碼,在多個處理器核上并行處理,并針對多核處理器構架進行內存讀取等方面的優化。 針對多核處理器的特點和優勢,設計和實現多線程調度算法。 總結和提取數據,分析多核處理器相對于單核處理器的性能提升。 另外,為便于讀者理解,文中簡要介紹了ARM(SIMD)指令集,嵌入式匯編以及與硬件相關的一些概念。
上傳時間: 2013-06-16
上傳用戶:scorpion
現在,下一代嵌入式微處理器和軟件面臨著不斷減小的產品壽命。而由此產生的縮短的研發周期則要求設計者能夠在更短的時間內開發出更為復雜的處理器和軟件。為了解決這個問題,嵌入式系統的仿真逐漸成為在新的可編程結構的開發中必不可少的工具。對于嵌入式系統仿真核心的指令集仿真器,由于普遍使用的解釋型仿真器的性能較低,從十幾年前開始,人們就開始了對編譯型指令集仿真器的研究。但是,由于編譯技術的限制,它從來沒有能夠在商業產品中推廣。 ARM公司06年新推出的Cortex-M3系列芯片已經廣泛應用在無線傳感器網絡等領域。本文將針對基于ARM Cortex-M3的嵌入式系統設計出一個仿真平臺,以ARM Cortex-M3 所采用最新的Thumb-2 指令集作為目標指令集,設計了其仿真器,給出了一種優化的解釋型指令仿真機。 1.首先介紹了Thumb-2 指令集的編程模型,包括目標指令集支持的處理器的模式、寄存器和存儲器的組織。 2.其次建立了仿真平臺。在平臺的建立過程中,設計了結合編譯技術速度和解釋技術靈活性的仿真機;完成了Thumb-2 指令集體系結構的描述;實現了存儲器接口,從而可以滿足目標指令集對存儲器的訪問要求;介紹了ELF 文件格式,并設計了將ELF 文件中的指令和數據裝入存儲器的裝載程序。 3.最后以一個基于ARM Cortex-M3 處理器的機器小車嵌入式系統為例,對仿真平臺進行功能上的驗證。
上傳時間: 2013-07-19
上傳用戶:111111112
隨著人們對軟件產品質量要求的不斷提高,軟件測試技術得到越來越多的重視和應用。本文深入研究嵌入式軟件的測試技術,并將研究成果應用到測試實踐中。論文的主要工作有: 嵌入式軟件作為一種特殊的軟件,符合軟件的大多數特征,要研究嵌入式軟件測試就必須先了解軟件測試。本文研究了軟件測試基本理論和通用測試技術,對當前國內外軟件測試研究現狀和熱點做了綜合分析,為下一步研究工作打下了測試理論基礎。同時,針對嵌入式系統軟件的特點,研究了針對于嵌入式系統的軟件測試技術,分析了嵌入式系統軟件的特征及測試要求。 構建了針對嵌入式系統軟件測試的完備的測試策略是本文的重點之一。它旨在建立符合嵌入式系統軟件特性的測試策略。包括測試模型的建立、單元測試、軟件集成測試、軟件與硬件集成測試、系統測試、確認測試及回歸測試。通過對嵌入式系統軟件測試的研究,實現了對嵌入式系統軟件測試策略的優化。 在對建立嵌入式系統軟件測試環境的研究中,應用了交叉開發測試環境的概念并研究了基于駐留監控軟件、指令集模擬器以及基于JTAG的調試代理的交叉測試方法。最后搭建了基于ARM-Linux的嵌入式系統軟件測試環境。 依據嵌入式系統軟件測試的策略并根據語言學習系統的特點進行了有針對性的測試。在針對語言學習系統進行的軟件測試設計和測試實施全過程中,驗證了所提出的測試策略和測試模型,確保語言學習系統的軟件質量的同時提高了測試效率。
上傳時間: 2013-04-24
上傳用戶:qweqweqwe
隨著半導體工藝的飛速發展和芯片設計水平的不斷進步,ARM微處理器的性能得到大幅度地提高,同時其芯片的價格也在不斷下降,嵌入式系統以其獨有的優勢,己經廣泛地滲透到科學研究和日常生活的各個方面。 本文以ARM7 LPC2132處理器為核心,結合蓋革一彌勒計數管對Time-To-Count輻射測量方法進行研究。ARM結構是基于精簡指令集計算機(RISC)原理而設計的,其指令集和相關的譯碼機制比復雜指令集計算機要簡單得多,使用一個小的、廉價的ARM微處理器就可實現很高的指令吞吐量和實時的中斷響應?;贏RM7TDMI-S核的LPC2132微處理器,其工作頻率可達到60MHz,這對于Time-To-Count技術是非常有利的,而且利用LPC2132芯片的定時/計數器引腳捕獲功能,可以直接讀取TC中的計數值,也就是說不再需要調用中斷函數讀取TC值,從而大大降低了計數前雜質時間。本文是在我師兄呂軍的《Time-To-Count測量方法初步研究》基礎上,使用了高速的ARM芯片,對基于MCS-51的Time-To-Count輻射測量系統進行了改進,進一步論證了采用高速ARM處理器芯片可以極大的提高G-M計數器的測量范圍與測量精度。 首先,討論了傳統的蓋革-彌勒計數管探測射線強度的方法,并指出傳統的脈沖測量方法的不足。然后討論了什么是Time-To-Count測量方法,對Time-To-Count測量方法的理論基礎進行分析。指出Time-To-Count方法與傳統的脈沖計數方法的區別,以及采用Time-To-Count方法進行輻射測量的可行性。 接著,詳細論述基于ARM7 LPC2132處理器的Time-To-Count輻射測量儀的原理、功能、特點以及輻射測量儀的各部分接口電路設計及相關程序的編制。 最后得出結論,通過高速32位ARM處理器的使用,Time-To-Count輻射測量儀的精度和量程均得到很大的提高,對于Y射線總量測量,使用了ARM處理器的Time-To-Count輻射測量儀的量程約為20 u R/h到1R/h,數據線性程度也比以前的Time-To-CotJnt輻射測量儀要好。所以在使用Time-To-Count方法進行的輻射測量時,如何減少雜質時間以及如何提高計數前時間的測量精度,是決定Time-To-Count輻射測量儀性能的關鍵因素。實驗用三只相同型號的J33G-M計數管分別作為探測元件,在100U R/h到lR/h的輻射場中進行試驗.每個測量點測量5次取平均,得出隨著照射量率的增大,輻射強度R的測量值偏小且與輻射真實值之間的誤差也隨之增大。如果將測量誤差限定在10%的范圍內,則此儀器的量程范圍為20 u R/h至1R/h,量程跨度近六個數量級。而用J33型G-M計數管作常規的脈沖測量,量程范圍約為50 u R/h到5000 u R/h,充分體現了運用Time-To-Count方法測量輻射強度的優越性,也從另一個角度反應了隨著計數前時間的逐漸減小,雜質時間在其中的比重越來越大,對測量結果的影響也就越來越嚴重,盡可能的減小雜質時間在Time-To-Count方法輻射測量特別是測量高強度輻射中是關鍵的。筆者用示波器測出此輻射儀器的雜質時間約為6.5 u S,所以在計算定時器值的時候減去這個雜質時間,可以增加計數前時間的精確度。通過實驗得出,在標定儀器的K值時,應該在照射量率較低的條件下行,而測得的計數前時間是否精確則需要在照射量率較高的條件下通過儀器標定來檢驗。這是因為在照射量率較低時,計數前時間較大,雜質時間對測量結果的影響不明顯,數據線斜率較穩定,適宜于確定標定系數K值,而在照射量率較高時,計數前時間很小,雜質時間對測量結果的影響較大,可以明顯的在數據線上反映出來,從而可以很好的反應出儀器的性能與量程。實驗證明了Time-To-Count測量方法中最為關鍵的環節就是如何對計數前時間進行精確測量。經過對大量實驗數據的分析,得到計數前時間中的雜質時間可分為硬件雜質時間和軟件雜質時間,并以軟件雜質時間為主,通過對程序進行合理優化,軟件雜質時間可以通過程序的改進而減少,甚至可以用數學補償的方法來抵消,從而可以得到比較精確的計數前時間,以此得到較精確的輻射強度值。對于本輻射儀,用戶可以選擇不同的工作模式來進行測量,當輻射場較弱時,通常采用規定次數測量的方式,在輻射場較強時,應該選用定時測量的方式。因為,當輻射場較弱時,如果用規定次數測量的方式,會浪費很多時間來采集足夠的脈沖信號。當輻射場較強時,由于輻射粒子很多,產生脈沖的頻率就很高,規定次數的測量會加大測量誤差,當選用定時測量的方式時,由于時間的相對加長,所以記錄的粒子數就相對的增加,從而提高儀器的測量精度。通過調研國內外先進核輻射測量儀器的發展現狀,了解到了目前最新的核輻射總量測量技術一Time-To-Count理論及其應用情況。論證了該新技術的理論原理,根據此原理,結合高速處理器ARM7 LPC2132,對以G-計數管為探測元件的Time-To-Count輻射測量儀進行設計。論文以實驗的方法論證了Time-To-Count原理測量核輻射方法的科學性,該輻射儀的量程和精度均優于以前以脈沖計數為基礎理論的MCS-51核輻射測量儀。該輻射儀具有量程寬、精度高、易操作、用戶界面友好等優點。用戶可以定期的對儀器的標定,來減小由于電子元件的老化對低儀器性能參數造成的影響,通過Time-To-Count測量方法的使用,可以極大拓寬G-M計數管的量程。就儀器中使用的J33型G-M計數管而言,G-M計數管廠家參考線性測量范圍約為50 u R/h到5000 u R/h,而用了Time-To-Count測量方法后,結合高速微處理器ARM7 LPC2132,此核輻射測量儀的量程為20 u R/h至1R/h。在允許的誤差范圍內,核輻射儀的量程比以前基于MCS-51的輻射儀提高了近200倍,而且精度也比傳統的脈沖計數方法要高,測量結果的線性程度也比傳統的方法要好。G-M計數管的使用壽命被大大延長。 綜上所述,本文取得了如下成果:對國內外Time-To-Count方法的研究現狀進行分析,指出了Time-To-Count測量方法的基本原理,并對Time-T0-Count方法理論進行了分析,推導出了計數前時間和兩個相鄰輻射粒子時間間隔之間的關系,從數學的角度論證了Time-To-Count方法的科學性。詳細說明了基于ARM 7 LPC2132的Time-To-Count輻射測量儀的硬件設計、軟件編程的過程,通過高速微處理芯片LPC2132的使用,成功完成了對基于MCS-51單片機的Time-To-Count測量儀的改進。改進后的輻射儀器具有量程寬、精度高、易操作、用戶界面友好等特點。本論文根據實驗結果總結出了Time-To-Count技術中的幾點關鍵因素,如:處理器的頻率、計數前時間、雜質時間、采樣次數和測量時間等,重點分析了雜質時間的組成以及引入雜質時間的主要因素等,對國內核輻射測量儀的研究具有一定的指導意義。
標簽: TimeToCount ARM 輻射測量儀
上傳時間: 2013-06-24
上傳用戶:pinksun9
嵌入式系統近年來隨著其信息化、智能化、網絡化的發展,被廣泛應用于信息家電、移動設備、網絡設備和工控仿真的領域,成為繼IT網絡技術之后,又一個信息產業的主流。本設計使用的是ARM9嵌入式開發板。ARM(AdvancedRISCMachines)公司的32位RISC處理器有著高速度、低功耗、低成本、功能強、特有16/32位雙指令集等諸多優異的性能。 隨著生產業快速發展,工廠企業車間的不斷增加,對廠房的管理和設備的保護越來越受到重視。本論文主要闡述了監控系統中無線終端的設計與研究,其中涉及到嵌入式網絡瀏覽器在工廠監控設備中的應用,本監控系統的采集設備如攝像頭、儀表等將視頻、圖像、溫度等數據通過下位機上傳至控制中心,控制中心將這些數據存儲于網頁中,用戶使用手持終端,以無線上網的方式,通過嵌入式瀏覽器登陸網頁,實現遠程監控,達到實時監控的目的。 本論文第一章綜合敘述嵌入式系統的基本概念。第二章闡述基于S3C2410X的嵌入式系統開發平臺的基本架構及各個組成部分。第三章介紹了監控系統無線終端的開發平臺的設計。第四章主要闡述了LCD觸摸屏校正程序的設計。第五章講述了嵌入式瀏覽器的研究,makefile的編寫與電機控制模塊的設計。
上傳時間: 2013-04-24
上傳用戶:Miyuki
隨著社會經濟和科學技術的發展,公路交通已經成為了關系國民經濟命脈和社會、經濟發展的重大系統。汽車導航觀念也逐漸深入人心,成為公路交通中極其重要的一個環節。人們已經不再滿足于用基于PC機的導航系統,因為它過于昂貴并且功耗高?,F在,基于嵌入式設備的導航系統在迅速發展,但目前流行的是基于WinCE操作系統,它的成本比較高。 本文設計的導航系統采用基于ARM9結構的低功耗、高性能嵌入式SOC芯片S3C2410作為主控制器,使用嵌入式linux作為系統的內核。Linux是一個開放并且免費使用的操作系統,而CPU使用了32位RISC(精簡指令集)。基于ARM的嵌入式Llinux作為系統的內核解決了成本高的問題。因為嵌入式操作系統是本課題設計系統過程中應用的基礎,所以本文會詳細介紹。 系統可以采集GPS信號,支持RS-232接口,采用液晶顯示屏(LCD)的人機接口,為操作人員提供了良好的監控界面。軟件系統在嵌入式Linux操作系統下開發,實現了Linux操作系統和QT圖形系統的移植,設備驅動程序、控制應用程序、人機交互界面的設計。 本文從理論、硬件設計、軟件設計等方面介紹了基于ARM S3C2410多功能車載導航系統的設計與開發。
上傳時間: 2013-07-01
上傳用戶:dong
作為嵌入式系統核心的微處理器,是SOC不可或缺的“心臟”,微處理器的性能直接影響著整個SOC的性能?! ∨c國際先進技術相比,我國在這一領域的研究和開發工作還相當落后,這直接影響到我國信息產業的發展。本著趕超國外先進技術,填補我國在該領域的空白以擺脫受制于國外的目的,我國很多科研單位和公司進行了自己的努力和嘗試。經過幾年的探索,已經有多種自主知識產權的處理器芯片完成了設計驗證并逐漸進入市場化階段。我國已結束無“芯”的歷史,并向設計出更高性能處理器的目標邁進?! “苿撔挛㈦娮庸镜腣EGA處理器,是公司憑借自己的技術力量和科研水平設計出的一款64位高性能RSIC微處理器。該處理器基于MIPSISA構架,采用五級流水線的設計,并且使用了高性能處理器所廣泛采用的虛擬內存管理技術。設計過程中采用自上而下的方法,根據其功能將其劃分為取指、譯碼、算術邏輯運算、內存管理、流水線控制和cache控制等幾個功能塊,使得我們在設計中能夠按照其功能和時序要求進行?! ”疚牡氖紫冉榻B了MIPS微處理器的特點,通過對MIPS指令集和其五級流水線結構的介紹使得對VEGA的設計有了一個直觀的認識。在此基礎上提出了VEGA的結構劃分以及主要模塊的功能。作為采用虛擬內存管理技術的處理器,文章的主要部分介紹了VEGA的虛擬內存管理技術,將VEGA的內存管理單元(MMU)尤其是內部兩個翻譯后援緩沖(TLB)的設計作為重點給出了流水線處理器設計的方法。結束總體設計并完成仿真后,并不能代表設計的正確性,它還需要我們在實際的硬件平臺上進行驗證。作為論文的又一重點內容,介紹了我們在VEGA驗證過程中使用到的FPGA的主要配置單元,FPGA的設計流程。VEGA的FPGA平臺是一完整的計算機系統,我們利用在線調試軟件XilinxChipscope對其進行了在線調試,修正其錯誤?! 〗涍^模塊設計到最后的FPGA驗證,VEGA完成了其邏輯設計,經過綜合和布局布線等后端流程,VEGA采用0.18工藝流片后達到120MHz的工作頻率,可在其平臺上運行Windows-CE和Linux嵌入式操作系統,達到了預計的設計要求?! ?/p>
上傳時間: 2013-07-07
上傳用戶:標點符號
它基于最新最好的32位ARMv7架構——這個架構支持高度成功的Thumb-2指令集,還有很多時尚、前衛甚至嶄新的特性,充滿了新生代的氣息。
標簽: cortex-m
上傳時間: 2013-07-20
上傳用戶:qoovoop