www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 通信技術(shù) > 通信技術(shù)
[導(dǎo)讀]本文介紹了射頻控制模塊中射頻定時(shí)發(fā)送器的設(shè)計(jì)方案。射頻定時(shí)發(fā)送器需要完成的四種基本功能包括定時(shí)發(fā)送、競(jìng)爭(zhēng)發(fā)送、數(shù)據(jù)采樣分頻時(shí)鐘和APC_burst發(fā)送模式。文中詳細(xì)介紹了這四種功能的Verilog實(shí)現(xiàn)方法。

摘要:本文介紹了射頻控制模塊中射頻定時(shí)發(fā)送器的設(shè)計(jì)方案。射頻定時(shí)發(fā)送器需要完成的四種基本功能包括定時(shí)發(fā)送、競(jìng)爭(zhēng)發(fā)送、數(shù)據(jù)采樣分頻時(shí)鐘和APC_burst發(fā)送模式。文中詳細(xì)介紹了這四種功能的Verilog實(shí)現(xiàn)方法。
關(guān)鍵詞:射頻定時(shí)發(fā)送器;定時(shí)發(fā)送;競(jìng)爭(zhēng)發(fā)送;分頻時(shí)鐘;burst模式

引言

射頻定時(shí)發(fā)送器是射頻控制模塊中的一個(gè)重要組成部分,用于產(chǎn)生需要定時(shí)發(fā)送的射頻控制信號(hào):AD_ON(模數(shù)轉(zhuǎn)換信號(hào))、DA_ON(數(shù)模轉(zhuǎn)換信號(hào))、APC(自動(dòng)功率控制信號(hào))、AGC(自動(dòng)增益控制信號(hào))和AFC(自動(dòng)頻率控制信號(hào)),再通過選擇兩個(gè)SPI接口RF_SPI和AD_SPI把控制信號(hào)定時(shí)地傳送到射頻發(fā)送模塊。射頻定時(shí)發(fā)送器需要完成的四種基本功能分別是:定時(shí)發(fā)送、競(jìng)爭(zhēng)發(fā)送、數(shù)據(jù)采樣時(shí)鐘分頻,以及APC_burst模式,如圖1所示,本文將詳細(xì)闡述這些基本功能模塊的設(shè)計(jì)原理。

圖1 射頻定時(shí)發(fā)送器功能結(jié)構(gòu)圖

定時(shí)發(fā)送模塊

射頻定時(shí)發(fā)送器的主要功能就是定時(shí)傳輸射頻控制信息,為了滿足此功能,需要在模塊中設(shè)計(jì)兩個(gè)FIFO:DATA FIFO用于存儲(chǔ)射頻控制信息;TIME FIFO用于存儲(chǔ)時(shí)間信息。模塊中設(shè)定當(dāng)系統(tǒng)幀計(jì)數(shù)器與TIME FIFO中存儲(chǔ)的某一時(shí)間相同時(shí),就把與這個(gè)時(shí)間對(duì)應(yīng)的射頻控制信息發(fā)送出去。因此還需設(shè)計(jì)一個(gè)模塊,判斷當(dāng)幀計(jì)數(shù)器的值等于FIFO_time(FIFO中存儲(chǔ)的時(shí)間)時(shí),產(chǎn)生使能信號(hào)(read_en, fifo_read_en, time_int)發(fā)送信息,工作流程如圖2所示。  

圖2 定時(shí)發(fā)送射頻控制信息設(shè)計(jì)流程圖
 
FIFO

該模塊中將設(shè)計(jì)兩個(gè)FIFO,它們將需要發(fā)送的射頻控制信息及其發(fā)送時(shí)間緩存起來,設(shè)計(jì)用FIFO進(jìn)行存儲(chǔ)的目的是將這兩種信息一一對(duì)應(yīng)起來,避免發(fā)送的時(shí)候出錯(cuò)。

define data_fifo
module  data_fifo (rst_,clk,we_i,rd_i, addwr_i,addrd_i,fifo_data_i,fifo_data_o);

1) 首先定義該模塊的信號(hào)線:輸入信號(hào)為rst_ (復(fù)位信號(hào))、clk(標(biāo)準(zhǔn)時(shí)鐘)、 we_i(寫信號(hào))、 rd_i(讀信號(hào))、addwr_i[4:0](寫FIFO地址)、 addrd_i[4:0](讀FIFO地址)和fifo_data_i[11:0](寫入FIFO的值);輸出信號(hào)為fifo_data_o[11:0] (FIFO輸出值)。

2) 再定義一個(gè)寬度為12位、深度為32的FIFO:reg   [11:0]  register_fifo[0:31];

3) 設(shè)計(jì)寫FIFO的情況:以clk為參考時(shí)鐘,首先判斷復(fù)位信號(hào),當(dāng)復(fù)位信號(hào)為低時(shí),對(duì)FIFO進(jìn)行復(fù)位:if(!rst_) register_fifo[0......31] <= 12’b0;當(dāng)rst_不為低且we_i為高時(shí),則對(duì)FIFO進(jìn)行寫操作:if(we_i == 1’b1)  register_fifo[addwr_i] <= fifo_data_i;

4) 設(shè)計(jì)讀FIFO的情況:同樣以clk為參考時(shí)鐘,先判斷復(fù)位信號(hào),當(dāng)復(fù)位信號(hào)為低時(shí),對(duì)fifo_data_o進(jìn)行復(fù)位:if(!rst_) fifo_data_o<= 12’b0;當(dāng)rst_不為低且rd_i為高時(shí),則對(duì)FIFO進(jìn)行讀操作:if(rd_i == 1’b1) fifo_data_o <= regsiter_fifo[addrd_i];

使能信號(hào)及中斷產(chǎn)生模塊

FIFO讀/寫使能信號(hào)是由外部模塊驅(qū)動(dòng)的,因此需要設(shè)計(jì)一個(gè)模塊用于產(chǎn)生控制FIFO的讀/寫信號(hào),并且該模塊還需產(chǎn)生時(shí)間中斷信號(hào)用于使能發(fā)送器。

define transfer time
module time_count(rst_,clk,fifo _time,framc,read_en,fifo_read _en,time_int);

1) 首先定義該模塊的信號(hào)線:輸入信號(hào)為rst_、clk、 fifo_time[15:0](FIFO中存儲(chǔ)的時(shí)間信息)、framc(幀計(jì)數(shù)器值);輸出信號(hào)為read_en(FIFO地址累加使能信號(hào))、 fifo_read_en(讀FIFO值使能信號(hào))、time_int(時(shí)間中斷信號(hào));再定義一個(gè)reg [1:0] time_int_delay,用于存儲(chǔ)time_int在上一個(gè)時(shí)鐘的信息,如time_int_delay[0] <= time_int; time_int_delay[1] <= time_int_delay[0];

2) 定義fifo_read_en信號(hào)在time_int被拉高后延遲一個(gè)clk拉高,再延遲一個(gè)clk拉低,即assign fifo_read_en = time_int |(time_int_delay[0]);定義read_en信號(hào)在time_int被拉高后延遲兩個(gè)clk后拉高,再延遲一個(gè)clk拉低,即 assgin read_en = time_int_delay[0] |(time_int_delay[1])。這樣做的目的是控制在當(dāng)前clk的上升沿到來時(shí)取出FIFO中當(dāng)前地址的值,然后在下一個(gè)clk的上升沿立即計(jì)算出下一次取值的地址,這樣就能保證在每一次取值之前其所在的位置已經(jīng)計(jì)算完成,避免了取值出錯(cuò)的情況。

3) 最后定義如何產(chǎn)生time_int信號(hào)。time_int產(chǎn)生的條件是:當(dāng)fifo_time中存儲(chǔ)的時(shí)間信息等于framc時(shí),time_int被拉高,即被使能,if(fifo_time== framc )   time_int <= 1'b1;
FIFO讀寫操作的仿真結(jié)果如圖3所示,對(duì)FIFO的讀/寫操作分別由we_i和rd_i(fifo_read_en)控制,而計(jì)算讀FIFO的地址由read_en控制,這樣就能保證在每次取FIFO值之前其所在地址已經(jīng)被計(jì)算完成。

圖3 FIFO讀/寫操作仿真圖

競(jìng)爭(zhēng)發(fā)送模塊

芯片在空閑情況下,可能會(huì)有空閑狀態(tài)的射頻控制信息(idle_data)需要發(fā)送,當(dāng)芯片喚醒后則應(yīng)優(yōu)先發(fā)送該信息。但當(dāng)芯片喚醒后產(chǎn)生的射頻控制信息fifo_data與idle_data在同一時(shí)刻發(fā)送時(shí),就會(huì)出現(xiàn)競(jìng)爭(zhēng)發(fā)送的情況。因此,在設(shè)計(jì)該模塊時(shí)限定當(dāng)idle_en(空閑使能信號(hào))與pllon(pll時(shí)鐘使能信號(hào))同時(shí)拉高時(shí),發(fā)送idle_data中的相應(yīng)比特來取代fifo_data中的相應(yīng)比特,如圖4所示。

圖4 射頻定時(shí)發(fā)送器在空閑情況下的工作流程

transfer idle_data and fifo_data:

module idle_time(fifo_ data,pllon,idle_en,idle_data,rfctrl_o);
1) 定義該模塊的信號(hào)線:輸入信號(hào)為fifo_data[11:0](FIFO中存儲(chǔ)的射頻控制信息)、idle_data (空閑時(shí)需發(fā)送的射頻控制信息)、idle_en、pllon;輸出信號(hào)為rfctrl_o(最后輸出的射頻控制信息)。

2) 下面對(duì)需發(fā)送的控制信息進(jìn)行邏輯組合。其敏感電平是pllon、fifo_data、idle_data和idle_en,即當(dāng)上述電平中任意一個(gè)發(fā)生變化時(shí),就執(zhí)行下面的語句:

always @(pllon or fifo_data or idle_data or idle_en)//組合邏輯電路
begin
rfctrl_o[0] = (idle_en[0])?idle_ data[0]:fifo_data[0];
rfctrl_o[1] = (idle_en[1])?idle_ data[1]:fifo_data[1];
rfctrl_o[2] = (idle_en[2])?idle_ data[2]:fifo_data[2];
rfctrl_o[3] = (idle_en[3])?idle_ data[3]:fifo_data[3];
rfctrl_o[4] = (idle_en[4])?idle_ data[4]:fifo_data[4];
............... ................. ..............
end

競(jìng)爭(zhēng)發(fā)送的仿真結(jié)果如圖5所示:在pllon沒有被拉高的情況下,rfctrl_o發(fā)送的就是fifo_data的值,只有當(dāng)pllon被拉高的條件下才會(huì)有競(jìng)爭(zhēng)發(fā)送的情況。

數(shù)據(jù)采樣時(shí)鐘分頻模塊

為了數(shù)據(jù)發(fā)送同步,射頻定時(shí)發(fā)送器輸出數(shù)據(jù)的頻率應(yīng)與外接模塊保持一致,射頻定時(shí)發(fā)送器采樣發(fā)送數(shù)據(jù)的時(shí)鐘是系統(tǒng)時(shí)鐘的分頻時(shí)鐘。因此,產(chǎn)生分頻時(shí)鐘和采樣使能信號(hào)是該模塊設(shè)計(jì)的關(guān)鍵所在,并要求每次對(duì)發(fā)送數(shù)據(jù)的采樣都應(yīng)發(fā)生在分頻時(shí)鐘的上升沿。

generator ad_clk and send ad_sdatao:
module drv_clk(rst_,clk,frq_ drv,ad_sclk,spi_en,rfctrl_data,ad_datao);

1) 定義該模塊的信號(hào)線:輸入信號(hào)為rst_、 clk、 frq_drv(分頻系數(shù))、rfctrl_data(射頻控制信息);輸出信號(hào)為ad_sclk(分頻時(shí)鐘)、ad_sdatao(發(fā)送數(shù)據(jù))。

2) 以clk為基準(zhǔn)時(shí)鐘,定義一個(gè)reg[3:0] count計(jì)數(shù)器對(duì)clk的上升沿進(jìn)行計(jì)數(shù)。當(dāng)count=frq_drv-1時(shí),ad_sclk進(jìn)行反轉(zhuǎn)并對(duì)count清零,這樣就產(chǎn)生了分頻時(shí)鐘。

3) 該模塊設(shè)計(jì)要求每次對(duì)發(fā)送數(shù)據(jù)的采樣都應(yīng)發(fā)生在分頻時(shí)鐘的上升沿。但為了避免產(chǎn)生異步,對(duì)數(shù)據(jù)進(jìn)行采樣時(shí)不能以產(chǎn)生的ad_sclk為標(biāo)準(zhǔn),應(yīng)仍以clk為基準(zhǔn)時(shí)鐘。即在每8個(gè)clk時(shí)鐘的上升沿發(fā)送1位的rfctrl_data,并由高位到低位發(fā)送,這樣采樣時(shí)就不會(huì)出現(xiàn)毛刺,能做到較好的同步。

always @(posedge clk or negedge rst_)
begin
count <= count+1
if(count == 2*frq_drv-1)
begin
ad_sdatao <= rfctrl_data[11]; //每次發(fā)送rfctrl_data的最高bit
 rfctrl_data[11:0] <= {rfctrl_data[10:0], 1'b0};
//然后rfctrl_data[11:0]左移一位,去除已發(fā)送的bit
 end
end

這種方式能確保在每一個(gè)ad_sclk的上升沿對(duì)發(fā)送數(shù)據(jù)的數(shù)據(jù)進(jìn)行采樣,避免了產(chǎn)生毛刺。

圖5 競(jìng)爭(zhēng)發(fā)送仿真圖

burst發(fā)送模式設(shè)計(jì)

為了使發(fā)送功率更加穩(wěn)定,射頻定時(shí)發(fā)送器中設(shè)計(jì)了一種burst模式,即把一次性需要發(fā)送的功率分為幾步發(fā)送出去,并規(guī)定了每步發(fā)送的功率值=step_value*para(每步值×增益),這樣就可以避免在發(fā)送功率控制信息時(shí)產(chǎn)生突激。

burst step design:
module burst(rst_,clk,apc_ flag_i,step0.....step11,para,ad_s datao,apc_burst_en,apc_burstout);

1) 定義該模塊的信號(hào)線:輸入信號(hào)為rst_、 clk、 apc_flag_i(apc標(biāo)志信號(hào))、step0.....step11 (每步需發(fā)送的功率值)、para(每步增益)、apc_burst_en(burst模式使能信號(hào));輸出信號(hào)為apc_burstout(每步最終發(fā)送的功率)、ad_sdatao(發(fā)送數(shù)據(jù))。

2) 定義assign apc_burstout = step_value*para,設(shè)置step_count記錄目前發(fā)送的步數(shù),并根據(jù)step_count的信息,用step_value存儲(chǔ)當(dāng)前步數(shù)的值。

always @(posedge clk or negedge rst_)
begin
 case(step_count)
 2'b00: step_value[11:0]<=  step0[11:0];
 2'b01: step_value[11:0]<=  step1[11:0];
 2'b10: step_value[11:0]<=  step2[11:0];
 .................
 endcase
end

3) 最后定義當(dāng)每次apc_burst_en使能時(shí),step_count累加。

仿真結(jié)果如圖6所示:當(dāng)apc_flag_i拉高時(shí),射頻控制信息開始從0步到11步分步發(fā)送;當(dāng)apc_flag_i拉低時(shí),再從第12步到第1步發(fā)送。

圖6 APC在burst模式下發(fā)送數(shù)據(jù)的仿真結(jié)果時(shí)序圖
 
結(jié)語

作為射頻控制模塊中的重要部分,射頻定時(shí)發(fā)送器能夠定時(shí)發(fā)送射頻控制信息,并能根據(jù)實(shí)際情況調(diào)整發(fā)送模式。本文對(duì)該模塊最重要的四大功能模塊,即定時(shí)發(fā)送模塊、競(jìng)爭(zhēng)發(fā)送模塊、分頻采樣時(shí)鐘模塊以及burst模式發(fā)送模塊的設(shè)計(jì)方案作了基本介紹,希望對(duì)芯片設(shè)計(jì)人員有所幫助。

參考文獻(xiàn):
1.  重郵信科公司.C3220 chip 用戶手冊(cè)v0.1.0.p61-85,2006
2.  夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程. 2007.1
3.  Surrendra Dudani.High Level Functional Verification Closure.IEEE International Conference on Computer Design, 2002

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉