{"id":1381,"date":"2023-08-01T09:00:00","date_gmt":"2023-08-01T02:00:00","guid":{"rendered":"https:\/\/dgway.com\/blog_E\/?p=1381"},"modified":"2023-08-02T09:11:50","modified_gmt":"2023-08-02T02:11:50","slug":"achieving-beyond-7gb-s-transfer-speeds-on-nvme-gen4-ssd-with-next-generation-fpga-ip-core","status":"publish","type":"post","link":"https:\/\/dgway.com\/blog_E\/2023\/08\/01\/achieving-beyond-7gb-s-transfer-speeds-on-nvme-gen4-ssd-with-next-generation-fpga-ip-core\/","title":{"rendered":"Achieving beyond 7GB\/s transfer speeds on NVMe Gen4 SSD with next generation FPGA IP Core"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/2-2-1024x576.png\" alt=\"\" class=\"wp-image-1383\" srcset=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/2-2-1024x576.png 1024w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/2-2-300x169.png 300w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/2-2-768x432.png 768w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/2-2.png 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Welcome to our video in the Storage IP series. Today, we will showcase the powerful functionality of NVMeG4 IP core on the AMD Xilinx evaluation board.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Our solution breaks barriers by enabling intermediate-grade FPGAs that lack PCIe Gen4 Hard IP, featuring only PCIe Gen3 Hard IPs or transceivers, to access NVMe Gen4 SSD.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">With the NVMeG4 IP, you can achieve data transfer at speed of 7400 Mbytes\/sec, doubling the speed compared to NVMe Gen3 SSDs.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This means you can achieve exceptional throughput even on cost-effective FPGA models.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/3-3-1024x576.png\" alt=\"\" class=\"wp-image-1395\" srcset=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/3-3-1024x576.png 1024w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/3-3-300x169.png 300w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/3-3-768x432.png 768w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/3-3.png 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Design Gateway offers two types of NVMe IP cores: the NVMe IP using the PCIe Hard IP and the NVMe IP including the PCIe Soft IP.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Compare the concepts behind these two types<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/4-2-1024x576.png\" alt=\"\" class=\"wp-image-1396\" srcset=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/4-2-1024x576.png 1024w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/4-2-300x169.png 300w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/4-2-768x432.png 768w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/4-2.png 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">First, let&#8217;s take a brief look at the NVMe IP using the Hard IP.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In this configuration, the NVMe Gen4 SSD is connected to the PCIe Gen4 Hard IP, which incorporates an FPGA transceiver for high-speed data transfer.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The NVMe IP core facilitates direct connectivity between the SSD and the Hard IP, enabling the NVMe host function.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To initiate data transfer with the SSD, the User Logic can simply generate Write or Read command requests.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/5-2-1024x576.png\" alt=\"\" class=\"wp-image-1397\" srcset=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/5-2-1024x576.png 1024w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/5-2-300x169.png 300w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/5-2-768x432.png 768w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/5-2.png 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Moving on to the second type of our NVMe IP core, it is designed for FPGAs that lack the PCIe Hard IP.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In this scenario, only the transceiver is available for connecting with the SSD.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To operate the PCIe Hard IP function, the PCIe Soft IP becomes necessary for interfacing with the transceiver. We refer to this configuration as the NVMeG4 IP, which includes the built-in PCIe Soft IP.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Despite not utilizing the PCIe Gen4 Hard IP, it still provides the NVMe host function.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Example comparing the FPGA models when using NVMeG4 IP and NVMe IP<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/docs.xilinx.com\/v\/u\/en-US\/ultrascale-plus-fpga-product-selection-guide\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/6-1-1024x576.png\" alt=\"\" class=\"wp-image-1387\" srcset=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/6-1-1024x576.png 1024w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/6-1-300x169.png 300w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/6-1-768x432.png 768w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/6-1.png 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">In this example, we&#8217;ll be focusing on the Kintex UltraScale+ model, the AMD Xilinx FPGA.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">From the provided table, we can observe that the smallest device model, KU3P, is capable of integrating the NVMeG4 IP. The unit price for this device is approximately 2,000 USD.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On the other hand, using the NVMe IP requires a device that includes the PCIe Hard IP, the KU19P, which comes with a unit price of around 10,000 USD. Using the NVMeG4 IP can save significantly on the device cost.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">However, the resource utilization of the NVMeG4 IP, in comparison to the NVMe IP, is considerably larger due to the implementation of the PCIe Soft IP.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Therefore, it depends on the users to determine which IP option best aligns with their system specifications.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Board Setup<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/7-1024x576.png\" alt=\"\" class=\"wp-image-1388\" srcset=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/7-1024x576.png 1024w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/7-300x169.png 300w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/7-768x432.png 768w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/7.png 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">To prepare the hardware for running the NVMeG4 IP demo, we will need the following components.&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>First is the ZCU102&nbsp;board&nbsp;<\/li>\n\n\n\n<li>Second is AB17 M2FMC adapter board from Design Gateway&nbsp;<\/li>\n\n\n\n<li>Last one is an NVMe Gen4 SSD&nbsp;<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/9-1024x576.png\" alt=\"\" class=\"wp-image-1389\" srcset=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/9-1024x576.png 1024w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/9-300x169.png 300w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/9-768x432.png 768w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/9.png 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>To begin, connect an NVMe Gen4 SSD to Drive1 M.2 slot on the AB17 adapter<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/11-1024x576.png\" alt=\"\" class=\"wp-image-1390\" width=\"840\" height=\"472\" srcset=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/11-1024x576.png 1024w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/11-300x169.png 300w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/11-768x432.png 768w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/11.png 1280w\" sizes=\"auto, (max-width: 840px) 100vw, 840px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Then, connect the AB17 adapter to HPC connector on ZCU102 board&nbsp;<\/li>\n\n\n\n<li>Use two micro USB cables for JTAG programming and Serial console&nbsp;<\/li>\n\n\n\n<li>Finally, plug in the Xilinx power adapter to power the FPGA board&nbsp;<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">By assembling and connecting these hardware components, we will be ready to proceed with the NVMeG4 IP demo.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Write and Read Performance<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Now, let&#8217;s execute two commands: Write and Read, to showcase the performance of the NVMeG4 IP.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/12-1-1024x576.png\" alt=\"\" class=\"wp-image-1391\" srcset=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/12-1-1024x576.png 1024w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/12-1-300x169.png 300w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/12-1-768x432.png 768w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/12-1.png 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">In the demonstration, the left console will display the Write operation, while the right console will show the Read operation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To ensure consistent and accurate results, we will set the transfer size to 64 Gbytes using the LFSR (Linear Feedback Shift Register) test pattern.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/14-1-1024x576.png\" alt=\"\" class=\"wp-image-1399\" srcset=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/14-1-1024x576.png 1024w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/14-1-300x169.png 300w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/14-1-768x432.png 768w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/14-1.png 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Write Performance<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/16-1-1024x576.png\" alt=\"\" class=\"wp-image-1400\" srcset=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/16-1-1024x576.png 1024w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/16-1-300x169.png 300w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/16-1-768x432.png 768w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/16-1.png 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Read Performance<\/figcaption><\/figure>\n<\/div>\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/13-1024x576.png\" alt=\"\" class=\"wp-image-1392\" srcset=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/13-1024x576.png 1024w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/13-300x169.png 300w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/13-768x432.png 768w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/13.png 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The Read operation achieves an impressive data transfer speed of 7,400 Mbytes\/sec.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/17-1-1024x576.png\" alt=\"\" class=\"wp-image-1401\" srcset=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/17-1-1024x576.png 1024w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/17-1-300x169.png 300w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/17-1-768x432.png 768w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/17-1.png 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Read Performance<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">On the other hand, the Write speed is approximately 7,000 Mbytes\/sec.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/15-1-1024x576.png\" alt=\"\" class=\"wp-image-1402\" srcset=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/15-1-1024x576.png 1024w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/15-1-300x169.png 300w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/15-1-768x432.png 768w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/15-1.png 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Write Performance<\/figcaption><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\">Performance comparison: NVMe IP operating at Gen3 speed and NVMeG4 IP<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/18-1024x576.png\" alt=\"\" class=\"wp-image-1393\" srcset=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/18-1024x576.png 1024w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/18-300x169.png 300w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/18-768x432.png 768w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2023\/07\/18.png 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The NVMeG4 IP surpasses its predecessor with impressive performance improvements. It achieves data transfer speeds, surpassing 7400 Mbytes\/sec.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In contrast, the NVMe IP operating at Gen3 speed only reaches 3300 Mbytes\/sec.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This significant performance boost showcases the enhanced efficiency of FPGA systems equipped with only PCIe Gen3 hard IP when using the NVMeG4 IP for data transfer with SSDs.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To demonstrate the capabilities of our NVMeG4 IP, we offer a free evaluation demo that can be accessed through our website.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Visit our website today to learn more and access the evaluation demo.&nbsp;<br><a href=\"https:\/\/dgway.com\/NVMe-IP_X_E.html\">https:\/\/dgway.com\/NVMe-IP_X_E.html<\/a><\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Achieving beyond 7GB\/s transfer speeds on NVMe Gen4 SSD with next generation FPGA IP Core\" width=\"680\" height=\"383\" src=\"https:\/\/www.youtube.com\/embed\/o9nlf4pTDRQ?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">YouTube: <a href=\"https:\/\/youtu.be\/o9nlf4pTDRQ\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/youtu.be\/o9nlf4pTDRQ<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Welcome to our video in the Storage IP series. Today, we will showcase the powerful functionality of NVMeG4 IP core on the AMD Xilinx evaluation board.&nbsp; Our solution breaks barriers by enabling intermediate-grade FPGAs that lack PCIe Gen4 Hard IP, featuring only PCIe Gen3 Hard IPs or transceivers, to access NVMe Gen4 SSD.&nbsp; With the NVMeG4 IP, you can achieve&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":1382,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-1381","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-storage"],"_links":{"self":[{"href":"https:\/\/dgway.com\/blog_E\/wp-json\/wp\/v2\/posts\/1381","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dgway.com\/blog_E\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dgway.com\/blog_E\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dgway.com\/blog_E\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dgway.com\/blog_E\/wp-json\/wp\/v2\/comments?post=1381"}],"version-history":[{"count":5,"href":"https:\/\/dgway.com\/blog_E\/wp-json\/wp\/v2\/posts\/1381\/revisions"}],"predecessor-version":[{"id":1406,"href":"https:\/\/dgway.com\/blog_E\/wp-json\/wp\/v2\/posts\/1381\/revisions\/1406"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dgway.com\/blog_E\/wp-json\/wp\/v2\/media\/1382"}],"wp:attachment":[{"href":"https:\/\/dgway.com\/blog_E\/wp-json\/wp\/v2\/media?parent=1381"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dgway.com\/blog_E\/wp-json\/wp\/v2\/categories?post=1381"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dgway.com\/blog_E\/wp-json\/wp\/v2\/tags?post=1381"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}