teroshdl
Version:
Backend for terosHDL IDE
372 lines (371 loc) • 11.1 kB
JSON
{
"entity": {
"name": "video_core",
"description": "\n\n \n\n \n\n\n \n \n\n\n \n\n \n"
},
"generics": [],
"ports": [
{
"name": "clk",
"type": "std_logic",
"line": 27,
"direction": "in",
"default_value": "",
"description": " core clock, 100 Mhz",
"group": ""
},
{
"name": "reset_n",
"type": "std_logic",
"line": 29,
"direction": "in",
"default_value": "",
"description": " asynchronous active low reset",
"group": ""
},
{
"name": "mem_addr",
"type": "std_logic_vector(LUT_ADDR_SIZE-1 downto 0)",
"line": 82,
"direction": "out",
"default_value": "",
"description": " memory address to enable read ",
"group": ""
},
{
"name": "axi_lite_config",
"type": "virtual_bus",
"line": -1,
"direction": "in",
"default_value": "",
"description": " an AXI4-Lite interface to write core registers",
"group": ""
},
{
"name": "video_in_axi_stream",
"type": "virtual_bus",
"line": -1,
"direction": "in",
"default_value": "",
"description": " a slave axi stream interface for video in",
"group": ""
},
{
"name": "video_out_axi_stream",
"type": "virtual_bus",
"line": -1,
"direction": "out",
"default_value": "",
"description": "a master axi stream interface for video out",
"group": ""
}
],
"body": { "processes": [], "instantiations": [] },
"declarations": { "types": [], "signals": [], "constants": [], "functions": [] },
"info": {
"title": "Video Core",
"file": "example_11.vhd",
"date": "2020-07-10",
"copyright": " Copyright (c) 2021 by TerosHDL\n GNU Public License\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n You should have received a copy of the GNU General Public License\n along with this program. If not, see <https://www.gnu.org/licenses/>",
"author": "el3ctrician (elbadriahmad@gmail.com)",
"version": "0.1",
"brief": "Some description can be added here\n also in multi-lines",
"details": "Another description can be added here\n And more core description can be added here\n"
},
"virtual_buses": [
{
"name": "axi_lite_config",
"description": " an AXI4-Lite interface to write core registers",
"direction": "in",
"keep_ports": false,
"ports": [
{
"name": "s_axi_awaddr",
"type": "std_logic_vector(AXI_LITE_ADDR_WIDTH - 1 downto 0)",
"line": 31,
"direction": "in",
"default_value": "",
"description": "\n",
"group": ""
},
{
"name": "s_axi_awprot",
"type": "std_logic_vector(2 downto 0)",
"line": 32,
"direction": "in",
"default_value": "",
"description": "",
"group": ""
},
{
"name": "s_axi_awvalid",
"type": "std_logic",
"line": 33,
"direction": "in",
"default_value": "",
"description": "",
"group": ""
},
{
"name": "s_axi_awready",
"type": "std_logic",
"line": 34,
"direction": "out",
"default_value": "",
"description": "",
"group": ""
},
{
"name": "s_axi_wdata",
"type": "std_logic_vector(AXI_LITE_DATA_WIDTH - 1 downto 0)",
"line": 35,
"direction": "in",
"default_value": "",
"description": "",
"group": ""
},
{
"name": "s_axi_wstrb",
"type": "std_logic_vector((AXI_LITE_DATA_WIDTH/8) - 1 downto 0)",
"line": 36,
"direction": "in",
"default_value": "",
"description": "",
"group": ""
},
{
"name": "s_axi_wvalid",
"type": "std_logic",
"line": 37,
"direction": "in",
"default_value": "",
"description": "",
"group": ""
},
{
"name": "s_axi_wready",
"type": "std_logic",
"line": 38,
"direction": "out",
"default_value": "",
"description": "",
"group": ""
},
{
"name": "s_axi_bresp",
"type": "std_logic_vector(1 downto 0)",
"line": 39,
"direction": "out",
"default_value": "",
"description": "",
"group": ""
},
{
"name": "s_axi_bvalid",
"type": "std_logic",
"line": 40,
"direction": "out",
"default_value": "",
"description": "",
"group": ""
},
{
"name": "s_axi_bready",
"type": "std_logic",
"line": 41,
"direction": "in",
"default_value": "",
"description": "",
"group": ""
},
{
"name": "s_axi_araddr",
"type": "std_logic_vector(AXI_LITE_ADDR_WIDTH - 1 downto 0)",
"line": 42,
"direction": "in",
"default_value": "",
"description": "",
"group": ""
},
{
"name": "s_axi_arprot",
"type": "std_logic_vector(2 downto 0)",
"line": 43,
"direction": "in",
"default_value": "",
"description": "",
"group": ""
},
{
"name": "s_axi_arvalid",
"type": "std_logic",
"line": 44,
"direction": "in",
"default_value": "",
"description": "",
"group": ""
},
{
"name": "s_axi_arready",
"type": "std_logic",
"line": 45,
"direction": "out",
"default_value": "",
"description": "",
"group": ""
},
{
"name": "s_axi_rdata",
"type": "std_logic_vector(AXI_LITE_DATA_WIDTH - 1 downto 0)",
"line": 46,
"direction": "out",
"default_value": "",
"description": "",
"group": ""
},
{
"name": "s_axi_rresp",
"type": "std_logic_vector(1 downto 0)",
"line": 47,
"direction": "out",
"default_value": "",
"description": "",
"group": ""
},
{
"name": "s_axi_rvalid",
"type": "std_logic",
"line": 48,
"direction": "out",
"default_value": "",
"description": "",
"group": ""
},
{
"name": "s_axi_rready",
"type": "std_logic",
"line": 49,
"direction": "in",
"default_value": "",
"description": "",
"group": ""
}
]
},
{
"name": "video_in_axi_stream",
"description": " a slave axi stream interface for video in",
"direction": "in",
"keep_ports": false,
"ports": [
{
"name": "video_in_tdata",
"type": "std_logic_vector(23 downto 0)",
"line": 55,
"direction": "in",
"default_value": "",
"description": "@virtualbus video_in_axi_stream @dir in a slave axi stream interface for video in axis data bus, transfers two pixels per clock with pixel width of 12 bits in mono color\n",
"group": ""
},
{
"name": "video_in_tlast",
"type": "std_logic",
"line": 57,
"direction": "in",
"default_value": "",
"description": " axis last, used to indicate the end of packet which in video context refer to line\n",
"group": ""
},
{
"name": "video_in_tuser",
"type": "std_logic_vector(0 downto 0)",
"line": 59,
"direction": "in",
"default_value": "",
"description": " axis user, usually is user defined but in video context it marks the start of a frame\n",
"group": ""
},
{
"name": "video_in_tvalid",
"type": "std_logic",
"line": 61,
"direction": "in",
"default_value": "",
"description": " axis valid handshake signal\n",
"group": ""
},
{
"name": "video_in_tready",
"type": "std_logic",
"line": 63,
"direction": "out",
"default_value": "",
"description": " axis ready handshake signal\n",
"group": ""
}
]
},
{
"name": "video_out_axi_stream",
"description": "a master axi stream interface for video out",
"direction": "out",
"keep_ports": true,
"ports": [
{
"name": "video_out_tdata",
"type": "std_logic_vector(23 downto 0)",
"line": 68,
"direction": "out",
"default_value": "",
"description": " axis data bus, transfers two pixels per clock with pixel width of 10 bits in mono color\n",
"group": ""
},
{
"name": "video_out_tlast",
"type": "std_logic",
"line": 70,
"direction": "out",
"default_value": "",
"description": " axis last, used to indicate the end of packet which in video context refer to line\n",
"group": ""
},
{
"name": "video_out_tuser",
"type": "std_logic_vector(0 downto 0)",
"line": 72,
"direction": "out",
"default_value": "",
"description": " axis user, usually is user defined but in video context it marks the start of a frame\n",
"group": ""
},
{
"name": "video_out_tvalid",
"type": "std_logic",
"line": 74,
"direction": "out",
"default_value": "",
"description": " axis valid handshake signal\n",
"group": ""
},
{
"name": "video_out_tready",
"type": "std_logic",
"line": 76,
"direction": "in",
"default_value": "",
"description": " axis ready handshake signal\n",
"group": ""
},
{
"name": "mem_dout",
"type": "std_logic_vector(LUT_WORD_SIZE-1 downto 0)",
"line": 80,
"direction": "in",
"default_value": "",
"description": " @end\n data out signal, read data from memory\n",
"group": ""
}
]
}
]
}