AXI學(xué)習(xí)筆記-1

本文首發(fā)于個(gè)人博客

1.AXI總線結(jié)構(gòu)

AXI總線由5個(gè)通道構(gòu)成:

通道名稱 通道功能 數(shù)據(jù)流向
read address 讀地址通道 主機(jī)->從機(jī)
read data 讀數(shù)據(jù)通道(包括數(shù)據(jù)通道和讀響應(yīng)通道) 從機(jī)->主機(jī)
write address 寫地址通道 主機(jī)->從機(jī)
write data 寫數(shù)據(jù)通道(包括數(shù)據(jù)通道和每8bit一個(gè)byte的寫數(shù)據(jù)有效信號(hào)) 主機(jī)->從機(jī)
write response 寫響應(yīng)通道 從機(jī)->主機(jī)

1.1.AXI通道

讀操作的通道如下圖所示

axi_read_channel.JPG

寫操作的通道如下圖所示


axi_write_channel.JPG

1.2.AXI系統(tǒng)

常見的標(biāo)準(zhǔn)AXI系統(tǒng)如下圖所示绳姨,通常包括:

  • AXI master:AXI通信主機(jī)
  • AXI slave:AXI通信從機(jī)
  • AXI interconnect:AXI通信通路
axi_typical_system.JPG

AXI接口協(xié)議可用于:

  • AXI master - AXI interconnect的連接
  • AXI slave - AXI interconnect的連接
  • AXI master - AXI slave的連接

1.3.AXI接口

1.3.1.全局信號(hào)

信號(hào)名 來源 描述
ACLK system clock 全局時(shí)鐘信號(hào)
ARESTn system reset 全局復(fù)位信號(hào)替蛉,低有效

1.3.2.寫地址通道

信號(hào)名 來源 描述
AWID master 寫地址ID(用于區(qū)分該地址屬于哪個(gè)寫地址組)
AWADDR master 寫地址
AWLEN master 突發(fā)長度
AWSIZE master 突發(fā)尺寸(每次突發(fā)傳輸?shù)淖铋Lbyte數(shù))
AWBURST master 突發(fā)方式(FIXED檐迟,INCR,WRAP)
AWCACHE master 存儲(chǔ)類型(標(biāo)記系統(tǒng)需要的傳輸類型)
AWPROT master 保護(hù)模式
AWQOS master QoS標(biāo)識(shí)符
AWREGION master region標(biāo)識(shí)符(當(dāng)slave有多種邏輯接口時(shí)標(biāo)識(shí)使用的邏輯接口)
AWUSER master 用戶自定義信號(hào)
AWVALID master 寫地址有效信號(hào)(有效時(shí)表示AWADDR上地址有效)
AWREADY master 寫從機(jī)就緒信號(hào)(有效時(shí)表示從機(jī)準(zhǔn)備好接收地址)

1.3.3.寫數(shù)據(jù)通道

信號(hào)名 來源 描述
WDATA master 寫數(shù)據(jù)
WSTRB master 數(shù)據(jù)段有效(標(biāo)記寫數(shù)據(jù)中哪幾個(gè)8位字段有效)
WLAST master last信號(hào)(有效時(shí)表示當(dāng)前為突發(fā)傳輸最后一個(gè)數(shù)據(jù))
WUSER master 用戶自定義信號(hào)
WVALID master 寫有效信號(hào)(有效時(shí)表示W(wǎng)DATA上數(shù)據(jù)有效)
WREADY slave 寫ready信號(hào)(有效時(shí)表示從機(jī)準(zhǔn)備好接收數(shù)據(jù))

1.3.4.寫響應(yīng)通道

信號(hào)名 來源 描述
BID slave 響應(yīng)ID
BRESP slave 寫響應(yīng)
BUSER slave 用戶自定義信號(hào)
BVALID slave 寫響應(yīng)信號(hào)有效
BREADY master 寫響應(yīng)ready(主機(jī)準(zhǔn)備好接受寫響應(yīng)信號(hào))

1.3.5.讀地址通道

信號(hào)名 來源 描述
ARID master 讀地址ID
ARADDR master 讀地址
ARLEN master 突發(fā)長度
ARSIZE master 突發(fā)尺寸(每次突發(fā)傳輸?shù)腷yte數(shù))
ARBURST master 突發(fā)類型(FIXED,INCR,WRAP)
ARCACHE master 存儲(chǔ)類型
ARPROT master 保護(hù)類型
ARQOS master QoS標(biāo)識(shí)符
ARREGION master 區(qū)域標(biāo)識(shí)符
ARUSER master 用戶自定義
ARVALID master 讀地址有效(有效時(shí)表示ARADDR上地址有效)
ARREADY slave 寫有效信號(hào)(有效時(shí)表示從機(jī)準(zhǔn)備好接收讀地址)

1.3.6.讀數(shù)據(jù)通道

信號(hào)名 來源 描述
RID slave 讀ID標(biāo)簽
RDATA slave 讀數(shù)據(jù)
RRESP slave 讀響應(yīng)
RLAST slave 有效時(shí)表示為突發(fā)傳輸?shù)淖詈笠粋€(gè)
RUSER slave 用戶自定義
RVALID slave 讀數(shù)據(jù)有效信號(hào)
RREADY master 主機(jī)就緒信號(hào)(有效時(shí)表示)

1.3.7.低功耗接口信號(hào)

信號(hào)名 來源 描述
CSYSREQ Clock controller 該信號(hào)有效時(shí)揖庄,系統(tǒng)退出低功耗模式
CSYSACK Peripheral device 退出低功耗模式應(yīng)答信號(hào)
CACTIVE Peripheral device 外設(shè)申請(qǐng)時(shí)鐘信號(hào)

2.AXI接口時(shí)序

2.1.復(fù)位

復(fù)位信號(hào)可以異步復(fù)位,但必須同步釋放欠雌,復(fù)位時(shí)抠艾,信號(hào)要求如下:

  • 主機(jī)驅(qū)動(dòng)的所有VALID信號(hào)(ARVALID, AWVALID和WVALID)必須被拉低
  • 從機(jī)驅(qū)動(dòng)的所有VALID信號(hào)(RVALID和BVALID)必須被拉低
  • 其他信號(hào)無要求

2.2.基本傳輸

2.2.1.握手信號(hào)

握手信號(hào)包括VALID和READY信號(hào),傳輸行為僅在VALID和READY同時(shí)有效時(shí)發(fā)生桨昙。其中:

  • VALID信號(hào)表示地址/數(shù)據(jù)/應(yīng)答信號(hào)總線上的信號(hào)是有效的检号,由傳輸發(fā)起方控制
  • READY信號(hào)表示傳輸接收方已經(jīng)準(zhǔn)備好接收腌歉,由傳輸接收方控制
basic_handshake.png

VALID和READY的先后關(guān)系具有三種情況:

  • VALID先有效,等待READY有效后完成傳輸(VALID一旦有效后在傳輸完成前不可取消)
  • READY先有效齐苛,等待VALID有效后完成傳輸(READY可以在VALID有效前撤銷)
  • VALID和READY同時(shí)有效翘盖,立刻完成傳輸

此外,需要注意的是允許READY信號(hào)等待VALID信號(hào)再有效凹蜂,即即使從機(jī)準(zhǔn)備好馍驯,也可以不提供READY信號(hào),等到主機(jī)發(fā)送VALID信號(hào)再提供READY信號(hào)玛痊。對(duì)應(yīng)的VALID信號(hào)不允許等待READY信號(hào)汰瘫,即不允許VALID等待READY信號(hào)拉高后再拉高,否則容易產(chǎn)生死鎖現(xiàn)象擂煞。

2.2.1.1.命令通道握手(讀地址混弥,寫地址,寫響應(yīng))

  • 僅當(dāng)?shù)刂返刃畔⒂行r(shí)对省,才拉高VALID蝗拿,該VALID必須保持直到傳輸完成(READY置位)
  • READY默認(rèn)狀態(tài)不關(guān)心,僅當(dāng)準(zhǔn)備好接收時(shí)拉高READY

2.2.1.2數(shù)據(jù)通道握手(寫數(shù)據(jù)和讀地址)

  • 突發(fā)讀寫模式下,僅數(shù)據(jù)信息有效時(shí)才拉高VALID,該VALID必須保持直到傳輸完成上真。當(dāng)突發(fā)傳輸最后一個(gè)數(shù)據(jù)發(fā)送時(shí)拉高LAST信號(hào)
  • READY默認(rèn)狀態(tài)不關(guān)心,僅當(dāng)準(zhǔn)備好接收時(shí)拉高READY

2.2.2.通道順序

傳輸中仓手,通道傳輸?shù)南群笥幸韵乱?guī)定

  • 寫響應(yīng)通道傳輸必須在寫操作完成以后進(jìn)行
  • 讀數(shù)據(jù)通道傳輸必須在讀地址通道傳輸后進(jìn)行
  • 必須遵循一系列的狀態(tài)依賴關(guān)系

下文中會(huì)使用一些圖描述依賴關(guān)系。圖表中玻淑,單箭頭表示可以等待有效再置位嗽冒,雙重箭頭表示必須等待有效再置位

2.2.2.1.讀操作順序

read_depend.PNG

上圖為讀操作的依賴關(guān)系,ARREADY可以等待ARVALID信號(hào)岁忘,RVALID必須等待ARVALID和ARREADY同時(shí)有效后(一次地址傳輸發(fā)生)才能能有效

2.2.2.2.寫操作順序

write_depend.PNG

AXI3中寫操作中唯一的強(qiáng)依賴關(guān)系是寫響應(yīng)通道BVALID辛慰,僅當(dāng)WVALID和WREADY信號(hào)同時(shí)有效(數(shù)據(jù)傳輸完成)且WLAST信號(hào)有效(突發(fā)傳輸?shù)淖詈笠粋€(gè)數(shù)據(jù)傳輸完成)后才會(huì)被置位区匠。

axi4_write_depend.PNG

在AXI4中干像,定義了額外的依賴關(guān)系,即BVALID必須依賴AWVALID驰弄、AWREADY麻汰、WVALID和WREADY信號(hào)。

3.數(shù)據(jù)結(jié)構(gòu)

3.1.地址通道數(shù)據(jù)結(jié)構(gòu)

AXI總線是基于突發(fā)傳輸?shù)目偩€戚篙,若主機(jī)要開始一次突發(fā)傳輸五鲫,需要傳輸一次地址和相關(guān)控制信號(hào),之后從機(jī)自動(dòng)計(jì)算地址岔擂,但一次突發(fā)傳輸?shù)牡刂贩秶荒芸缭?KB位喂。

3.1.1.突發(fā)傳輸信息

3.1.1.1.突發(fā)長度(AxLEN)

突發(fā)長度為每次突發(fā)傳輸?shù)膫鬏敶螖?shù)浪耘,范圍限制1~16(AXI4增量模式1~256)且不能跨越4kb的地址空間,每次突發(fā)傳輸不允許提前終止(可以通過關(guān)閉所有數(shù)據(jù)字段的方式使一段傳輸數(shù)據(jù)無效塑崖,但傳輸行為必須完成)七冲。每次傳輸?shù)耐话l(fā)長度為AxLEN[3:0] + 1(AXI增量模式AxLEN[7:0] + 1)

  • ARLEN[7:0]:讀地址通道的突發(fā)長度接口
  • AWLEN[7:0]:寫地址通道的突發(fā)長度接口

對(duì)于回卷模式突發(fā)傳輸,突發(fā)長度僅能是2,4,8或16规婆。

3.1.1.2.突發(fā)尺寸(AxSIZE)

突發(fā)尺寸為每次傳輸?shù)腷yte數(shù)量澜躺,與突發(fā)傳輸?shù)牡刂奉A(yù)測(cè)相關(guān)性很強(qiáng)。每次的突發(fā)尺寸不能超過數(shù)據(jù)通道的寬度抒蚜;若突發(fā)尺寸小于數(shù)據(jù)通道寬度掘鄙,需要指定哪些位數(shù)是有效的。突發(fā)尺寸為2AxSIZE[2:0]嗡髓。

  • ARSIZE[2:0]:讀地址通道突發(fā)尺寸
  • AWSIZE[2:0]:寫地址通道突發(fā)尺寸

3.1.1.3.突發(fā)類型(AxBURST)

AXI支持三種突發(fā)類型:

  • FIXED(AxBURST[1:0]=0b00):固定突發(fā)模式操漠,每次突發(fā)傳輸?shù)牡刂废嗤?/li>
  • INCR(AxBURST[1:0]=0b01):增量突發(fā)模式,突發(fā)傳輸?shù)刂愤f增器贩,遞增量與突發(fā)尺寸相關(guān)
  • WRAP(AxBURST[1:0]=0b10):回卷突發(fā)模式颅夺,突發(fā)傳輸?shù)刂房梢绯鲂赃f增,突發(fā)長度僅支持2,4,8,16蛹稍。地址空間被劃分為長度【突發(fā)尺寸*突發(fā)長度】的塊吧黄,傳輸?shù)刂凡粫?huì)超出起始地址所在的塊,一旦遞增超出唆姐,則回到該塊的起始地址拗慨。

3.1.2.存儲(chǔ)類型(AxCACHE)

AXI4可支持不同的存儲(chǔ)類型,AxCACHE[3:0]用于描述不同的存儲(chǔ)類型奉芦,如下圖所示

ARCACHE[3:0] AWCACHE[3:0] Memory type
0000 0000 Device Non-bufferable
0001 0001 Device Bufferable
0010 0010 Normal Non-cacheable Non-bufferable
0011 0011 Normal Non-cacheable Bufferable
1010 0110 Write-through No-allocate
1110 (0110) 0110 Write-through Read-allocate
1010 1110 (1010) Write-through Write-allocate
1110 1110 Write-through Read and Write-allocate
1011 0111 Write-back No-allocate
1111 (0111) 0111 Write-back Read-allocate
1011 1111 (1011) Write-back Write-allocate
1111 1111 Write-back Read and Write-allocate

3.1.3.Qos標(biāo)識(shí)符(AxQOS)

AXI4總線支持QoS赵抢,該標(biāo)識(shí)符AxQOS[3:0]表示服務(wù)的優(yōu)先級(jí)

3.1.4.REGION標(biāo)識(shí)符(AxREGION)

region標(biāo)識(shí)符用于指定選用的高級(jí)邏輯接口類型,當(dāng)使用該標(biāo)識(shí)符AxREGION[3:0]時(shí)声功,表示有多個(gè)邏輯接口共享該物理接口

3.1.5.權(quán)限標(biāo)識(shí)符(AxPROT)

權(quán)限標(biāo)識(shí)符AxPROT[2:0]用于防止非法傳輸

3.1.6.用戶自定義(AxUSER)

用戶自定義數(shù)據(jù)

3.2.數(shù)據(jù)通道數(shù)據(jù)結(jié)構(gòu)

3.2.1.數(shù)據(jù)選通(WSTRB)

WSTRB的每一位對(duì)應(yīng)數(shù)據(jù)中的8位(1字節(jié))烦却,用于標(biāo)志數(shù)據(jù)中的對(duì)應(yīng)字節(jié)是否有效。即當(dāng)WSTRB[n] = 1時(shí)先巴,標(biāo)志數(shù)據(jù)中WDATA[(8n)+7: (8n)]部分有效其爵。

3.2.2.數(shù)據(jù)(xDATA)

3.2.2.1.窄帶傳輸(Narrow transfers)

當(dāng)傳輸?shù)臄?shù)據(jù)位寬小于xDATA總線帶寬時(shí),為窄帶傳輸伸蚯,每次使用的數(shù)據(jù)位數(shù)不同:

  • 固定地址的突發(fā)下摩渺,使用同一段數(shù)據(jù)信號(hào)線
  • 在遞增地址和包裝地址的突發(fā)下,使用不同段信號(hào)線
narrow.JPG

上圖為地址遞增突發(fā)下剂邮,在32位數(shù)據(jù)信號(hào)下使用8bit傳輸?shù)恼瓗鬏斒褂玫奈粩?shù)圖摇幻。第一次傳輸使用0~7位,第二次使用8~15位,依次遞增绰姻;在第五次傳輸時(shí)回到開頭使用0~7位

3.2.2.2.不對(duì)齊傳輸(Unaligned transfers)

當(dāng)傳輸位寬超過1byte枉侧,起始地址不為數(shù)據(jù)總線硬件帶寬(byte單位)整數(shù)倍時(shí),為不對(duì)齊傳輸狂芋。不對(duì)齊傳輸?shù)臅r(shí)候需要配合數(shù)據(jù)選通在第一次傳輸時(shí)將某幾個(gè)byte置為無效棵逊,使第二次突發(fā)傳輸?shù)钠鹗嫉刂罚◤臋C(jī)自動(dòng)計(jì)算)為突發(fā)尺寸的整數(shù)倍。

Unaligned.JPG

如圖银酗,突發(fā)尺寸為4byte辆影,若要對(duì)齊傳輸,起始地址要為4的整數(shù)倍黍特。圖中起始地址為0x07蛙讥,因此為非對(duì)齊傳輸。第一次傳輸時(shí)灭衷,前3個(gè)數(shù)據(jù)為無效字段次慢,可以使用數(shù)據(jù)選通WSTRB將前3個(gè)byte置為無效。

unaligned_narrow.PNG

上圖是在窄帶傳輸下的非對(duì)齊傳輸啟動(dòng)翔曲。傳輸帶寬為64bit迫像,每次傳輸使用32bit,由于是窄帶傳輸瞳遍,因此每次交替使用低字節(jié)和高字節(jié)∥偶耍現(xiàn)在關(guān)注啟動(dòng)狀態(tài),由于啟動(dòng)地址為7掠械,而硬件帶寬為8bit由缆,則必須由地址0啟動(dòng),設(shè)置前7個(gè)字段為無效猾蒂,那么下次傳輸從地址8開始均唉,滿足不對(duì)齊傳輸。

3.2.3.用戶自定義(*USER)

用戶自定義數(shù)據(jù)

3.3.應(yīng)答通道數(shù)據(jù)結(jié)構(gòu)

3.3.1.響應(yīng)信號(hào)(*RESP)

針對(duì)讀和寫均有響應(yīng)的響應(yīng)信號(hào):

  • BRESP[1:0]寫響應(yīng)信號(hào)肚菠,每次突發(fā)傳輸完成后
  • RRESP[1:0]讀響應(yīng)信號(hào)(位于讀數(shù)據(jù)通道)

響應(yīng)信號(hào)含義如下:

  • OKAY(00):正常訪問正確/特權(quán)訪問失敗/不支持特權(quán)訪問
  • EXOKAY(01):特權(quán)訪問成功
  • SLVERR(10):從機(jī)錯(cuò)誤舔箭,傳輸失敗
  • DECERR(11):互連解碼錯(cuò)誤,傳輸失敗

3.3.2.用戶自定義

用戶自定義數(shù)據(jù)

4.傳輸特性

AXI從機(jī)分為兩種:

  • 存儲(chǔ)器從機(jī)(Memory Slave):需要支持所有傳輸特性
  • 外設(shè)從機(jī)(Peripheral Slave):僅需要支持指定的操作蚊逢,但是可以保證所有類型的傳輸完成(不要求非指定的操作響應(yīng)正確)

AxCACHE用于指定傳輸特性层扶,傳輸特性用于標(biāo)定傳輸如何在系統(tǒng)中進(jìn)行和系統(tǒng)級(jí)緩存如何處理傳輸。

4.1.存儲(chǔ)器特性

存儲(chǔ)器特性包括4個(gè)位时捌,如下所示:

  • AxCACHE[0](Bufferable):AxCACHE[0]表示傳輸過程中是否有緩存怒医,當(dāng)該位置為1時(shí)炉抒,表示表示傳輸路徑上具有buffer(可延遲transaction到達(dá)最終點(diǎn)的時(shí)間)

  • AxCACHE[1](Modifiable):標(biāo)記傳輸是否可以被修改/優(yōu)化奢讨,當(dāng)其置0時(shí),每個(gè)傳輸將不會(huì)被更改,具體來說拿诸,AxADDR扒袖、AxSIZE、AxLEN亩码、AxBURST季率、AxLOCK和AxPROT信號(hào)不會(huì)被修改(地址,突發(fā)傳輸信息描沟,傳輸隱私信息不被修改)飒泻。但是AxCACHE[0]、ID和QoS可能被修改吏廉,同時(shí)泞遗,一個(gè)突發(fā)長度長于16的突發(fā)傳輸可能被切開,但是保證傳輸效果相同席覆。當(dāng)該位置1時(shí)史辙,除了以上可能發(fā)生的改變,另外:

    • 多個(gè)傳輸可能被合并為一個(gè)傳輸佩伤,一個(gè)傳輸可能被切分為多個(gè)傳輸
    • 讀傳輸在從機(jī)端讀出的數(shù)據(jù)可能多于主機(jī)的請(qǐng)求(多的數(shù)據(jù)被保存在cache中用于優(yōu)化數(shù)據(jù)訪問)
    • 寫傳輸可能訪問到超過主機(jī)請(qǐng)求的地址范圍聊倔,妥善使用WSTRB保證僅有需要的地址被覆蓋

    另外,AxLOCK和AxPROT信號(hào)仍然不能被改變生巡,同時(shí)需要注意的是:AxCACHE[0]=0耙蔑,具有相同的AXI ID和指向相同的從機(jī)的一系列傳輸?shù)捻樞虿荒芨淖儭?/p>

  • AxCACHE[2](Read-allocate)和AxCACHE[3](Write-allocate):讀寫操作前是否檢查緩存以優(yōu)化傳輸

4.2.存儲(chǔ)器類型

通過ARCACHE和AWCACHE的不同定義不同的存儲(chǔ)器類型

mem_type.PNG
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市孤荣,隨后出現(xiàn)的幾起案子纵潦,更是在濱河造成了極大的恐慌,老刑警劉巖垃环,帶你破解...
    沈念sama閱讀 206,482評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件邀层,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡遂庄,警方通過查閱死者的電腦和手機(jī)寥院,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來涛目,“玉大人秸谢,你說我怎么就攤上這事∨危” “怎么了估蹄?”我有些...
    開封第一講書人閱讀 152,762評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長沫换。 經(jīng)常有香客問我臭蚁,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,273評(píng)論 1 279
  • 正文 為了忘掉前任垮兑,我火速辦了婚禮冷尉,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘系枪。我一直安慰自己雀哨,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評(píng)論 5 373
  • 文/花漫 我一把揭開白布私爷。 她就那樣靜靜地躺著雾棺,像睡著了一般。 火紅的嫁衣襯著肌膚如雪衬浑。 梳的紋絲不亂的頭發(fā)上垢村,一...
    開封第一講書人閱讀 49,046評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音嚎卫,去河邊找鬼嘉栓。 笑死,一個(gè)胖子當(dāng)著我的面吹牛拓诸,可吹牛的內(nèi)容都是我干的侵佃。 我是一名探鬼主播,決...
    沈念sama閱讀 38,351評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼奠支,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼馋辈!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起倍谜,我...
    開封第一講書人閱讀 36,988評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤迈螟,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后尔崔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體答毫,經(jīng)...
    沈念sama閱讀 43,476評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評(píng)論 2 324
  • 正文 我和宋清朗相戀三年季春,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了洗搂。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,064評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡载弄,死狀恐怖耘拇,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情宇攻,我是刑警寧澤惫叛,帶...
    沈念sama閱讀 33,712評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站逞刷,受9級(jí)特大地震影響嘉涌,放射性物質(zhì)發(fā)生泄漏妻熊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評(píng)論 3 307
  • 文/蒙蒙 一洛心、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧题篷,春花似錦词身、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至葫笼,卻和暖如春深啤,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背路星。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評(píng)論 1 262
  • 我被黑心中介騙來泰國打工溯街, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人洋丐。 一個(gè)月前我還...
    沈念sama閱讀 45,511評(píng)論 2 354
  • 正文 我出身青樓呈昔,卻偏偏與公主長得像,于是被迫代替她去往敵國和親友绝。 傳聞我的和親對(duì)象是個(gè)殘疾皇子堤尾,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容