暂且不知道这堆东西能不能用
This commit is contained in:
parent
a17a2e0ff1
commit
87df93e775
48 changed files with 13732 additions and 0 deletions
2260
Quartus/Design/.qsys_edit/UART.xml
Normal file
2260
Quartus/Design/.qsys_edit/UART.xml
Normal file
File diff suppressed because it is too large
Load diff
14
Quartus/Design/.qsys_edit/UART_schematic.nlv
Normal file
14
Quartus/Design/.qsys_edit/UART_schematic.nlv
Normal file
|
@ -0,0 +1,14 @@
|
|||
# # File gsaved with Nlview version 6.3.8 2013-12-19 bk=1.2992 VDI=34 GEI=35
|
||||
#
|
||||
preplace inst UART -pg 1 -lvl 1 -y 40 -regy -20
|
||||
preplace inst UART.rs232_0 -pg 1 -lvl 1 -y 100
|
||||
preplace inst UART.clk_0 -pg 1 -lvl 1 -y 30
|
||||
preplace netloc EXPORT<net_container>UART</net_container>(SLAVE)UART.reset,(SLAVE)clk_0.clk_in_reset) 1 0 1 NJ
|
||||
preplace netloc EXPORT<net_container>UART</net_container>(SLAVE)UART.rs232_0_external_interface,(SLAVE)rs232_0.external_interface) 1 0 1 NJ
|
||||
preplace netloc EXPORT<net_container>UART</net_container>(SLAVE)UART.clk,(SLAVE)clk_0.clk_in) 1 0 1 NJ
|
||||
preplace netloc EXPORT<net_container>UART</net_container>(SLAVE)rs232_0.clk,(SLAVE)UART.rs232_0_clk) 1 0 1 NJ
|
||||
preplace netloc EXPORT<net_container>UART</net_container>(SLAVE)UART.rs232_0_reset,(SLAVE)rs232_0.reset) 1 0 1 NJ
|
||||
preplace netloc EXPORT<net_container>UART</net_container>(MASTER)UART.rs232_0_avalon_data_receive_source,(MASTER)rs232_0.avalon_data_receive_source) 1 1 1 N
|
||||
preplace netloc EXPORT<net_container>UART</net_container>(SLAVE)UART.rs232_0_avalon_data_transmit_sink,(SLAVE)rs232_0.avalon_data_transmit_sink) 1 0 1 NJ
|
||||
levelinfo -pg 1 0 200 680
|
||||
levelinfo -hier UART 210 240 460
|
2
Quartus/Design/.qsys_edit/filters.xml
Normal file
2
Quartus/Design/.qsys_edit/filters.xml
Normal file
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<filters version="21.1" />
|
14
Quartus/Design/.qsys_edit/preferences.xml
Normal file
14
Quartus/Design/.qsys_edit/preferences.xml
Normal file
|
@ -0,0 +1,14 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<preferences>
|
||||
<debug showDebugMenu="0" />
|
||||
<systemtable filter="All Interfaces">
|
||||
<columns>
|
||||
<connections preferredWidth="79" />
|
||||
<irq preferredWidth="34" />
|
||||
</columns>
|
||||
</systemtable>
|
||||
<library
|
||||
expandedCategories="Library/Interface Protocols/Ethernet/Reference Design Components,Library/University Program,Library/University Program/Clock,Library/Basic Functions/Simulation; Debug and Verification/Simulation,Library/Interface Protocols/Audio & Video,Library,Project,Library/Interface Protocols/Ethernet,Library/University Program/Audio & Video,Library/Basic Functions/Bridges and Adaptors/Clock,Library/Qsys Interconnect/Interrupt,Library/Basic Functions,Library/DSP,Library/University Program/Audio & Video/Video,Library/Basic Functions/Simulation; Debug and Verification,Library/Basic Functions/Bridges and Adaptors/Memory Mapped,Library/Basic Functions/Bridges and Adaptors,Library/Qsys Interconnect/Memory-Mapped Alpha,Library/Basic Functions/Clocks; PLLs and Resets,Library/Qsys Interconnect,Library/Interface Protocols,Library/Basic Functions/On Chip Memory,Library/DSP/Video and Image Processing" />
|
||||
<window width="1313" height="756" x="542" y="384" />
|
||||
<hdlexample language="VERILOG" />
|
||||
</preferences>
|
2208
Quartus/Design/.qsys_edit/uart_screen.xml
Normal file
2208
Quartus/Design/.qsys_edit/uart_screen.xml
Normal file
File diff suppressed because it is too large
Load diff
11
Quartus/Design/.qsys_edit/uart_screen_schematic.nlv
Normal file
11
Quartus/Design/.qsys_edit/uart_screen_schematic.nlv
Normal file
|
@ -0,0 +1,11 @@
|
|||
# # File gsaved with Nlview version 6.3.8 2013-12-19 bk=1.2992 VDI=34 GEI=35
|
||||
#
|
||||
preplace inst unsaved.rs232_0 -pg 1 -lvl 1 -y 30
|
||||
preplace inst unsaved -pg 1 -lvl 1 -y 40 -regy -20
|
||||
preplace netloc EXPORT<net_container>unsaved</net_container>(SLAVE)unsaved.clk,(SLAVE)rs232_0.clk) 1 0 1 NJ
|
||||
preplace netloc EXPORT<net_container>unsaved</net_container>(SLAVE)unsaved.interrupt,(SLAVE)rs232_0.interrupt) 1 0 1 NJ
|
||||
preplace netloc EXPORT<net_container>unsaved</net_container>(SLAVE)unsaved.reset,(SLAVE)rs232_0.reset) 1 0 1 NJ
|
||||
preplace netloc EXPORT<net_container>unsaved</net_container>(SLAVE)unsaved.avalon_rs232_slave,(SLAVE)rs232_0.avalon_rs232_slave) 1 0 1 NJ
|
||||
preplace netloc EXPORT<net_container>unsaved</net_container>(SLAVE)unsaved.external_interface,(SLAVE)rs232_0.external_interface) 1 0 1 NJ
|
||||
levelinfo -pg 1 0 120 320
|
||||
levelinfo -hier unsaved 130 160 310
|
1057
Quartus/Design/UART.sopcinfo
Normal file
1057
Quartus/Design/UART.sopcinfo
Normal file
File diff suppressed because it is too large
Load diff
171
Quartus/Design/UART/UART.bsf
Normal file
171
Quartus/Design/UART/UART.bsf
Normal file
|
@ -0,0 +1,171 @@
|
|||
/*
|
||||
WARNING: Do NOT edit the input and output ports in this file in a text
|
||||
editor if you plan to continue editing the block that represents it in
|
||||
the Block Editor! File corruption is VERY likely to occur.
|
||||
*/
|
||||
/*
|
||||
Copyright (C) 2021 Intel Corporation. All rights reserved.
|
||||
Your use of Intel Corporation's design tools, logic functions
|
||||
and other software and tools, and any partner logic
|
||||
functions, and any output files from any of the foregoing
|
||||
(including device programming or simulation files), and any
|
||||
associated documentation or information are expressly subject
|
||||
to the terms and conditions of the Intel Program License
|
||||
Subscription Agreement, the Intel Quartus Prime License Agreement,
|
||||
the Intel FPGA IP License Agreement, or other applicable license
|
||||
agreement, including, without limitation, that your use is for
|
||||
the sole purpose of programming logic devices manufactured by
|
||||
Intel and sold by Intel or its authorized distributors. Please
|
||||
refer to the applicable agreement for further details, at
|
||||
https://fpgasoftware.intel.com/eula.
|
||||
*/
|
||||
(header "symbol" (version "1.1"))
|
||||
(symbol
|
||||
(rect 0 0 544 368)
|
||||
(text "UART" (rect 255 -1 284 11)(font "Arial" (font_size 10)))
|
||||
(text "inst" (rect 8 352 20 364)(font "Arial" ))
|
||||
(port
|
||||
(pt 0 72)
|
||||
(input)
|
||||
(text "clk_clk" (rect 0 0 27 12)(font "Arial" (font_size 8)))
|
||||
(text "clk_clk" (rect 4 61 46 72)(font "Arial" (font_size 8)))
|
||||
(line (pt 0 72)(pt 224 72)(line_width 1))
|
||||
)
|
||||
(port
|
||||
(pt 0 112)
|
||||
(input)
|
||||
(text "reset_reset_n" (rect 0 0 56 12)(font "Arial" (font_size 8)))
|
||||
(text "reset_reset_n" (rect 4 101 82 112)(font "Arial" (font_size 8)))
|
||||
(line (pt 0 112)(pt 224 112)(line_width 1))
|
||||
)
|
||||
(port
|
||||
(pt 544 72)
|
||||
(input)
|
||||
(text "rs232_0_from_uart_ready" (rect 0 0 109 12)(font "Arial" (font_size 8)))
|
||||
(text "rs232_0_from_uart_ready" (rect 410 61 548 72)(font "Arial" (font_size 8)))
|
||||
(line (pt 544 72)(pt 304 72)(line_width 1))
|
||||
)
|
||||
(port
|
||||
(pt 0 152)
|
||||
(input)
|
||||
(text "rs232_0_to_uart_data[7..0]" (rect 0 0 109 12)(font "Arial" (font_size 8)))
|
||||
(text "rs232_0_to_uart_data[7..0]" (rect 4 141 160 152)(font "Arial" (font_size 8)))
|
||||
(line (pt 0 152)(pt 224 152)(line_width 3))
|
||||
)
|
||||
(port
|
||||
(pt 0 168)
|
||||
(input)
|
||||
(text "rs232_0_to_uart_error" (rect 0 0 93 12)(font "Arial" (font_size 8)))
|
||||
(text "rs232_0_to_uart_error" (rect 4 157 130 168)(font "Arial" (font_size 8)))
|
||||
(line (pt 0 168)(pt 224 168)(line_width 1))
|
||||
)
|
||||
(port
|
||||
(pt 0 184)
|
||||
(input)
|
||||
(text "rs232_0_to_uart_valid" (rect 0 0 90 12)(font "Arial" (font_size 8)))
|
||||
(text "rs232_0_to_uart_valid" (rect 4 173 130 184)(font "Arial" (font_size 8)))
|
||||
(line (pt 0 184)(pt 224 184)(line_width 1))
|
||||
)
|
||||
(port
|
||||
(pt 0 240)
|
||||
(input)
|
||||
(text "rs232_0_clk" (rect 0 0 49 12)(font "Arial" (font_size 8)))
|
||||
(text "rs232_0_clk" (rect 4 229 70 240)(font "Arial" (font_size 8)))
|
||||
(line (pt 0 240)(pt 224 240)(line_width 1))
|
||||
)
|
||||
(port
|
||||
(pt 0 280)
|
||||
(input)
|
||||
(text "rs232_0_UART_RXD" (rect 0 0 95 12)(font "Arial" (font_size 8)))
|
||||
(text "rs232_0_UART_RXD" (rect 4 269 100 280)(font "Arial" (font_size 8)))
|
||||
(line (pt 0 280)(pt 224 280)(line_width 1))
|
||||
)
|
||||
(port
|
||||
(pt 0 336)
|
||||
(input)
|
||||
(text "rs232_0_reset" (rect 0 0 59 12)(font "Arial" (font_size 8)))
|
||||
(text "rs232_0_reset" (rect 4 325 82 336)(font "Arial" (font_size 8)))
|
||||
(line (pt 0 336)(pt 224 336)(line_width 1))
|
||||
)
|
||||
(port
|
||||
(pt 544 88)
|
||||
(output)
|
||||
(text "rs232_0_from_uart_data[7..0]" (rect 0 0 122 12)(font "Arial" (font_size 8)))
|
||||
(text "rs232_0_from_uart_data[7..0]" (rect 393 77 561 88)(font "Arial" (font_size 8)))
|
||||
(line (pt 544 88)(pt 304 88)(line_width 3))
|
||||
)
|
||||
(port
|
||||
(pt 544 104)
|
||||
(output)
|
||||
(text "rs232_0_from_uart_error" (rect 0 0 106 12)(font "Arial" (font_size 8)))
|
||||
(text "rs232_0_from_uart_error" (rect 414 93 552 104)(font "Arial" (font_size 8)))
|
||||
(line (pt 544 104)(pt 304 104)(line_width 1))
|
||||
)
|
||||
(port
|
||||
(pt 544 120)
|
||||
(output)
|
||||
(text "rs232_0_from_uart_valid" (rect 0 0 103 12)(font "Arial" (font_size 8)))
|
||||
(text "rs232_0_from_uart_valid" (rect 416 109 554 120)(font "Arial" (font_size 8)))
|
||||
(line (pt 544 120)(pt 304 120)(line_width 1))
|
||||
)
|
||||
(port
|
||||
(pt 0 200)
|
||||
(output)
|
||||
(text "rs232_0_to_uart_ready" (rect 0 0 96 12)(font "Arial" (font_size 8)))
|
||||
(text "rs232_0_to_uart_ready" (rect 4 189 130 200)(font "Arial" (font_size 8)))
|
||||
(line (pt 0 200)(pt 224 200)(line_width 1))
|
||||
)
|
||||
(port
|
||||
(pt 0 296)
|
||||
(output)
|
||||
(text "rs232_0_UART_TXD" (rect 0 0 93 12)(font "Arial" (font_size 8)))
|
||||
(text "rs232_0_UART_TXD" (rect 4 285 100 296)(font "Arial" (font_size 8)))
|
||||
(line (pt 0 296)(pt 224 296)(line_width 1))
|
||||
)
|
||||
(drawing
|
||||
(text "clk" (rect 209 43 436 99)(font "Arial" (color 128 0 0)(font_size 9)))
|
||||
(text "clk" (rect 229 67 476 144)(font "Arial" (color 0 0 0)))
|
||||
(text "reset" (rect 195 83 420 179)(font "Arial" (color 128 0 0)(font_size 9)))
|
||||
(text "reset_n" (rect 229 107 500 224)(font "Arial" (color 0 0 0)))
|
||||
(text "rs232_0_avalon_data_receive_source" (rect 305 43 814 99)(font "Arial" (color 128 0 0)(font_size 9)))
|
||||
(text "ready" (rect 276 67 582 144)(font "Arial" (color 0 0 0)))
|
||||
(text "data" (rect 283 83 590 176)(font "Arial" (color 0 0 0)))
|
||||
(text "error" (rect 279 99 588 208)(font "Arial" (color 0 0 0)))
|
||||
(text "valid" (rect 281 115 592 240)(font "Arial" (color 0 0 0)))
|
||||
(text "rs232_0_avalon_data_transmit_sink" (rect 11 123 220 259)(font "Arial" (color 128 0 0)(font_size 9)))
|
||||
(text "data" (rect 229 147 482 304)(font "Arial" (color 0 0 0)))
|
||||
(text "error" (rect 229 163 488 336)(font "Arial" (color 0 0 0)))
|
||||
(text "valid" (rect 229 179 488 368)(font "Arial" (color 0 0 0)))
|
||||
(text "ready" (rect 229 195 488 400)(font "Arial" (color 0 0 0)))
|
||||
(text "rs232_0_clk" (rect 153 211 372 435)(font "Arial" (color 128 0 0)(font_size 9)))
|
||||
(text "clk" (rect 229 235 476 480)(font "Arial" (color 0 0 0)))
|
||||
(text "rs232_0_external_interface" (rect 64 251 284 515)(font "Arial" (color 128 0 0)(font_size 9)))
|
||||
(text "RXD" (rect 229 275 476 560)(font "Arial" (color 0 0 0)))
|
||||
(text "TXD" (rect 229 291 476 592)(font "Arial" (color 0 0 0)))
|
||||
(text "rs232_0_reset" (rect 139 307 356 627)(font "Arial" (color 128 0 0)(font_size 9)))
|
||||
(text "reset" (rect 229 331 488 672)(font "Arial" (color 0 0 0)))
|
||||
(text " UART " (rect 512 352 1060 714)(font "Arial" ))
|
||||
(line (pt 224 32)(pt 304 32)(line_width 1))
|
||||
(line (pt 304 32)(pt 304 352)(line_width 1))
|
||||
(line (pt 224 352)(pt 304 352)(line_width 1))
|
||||
(line (pt 224 32)(pt 224 352)(line_width 1))
|
||||
(line (pt 225 52)(pt 225 76)(line_width 1))
|
||||
(line (pt 226 52)(pt 226 76)(line_width 1))
|
||||
(line (pt 225 92)(pt 225 116)(line_width 1))
|
||||
(line (pt 226 92)(pt 226 116)(line_width 1))
|
||||
(line (pt 303 52)(pt 303 124)(line_width 1))
|
||||
(line (pt 302 52)(pt 302 124)(line_width 1))
|
||||
(line (pt 225 132)(pt 225 204)(line_width 1))
|
||||
(line (pt 226 132)(pt 226 204)(line_width 1))
|
||||
(line (pt 225 220)(pt 225 244)(line_width 1))
|
||||
(line (pt 226 220)(pt 226 244)(line_width 1))
|
||||
(line (pt 225 260)(pt 225 300)(line_width 1))
|
||||
(line (pt 226 260)(pt 226 300)(line_width 1))
|
||||
(line (pt 225 316)(pt 225 340)(line_width 1))
|
||||
(line (pt 226 316)(pt 226 340)(line_width 1))
|
||||
(line (pt 0 0)(pt 544 0)(line_width 1))
|
||||
(line (pt 544 0)(pt 544 368)(line_width 1))
|
||||
(line (pt 0 368)(pt 544 368)(line_width 1))
|
||||
(line (pt 0 0)(pt 0 368)(line_width 1))
|
||||
)
|
||||
)
|
19
Quartus/Design/UART/UART.cmp
Normal file
19
Quartus/Design/UART/UART.cmp
Normal file
|
@ -0,0 +1,19 @@
|
|||
component UART is
|
||||
port (
|
||||
clk_clk : in std_logic := 'X'; -- clk
|
||||
reset_reset_n : in std_logic := 'X'; -- reset_n
|
||||
rs232_0_from_uart_ready : in std_logic := 'X'; -- ready
|
||||
rs232_0_from_uart_data : out std_logic_vector(7 downto 0); -- data
|
||||
rs232_0_from_uart_error : out std_logic; -- error
|
||||
rs232_0_from_uart_valid : out std_logic; -- valid
|
||||
rs232_0_to_uart_data : in std_logic_vector(7 downto 0) := (others => 'X'); -- data
|
||||
rs232_0_to_uart_error : in std_logic := 'X'; -- error
|
||||
rs232_0_to_uart_valid : in std_logic := 'X'; -- valid
|
||||
rs232_0_to_uart_ready : out std_logic; -- ready
|
||||
rs232_0_clk : in std_logic := 'X'; -- clk
|
||||
rs232_0_UART_RXD : in std_logic := 'X'; -- RXD
|
||||
rs232_0_UART_TXD : out std_logic; -- TXD
|
||||
rs232_0_reset : in std_logic := 'X' -- reset
|
||||
);
|
||||
end component UART;
|
||||
|
216
Quartus/Design/UART/UART.html
Normal file
216
Quartus/Design/UART/UART.html
Normal file
|
@ -0,0 +1,216 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>datasheet for UART</title>
|
||||
<style type="text/css">
|
||||
body { font-family:arial ;}
|
||||
a { text-decoration:underline ; color:#003000 ;}
|
||||
a:hover { text-decoration:underline ; color:0030f0 ;}
|
||||
td { padding : 5px ;}
|
||||
table.topTitle { width:100% ;}
|
||||
table.topTitle td.l { text-align:left ; font-weight: bold ; font-size:30px ;}
|
||||
table.topTitle td.r { text-align:right ; font-weight: bold ; font-size:16px ;}
|
||||
table.blueBar { width : 100% ; border-spacing : 0px ;}
|
||||
table.blueBar td { background:#0036ff ; font-size:12px ; color : white ; text-align : left ; font-weight : bold ;}
|
||||
table.blueBar td.l { text-align : left ;}
|
||||
table.blueBar td.r { text-align : right ;}
|
||||
table.items { width:100% ; border-collapse:collapse ;}
|
||||
table.items td.label { font-weight:bold ; font-size:16px ; vertical-align:top ;}
|
||||
table.items td.mono { font-family:courier ; font-size:12px ; white-space:pre ;}
|
||||
div.label { font-weight:bold ; font-size:16px ; vertical-align:top ; text-align:center ;}
|
||||
table.grid { border-collapse:collapse ;}
|
||||
table.grid td { border:1px solid #bbb ; font-size:12px ;}
|
||||
body { font-family:arial ;}
|
||||
table.x { font-family:courier ; border-collapse:collapse ; padding:2px ;}
|
||||
table.x td { border:1px solid #bbb ;}
|
||||
td.tableTitle { font-weight:bold ; text-align:center ;}
|
||||
table.grid { border-collapse:collapse ;}
|
||||
table.grid td { border:1px solid #bbb ;}
|
||||
table.grid td.tableTitle { font-weight:bold ; text-align:center ;}
|
||||
table.mmap { border-collapse:collapse ; text-size:11px ; border:1px solid #d8d8d8 ;}
|
||||
table.mmap td { border-color:#d8d8d8 ; border-width:1px ; border-style:solid ;}
|
||||
table.mmap td.empty { border-style:none ; background-color:#f0f0f0 ;}
|
||||
table.mmap td.slavemodule { text-align:left ; font-size:11px ; border-style:solid solid none solid ;}
|
||||
table.mmap td.slavem { text-align:right ; font-size:9px ; font-style:italic ; border-style:none solid none solid ;}
|
||||
table.mmap td.slaveb { text-align:right ; font-size:9px ; font-style:italic ; border-style:none solid solid solid ;}
|
||||
table.mmap td.mastermodule { text-align:center ; font-size:11px ; border-style:solid solid none solid ;}
|
||||
table.mmap td.masterlr { text-align:center ; font-size:9px ; font-style:italic ; border-style:none solid solid solid ;}
|
||||
table.mmap td.masterl { text-align:center ; font-size:9px ; font-style:italic ; border-style:none none solid solid ;}
|
||||
table.mmap td.masterm { text-align:center ; font-size:9px ; font-style:italic ; border-style:none none solid none ;}
|
||||
table.mmap td.masterr { text-align:center ; font-size:9px ; font-style:italic ; border-style:none solid solid none ;}
|
||||
table.mmap td.addr { font-family:courier ; font-size:9px ; text-align:right ;}
|
||||
table.connectionboxes { border-collapse:separate ; border-spacing:0px ; font-family:arial ;}
|
||||
table.connectionboxes td.from { border-bottom:1px solid black ; font-size:9px ; font-style:italic ; vertical-align:bottom ; text-align:left ;}
|
||||
table.connectionboxes td.to { font-size:9px ; font-style:italic ; vertical-align:top ; text-align:right ;}
|
||||
table.connectionboxes td.lefthandwire { border-bottom:1px solid black ; font-size:9px ; font-style:italic ; vertical-align:bottom ; text-align:right ;}
|
||||
table.connectionboxes td.righthandwire { border-bottom:1px solid black ; font-size:9px ; font-style:italic ; vertical-align:bottom ; text-align:left ;}
|
||||
table.connectionboxes td.righthandlabel { font-size:11px ; vertical-align:bottom ; text-align:left ;}
|
||||
table.connectionboxes td.neighbor { padding:3px ; border:1px solid black ; font-size: 11px ; background:#e8e8e8 ; vertical-align:center ; text-align:center ;}
|
||||
table.connectionboxes td.main { padding:8px ; border:1px solid black ; font-size: 14px ; font-weight:bold ; background:#ffffff ; vertical-align:center ; text-align:center ;}
|
||||
.parametersbox { border:1px solid #d0d0d0 ; display:inline-block ; max-height:160px ; overflow:auto ; width:360px ; font-size:10px ;}
|
||||
.flowbox { display:inline-block ;}
|
||||
.parametersbox table { font-size:10px ;}
|
||||
td.parametername { font-style:italic ;}
|
||||
td.parametervalue { font-weight:bold ;}
|
||||
div.greydiv { vertical-align:top ; text-align:center ; background:#eeeeee ; border-top:1px solid #707070 ; border-bottom:1px solid #707070 ; padding:20px ; margin:20px ; width:auto ;}</style>
|
||||
</head>
|
||||
<body>
|
||||
<table class="topTitle">
|
||||
<tr>
|
||||
<td class="l">UART</td>
|
||||
<td class="r">
|
||||
<br/>
|
||||
<br/>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table class="blueBar">
|
||||
<tr>
|
||||
<td class="l">2022.05.24.19:47:23</td>
|
||||
<td class="r">Datasheet</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div style="width:100% ; height:10px"> </div>
|
||||
<div class="label">Overview</div>
|
||||
<div class="greydiv">
|
||||
<div style="display:inline-block ; text-align:left">
|
||||
<table class="connectionboxes">
|
||||
<tr>
|
||||
<td class="lefthandwire">  clk_0 </td>
|
||||
<td class="main" rowspan="2">UART</td>
|
||||
</tr>
|
||||
<tr style="height:6px">
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><span style="display:inline-block ; width:28px"> </span>
|
||||
<div style="display:inline-block ; text-align:left"><span>
|
||||
<br/></span>
|
||||
</div>
|
||||
</div>
|
||||
<div style="width:100% ; height:10px"> </div>
|
||||
<div class="label">Memory Map</div>
|
||||
<table class="mmap">
|
||||
<tr>
|
||||
<td class="empty" rowspan="2"></td>
|
||||
</tr>
|
||||
</table>
|
||||
<a name="module_clk_0"> </a>
|
||||
<div>
|
||||
<hr/>
|
||||
<h2>clk_0</h2>clock_source v21.1
|
||||
<br/>
|
||||
<br/>
|
||||
<br/>
|
||||
<table class="flowbox">
|
||||
<tr>
|
||||
<td class="parametersbox">
|
||||
<h2>Parameters</h2>
|
||||
<table>
|
||||
<tr>
|
||||
<td class="parametername">clockFrequency</td>
|
||||
<td class="parametervalue">5000000</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="parametername">clockFrequencyKnown</td>
|
||||
<td class="parametervalue">true</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="parametername">inputClockFrequency</td>
|
||||
<td class="parametervalue">0</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="parametername">resetSynchronousEdges</td>
|
||||
<td class="parametervalue">NONE</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="parametername">deviceFamily</td>
|
||||
<td class="parametervalue">UNKNOWN</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="parametername">generateLegacySim</td>
|
||||
<td class="parametervalue">false</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>  
|
||||
<table class="flowbox">
|
||||
<tr>
|
||||
<td class="parametersbox">
|
||||
<h2>Software Assignments</h2>(none)</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<a name="module_rs232_0"> </a>
|
||||
<div>
|
||||
<hr/>
|
||||
<h2>rs232_0</h2>altera_up_avalon_rs232 v17.1
|
||||
<br/>
|
||||
<br/>
|
||||
<br/>
|
||||
<table class="flowbox">
|
||||
<tr>
|
||||
<td class="parametersbox">
|
||||
<h2>Parameters</h2>
|
||||
<table>
|
||||
<tr>
|
||||
<td class="parametername">ref_clk_freq</td>
|
||||
<td class="parametervalue">0.0</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="parametername">avalon_bus_type</td>
|
||||
<td class="parametervalue">Streaming</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="parametername">baud</td>
|
||||
<td class="parametervalue">115200</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="parametername">parity</td>
|
||||
<td class="parametervalue">None</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="parametername">data_bits</td>
|
||||
<td class="parametervalue">8</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="parametername">stop_bits</td>
|
||||
<td class="parametervalue">1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="parametername">AUTO_DEVICE_FAMILY</td>
|
||||
<td class="parametervalue">CYCLONEIVE</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="parametername">AUTO_CLK_CLOCK_RATE</td>
|
||||
<td class="parametervalue">0</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="parametername">deviceFamily</td>
|
||||
<td class="parametervalue">Cyclone IV E</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="parametername">generateLegacySim</td>
|
||||
<td class="parametervalue">false</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>  
|
||||
<table class="flowbox">
|
||||
<tr>
|
||||
<td class="parametersbox">
|
||||
<h2>Software Assignments</h2>(none)</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<table class="blueBar">
|
||||
<tr>
|
||||
<td class="l">generation took 0.00 seconds</td>
|
||||
<td class="r">rendering took 0.00 seconds</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
293
Quartus/Design/UART/UART.xml
Normal file
293
Quartus/Design/UART/UART.xml
Normal file
|
@ -0,0 +1,293 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<deploy
|
||||
date="2022.05.24.19:47:23"
|
||||
outputDirectory="/home/ir/Documents/codelib/Quartus/Design/UART/">
|
||||
<perimeter>
|
||||
<parameter
|
||||
name="AUTO_GENERATION_ID"
|
||||
type="Integer"
|
||||
defaultValue="0"
|
||||
onHdl="0"
|
||||
affectsHdl="1" />
|
||||
<parameter
|
||||
name="AUTO_UNIQUE_ID"
|
||||
type="String"
|
||||
defaultValue=""
|
||||
onHdl="0"
|
||||
affectsHdl="1" />
|
||||
<parameter
|
||||
name="AUTO_DEVICE_FAMILY"
|
||||
type="String"
|
||||
defaultValue="Cyclone IV E"
|
||||
onHdl="0"
|
||||
affectsHdl="1" />
|
||||
<parameter
|
||||
name="AUTO_DEVICE"
|
||||
type="String"
|
||||
defaultValue="EP4CE6E22C8"
|
||||
onHdl="0"
|
||||
affectsHdl="1" />
|
||||
<parameter
|
||||
name="AUTO_DEVICE_SPEEDGRADE"
|
||||
type="String"
|
||||
defaultValue="8"
|
||||
onHdl="0"
|
||||
affectsHdl="1" />
|
||||
<parameter
|
||||
name="AUTO_CLK_CLOCK_RATE"
|
||||
type="Long"
|
||||
defaultValue="-1"
|
||||
onHdl="0"
|
||||
affectsHdl="1" />
|
||||
<parameter
|
||||
name="AUTO_CLK_CLOCK_DOMAIN"
|
||||
type="Integer"
|
||||
defaultValue="-1"
|
||||
onHdl="0"
|
||||
affectsHdl="1" />
|
||||
<parameter
|
||||
name="AUTO_CLK_RESET_DOMAIN"
|
||||
type="Integer"
|
||||
defaultValue="-1"
|
||||
onHdl="0"
|
||||
affectsHdl="1" />
|
||||
<parameter
|
||||
name="AUTO_RS232_0_CLK_CLOCK_RATE"
|
||||
type="Long"
|
||||
defaultValue="-1"
|
||||
onHdl="0"
|
||||
affectsHdl="1" />
|
||||
<parameter
|
||||
name="AUTO_RS232_0_CLK_CLOCK_DOMAIN"
|
||||
type="Integer"
|
||||
defaultValue="-1"
|
||||
onHdl="0"
|
||||
affectsHdl="1" />
|
||||
<parameter
|
||||
name="AUTO_RS232_0_CLK_RESET_DOMAIN"
|
||||
type="Integer"
|
||||
defaultValue="-1"
|
||||
onHdl="0"
|
||||
affectsHdl="1" />
|
||||
<interface name="clk" kind="clock" start="0">
|
||||
<property name="clockRate" value="5000000" />
|
||||
<property name="externallyDriven" value="false" />
|
||||
<property name="ptfSchematicName" value="" />
|
||||
<port name="clk_clk" direction="input" role="clk" width="1" />
|
||||
</interface>
|
||||
<interface name="reset" kind="reset" start="0">
|
||||
<property name="associatedClock" value="" />
|
||||
<property name="synchronousEdges" value="NONE" />
|
||||
<port name="reset_reset_n" direction="input" role="reset_n" width="1" />
|
||||
</interface>
|
||||
<interface
|
||||
name="rs232_0_avalon_data_receive_source"
|
||||
kind="avalon_streaming"
|
||||
start="1">
|
||||
<property name="associatedClock" value="rs232_0_clk" />
|
||||
<property name="associatedReset" value="rs232_0_reset" />
|
||||
<property name="beatsPerCycle" value="1" />
|
||||
<property name="dataBitsPerSymbol" value="8" />
|
||||
<property name="emptyWithinPacket" value="false" />
|
||||
<property name="errorDescriptor" value="" />
|
||||
<property name="firstSymbolInHighOrderBits" value="true" />
|
||||
<property name="highOrderSymbolAtMSB" value="false" />
|
||||
<property name="maxChannel" value="0" />
|
||||
<property name="packetDescription" value="" />
|
||||
<property name="readyLatency" value="0" />
|
||||
<property name="symbolsPerBeat" value="1" />
|
||||
<port
|
||||
name="rs232_0_from_uart_ready"
|
||||
direction="input"
|
||||
role="ready"
|
||||
width="1" />
|
||||
<port
|
||||
name="rs232_0_from_uart_data"
|
||||
direction="output"
|
||||
role="data"
|
||||
width="8" />
|
||||
<port
|
||||
name="rs232_0_from_uart_error"
|
||||
direction="output"
|
||||
role="error"
|
||||
width="1" />
|
||||
<port
|
||||
name="rs232_0_from_uart_valid"
|
||||
direction="output"
|
||||
role="valid"
|
||||
width="1" />
|
||||
</interface>
|
||||
<interface
|
||||
name="rs232_0_avalon_data_transmit_sink"
|
||||
kind="avalon_streaming"
|
||||
start="0">
|
||||
<property name="associatedClock" value="rs232_0_clk" />
|
||||
<property name="associatedReset" value="rs232_0_reset" />
|
||||
<property name="beatsPerCycle" value="1" />
|
||||
<property name="dataBitsPerSymbol" value="8" />
|
||||
<property name="emptyWithinPacket" value="false" />
|
||||
<property name="errorDescriptor" value="" />
|
||||
<property name="firstSymbolInHighOrderBits" value="true" />
|
||||
<property name="highOrderSymbolAtMSB" value="false" />
|
||||
<property name="maxChannel" value="0" />
|
||||
<property name="packetDescription" value="" />
|
||||
<property name="readyLatency" value="0" />
|
||||
<property name="symbolsPerBeat" value="1" />
|
||||
<port name="rs232_0_to_uart_data" direction="input" role="data" width="8" />
|
||||
<port name="rs232_0_to_uart_error" direction="input" role="error" width="1" />
|
||||
<port name="rs232_0_to_uart_valid" direction="input" role="valid" width="1" />
|
||||
<port
|
||||
name="rs232_0_to_uart_ready"
|
||||
direction="output"
|
||||
role="ready"
|
||||
width="1" />
|
||||
</interface>
|
||||
<interface name="rs232_0_clk" kind="clock" start="0">
|
||||
<property name="clockRate" value="0" />
|
||||
<property name="externallyDriven" value="false" />
|
||||
<property name="ptfSchematicName" value="" />
|
||||
<port name="rs232_0_clk" direction="input" role="clk" width="1" />
|
||||
</interface>
|
||||
<interface name="rs232_0_external_interface" kind="conduit" start="0">
|
||||
<property name="associatedClock" value="" />
|
||||
<property name="associatedReset" value="" />
|
||||
<port name="rs232_0_UART_RXD" direction="input" role="RXD" width="1" />
|
||||
<port name="rs232_0_UART_TXD" direction="output" role="TXD" width="1" />
|
||||
</interface>
|
||||
<interface name="rs232_0_reset" kind="reset" start="0">
|
||||
<property name="associatedClock" value="rs232_0_clk" />
|
||||
<property name="synchronousEdges" value="DEASSERT" />
|
||||
<port name="rs232_0_reset" direction="input" role="reset" width="1" />
|
||||
</interface>
|
||||
</perimeter>
|
||||
<entity
|
||||
path=""
|
||||
parameterizationKey="UART:1.0:AUTO_CLK_CLOCK_DOMAIN=-1,AUTO_CLK_CLOCK_RATE=-1,AUTO_CLK_RESET_DOMAIN=-1,AUTO_DEVICE=EP4CE6E22C8,AUTO_DEVICE_FAMILY=Cyclone IV E,AUTO_DEVICE_SPEEDGRADE=8,AUTO_GENERATION_ID=1653392842,AUTO_RS232_0_CLK_CLOCK_DOMAIN=-1,AUTO_RS232_0_CLK_CLOCK_RATE=-1,AUTO_RS232_0_CLK_RESET_DOMAIN=-1,AUTO_UNIQUE_ID=(clock_source:21.1:clockFrequency=5000000,clockFrequencyKnown=true,inputClockFrequency=0,resetSynchronousEdges=NONE)(altera_up_avalon_rs232:17.1:AUTO_CLK_CLOCK_RATE=0,AUTO_DEVICE_FAMILY=Cyclone IV E,avalon_bus_type=Streaming,baud=115200,data_bits=8,parity=None,ref_clk_freq=0.0,stop_bits=1)"
|
||||
instancePathKey="UART"
|
||||
kind="UART"
|
||||
version="1.0"
|
||||
name="UART">
|
||||
<parameter name="AUTO_CLK_CLOCK_RATE" value="-1" />
|
||||
<parameter name="AUTO_RS232_0_CLK_RESET_DOMAIN" value="-1" />
|
||||
<parameter name="AUTO_GENERATION_ID" value="1653392842" />
|
||||
<parameter name="AUTO_DEVICE" value="EP4CE6E22C8" />
|
||||
<parameter name="AUTO_DEVICE_FAMILY" value="Cyclone IV E" />
|
||||
<parameter name="AUTO_CLK_RESET_DOMAIN" value="-1" />
|
||||
<parameter name="AUTO_CLK_CLOCK_DOMAIN" value="-1" />
|
||||
<parameter name="AUTO_UNIQUE_ID" value="" />
|
||||
<parameter name="AUTO_RS232_0_CLK_CLOCK_DOMAIN" value="-1" />
|
||||
<parameter name="AUTO_DEVICE_SPEEDGRADE" value="8" />
|
||||
<parameter name="AUTO_RS232_0_CLK_CLOCK_RATE" value="-1" />
|
||||
<generatedFiles>
|
||||
<file
|
||||
path="/home/ir/Documents/codelib/Quartus/Design/UART/synthesis/UART.v"
|
||||
type="VERILOG" />
|
||||
</generatedFiles>
|
||||
<childGeneratedFiles>
|
||||
<file
|
||||
path="/home/ir/Documents/codelib/Quartus/Design/UART/synthesis/submodules/altera_up_rs232_counters.v"
|
||||
type="VERILOG" />
|
||||
<file
|
||||
path="/home/ir/Documents/codelib/Quartus/Design/UART/synthesis/submodules/altera_up_rs232_in_deserializer.v"
|
||||
type="VERILOG" />
|
||||
<file
|
||||
path="/home/ir/Documents/codelib/Quartus/Design/UART/synthesis/submodules/altera_up_rs232_out_serializer.v"
|
||||
type="VERILOG" />
|
||||
<file
|
||||
path="/home/ir/Documents/codelib/Quartus/Design/UART/synthesis/submodules/altera_up_sync_fifo.v"
|
||||
type="VERILOG" />
|
||||
<file
|
||||
path="/home/ir/Documents/codelib/Quartus/Design/UART/synthesis/submodules/UART_rs232_0.v"
|
||||
type="VERILOG" />
|
||||
</childGeneratedFiles>
|
||||
<sourceFiles>
|
||||
<file path="/home/ir/Documents/codelib/Quartus/Design/UART.qsys" />
|
||||
</sourceFiles>
|
||||
<childSourceFiles>
|
||||
<file
|
||||
path="/opt/intelFPGA/21.1/ip/altera/university_program/communication/altera_up_avalon_rs232/altera_up_avalon_rs232_hw.tcl" />
|
||||
<file
|
||||
path="/opt/intelFPGA/21.1/ip/altera/university_program/communication/altera_up_avalon_rs232/hdl/altera_up_rs232_counters.v" />
|
||||
<file
|
||||
path="/opt/intelFPGA/21.1/ip/altera/university_program/communication/altera_up_avalon_rs232/hdl/altera_up_rs232_in_deserializer.v" />
|
||||
<file
|
||||
path="/opt/intelFPGA/21.1/ip/altera/university_program/communication/altera_up_avalon_rs232/hdl/altera_up_rs232_out_serializer.v" />
|
||||
<file
|
||||
path="/opt/intelFPGA/21.1/ip/altera/university_program/communication/altera_up_avalon_rs232/hdl/altera_up_sync_fifo.v" />
|
||||
</childSourceFiles>
|
||||
<messages>
|
||||
<message level="Debug" culprit="UART">queue size: 0 starting:UART "UART"</message>
|
||||
<message level="Progress" culprit="min"></message>
|
||||
<message level="Progress" culprit="max"></message>
|
||||
<message level="Progress" culprit="current"></message>
|
||||
<message level="Debug">Transform: CustomInstructionTransform</message>
|
||||
<message level="Debug">No custom instruction connections, skipping transform </message>
|
||||
<message level="Debug" culprit="merlin_custom_instruction_transform"><![CDATA[After transform: <b>2</b> modules, <b>0</b> connections]]></message>
|
||||
<message level="Debug">Transform: MMTransform</message>
|
||||
<message level="Debug">Transform: InterruptMapperTransform</message>
|
||||
<message level="Debug">Transform: InterruptSyncTransform</message>
|
||||
<message level="Debug">Transform: InterruptFanoutTransform</message>
|
||||
<message level="Debug">Transform: AvalonStreamingTransform</message>
|
||||
<message level="Debug">Transform: ResetAdaptation</message>
|
||||
<message level="Debug" culprit="UART"><![CDATA["<b>UART</b>" reuses <b>altera_up_avalon_rs232</b> "<b>submodules/UART_rs232_0</b>"]]></message>
|
||||
<message level="Debug" culprit="UART">queue size: 0 starting:altera_up_avalon_rs232 "submodules/UART_rs232_0"</message>
|
||||
<message level="Info" culprit="rs232_0">Starting Generation of RS232 UART</message>
|
||||
<message level="Error" culprit="rs232_0">The input clock frequency must be known at generation time.</message>
|
||||
<message level="Info" culprit="rs232_0"><![CDATA["<b>UART</b>" instantiated <b>altera_up_avalon_rs232</b> "<b>rs232_0</b>"]]></message>
|
||||
</messages>
|
||||
</entity>
|
||||
<entity
|
||||
path="submodules/"
|
||||
parameterizationKey="altera_up_avalon_rs232:17.1:AUTO_CLK_CLOCK_RATE=0,AUTO_DEVICE_FAMILY=Cyclone IV E,avalon_bus_type=Streaming,baud=115200,data_bits=8,parity=None,ref_clk_freq=0.0,stop_bits=1"
|
||||
instancePathKey="UART:.:rs232_0"
|
||||
kind="altera_up_avalon_rs232"
|
||||
version="17.1"
|
||||
name="UART_rs232_0">
|
||||
<parameter name="baud" value="115200" />
|
||||
<parameter name="AUTO_CLK_CLOCK_RATE" value="0" />
|
||||
<parameter name="stop_bits" value="1" />
|
||||
<parameter name="ref_clk_freq" value="0.0" />
|
||||
<parameter name="avalon_bus_type" value="Streaming" />
|
||||
<parameter name="data_bits" value="8" />
|
||||
<parameter name="parity" value="None" />
|
||||
<parameter name="AUTO_DEVICE_FAMILY" value="Cyclone IV E" />
|
||||
<generatedFiles>
|
||||
<file
|
||||
path="/home/ir/Documents/codelib/Quartus/Design/UART/synthesis/submodules/altera_up_rs232_counters.v"
|
||||
type="VERILOG" />
|
||||
<file
|
||||
path="/home/ir/Documents/codelib/Quartus/Design/UART/synthesis/submodules/altera_up_rs232_in_deserializer.v"
|
||||
type="VERILOG" />
|
||||
<file
|
||||
path="/home/ir/Documents/codelib/Quartus/Design/UART/synthesis/submodules/altera_up_rs232_out_serializer.v"
|
||||
type="VERILOG" />
|
||||
<file
|
||||
path="/home/ir/Documents/codelib/Quartus/Design/UART/synthesis/submodules/altera_up_sync_fifo.v"
|
||||
type="VERILOG" />
|
||||
<file
|
||||
path="/home/ir/Documents/codelib/Quartus/Design/UART/synthesis/submodules/UART_rs232_0.v"
|
||||
type="VERILOG" />
|
||||
</generatedFiles>
|
||||
<childGeneratedFiles/>
|
||||
<sourceFiles>
|
||||
<file
|
||||
path="/opt/intelFPGA/21.1/ip/altera/university_program/communication/altera_up_avalon_rs232/altera_up_avalon_rs232_hw.tcl" />
|
||||
<file
|
||||
path="/opt/intelFPGA/21.1/ip/altera/university_program/communication/altera_up_avalon_rs232/hdl/altera_up_rs232_counters.v" />
|
||||
<file
|
||||
path="/opt/intelFPGA/21.1/ip/altera/university_program/communication/altera_up_avalon_rs232/hdl/altera_up_rs232_in_deserializer.v" />
|
||||
<file
|
||||
path="/opt/intelFPGA/21.1/ip/altera/university_program/communication/altera_up_avalon_rs232/hdl/altera_up_rs232_out_serializer.v" />
|
||||
<file
|
||||
path="/opt/intelFPGA/21.1/ip/altera/university_program/communication/altera_up_avalon_rs232/hdl/altera_up_sync_fifo.v" />
|
||||
</sourceFiles>
|
||||
<childSourceFiles/>
|
||||
<instantiator instantiator="UART" as="rs232_0" />
|
||||
<messages>
|
||||
<message level="Debug" culprit="UART">queue size: 0 starting:altera_up_avalon_rs232 "submodules/UART_rs232_0"</message>
|
||||
<message level="Info" culprit="rs232_0">Starting Generation of RS232 UART</message>
|
||||
<message level="Error" culprit="rs232_0">The input clock frequency must be known at generation time.</message>
|
||||
<message level="Info" culprit="rs232_0"><![CDATA["<b>UART</b>" instantiated <b>altera_up_avalon_rs232</b> "<b>rs232_0</b>"]]></message>
|
||||
</messages>
|
||||
</entity>
|
||||
</deploy>
|
32
Quartus/Design/UART/UART_bb.v
Normal file
32
Quartus/Design/UART/UART_bb.v
Normal file
|
@ -0,0 +1,32 @@
|
|||
|
||||
module UART (
|
||||
rs232_0_clk,
|
||||
rs232_0_reset,
|
||||
rs232_0_UART_RXD,
|
||||
rs232_0_UART_TXD,
|
||||
rs232_0_from_uart_ready,
|
||||
rs232_0_from_uart_data,
|
||||
rs232_0_from_uart_error,
|
||||
rs232_0_from_uart_valid,
|
||||
rs232_0_to_uart_data,
|
||||
rs232_0_to_uart_error,
|
||||
rs232_0_to_uart_valid,
|
||||
rs232_0_to_uart_ready,
|
||||
clk_clk,
|
||||
reset_reset_n);
|
||||
|
||||
input rs232_0_clk;
|
||||
input rs232_0_reset;
|
||||
input rs232_0_UART_RXD;
|
||||
output rs232_0_UART_TXD;
|
||||
input rs232_0_from_uart_ready;
|
||||
output [7:0] rs232_0_from_uart_data;
|
||||
output rs232_0_from_uart_error;
|
||||
output rs232_0_from_uart_valid;
|
||||
input [7:0] rs232_0_to_uart_data;
|
||||
input rs232_0_to_uart_error;
|
||||
input rs232_0_to_uart_valid;
|
||||
output rs232_0_to_uart_ready;
|
||||
input clk_clk;
|
||||
input reset_reset_n;
|
||||
endmodule
|
34
Quartus/Design/UART/UART_generation.rpt
Normal file
34
Quartus/Design/UART/UART_generation.rpt
Normal file
|
@ -0,0 +1,34 @@
|
|||
Info: Starting: Create block symbol file (.bsf)
|
||||
Info: qsys-generate /home/ir/Documents/codelib/Quartus/Design/UART.qsys --block-symbol-file --output-directory=/home/ir/Documents/codelib/Quartus/Design/UART --family="Cyclone IV E" --part=EP4CE6E22C8
|
||||
Progress: Loading Design/UART.qsys
|
||||
Progress: Reading input file
|
||||
Progress: Adding clk_0 [clock_source 21.1]
|
||||
Progress: Parameterizing module clk_0
|
||||
Progress: Adding rs232_0 [altera_up_avalon_rs232 17.1]
|
||||
Progress: Parameterizing module rs232_0
|
||||
Progress: Building connections
|
||||
Progress: Parameterizing connections
|
||||
Progress: Validating
|
||||
Progress: Done reading input file
|
||||
Info: qsys-generate succeeded.
|
||||
Info: Finished: Create block symbol file (.bsf)
|
||||
Info:
|
||||
Info: Starting: Create HDL design files for synthesis
|
||||
Info: qsys-generate /home/ir/Documents/codelib/Quartus/Design/UART.qsys --synthesis=VERILOG --output-directory=/home/ir/Documents/codelib/Quartus/Design/UART/synthesis --family="Cyclone IV E" --part=EP4CE6E22C8
|
||||
Progress: Loading Design/UART.qsys
|
||||
Progress: Reading input file
|
||||
Progress: Adding clk_0 [clock_source 21.1]
|
||||
Progress: Parameterizing module clk_0
|
||||
Progress: Adding rs232_0 [altera_up_avalon_rs232 17.1]
|
||||
Progress: Parameterizing module rs232_0
|
||||
Progress: Building connections
|
||||
Progress: Parameterizing connections
|
||||
Progress: Validating
|
||||
Progress: Done reading input file
|
||||
Info: UART: Generating UART "UART" for QUARTUS_SYNTH
|
||||
Info: rs232_0: Starting Generation of RS232 UART
|
||||
Error: rs232_0: The input clock frequency must be known at generation time.
|
||||
Info: rs232_0: "UART" instantiated altera_up_avalon_rs232 "rs232_0"
|
||||
Info: UART: Done "UART" with 2 modules, 6 files
|
||||
Error: qsys-generate failed with exit code 1: 1 Error, 0 Warnings
|
||||
Info: Finished: Create HDL design files for synthesis
|
36
Quartus/Design/UART/UART_generation_previous.rpt
Normal file
36
Quartus/Design/UART/UART_generation_previous.rpt
Normal file
|
@ -0,0 +1,36 @@
|
|||
Info: Starting: Create block symbol file (.bsf)
|
||||
Info: qsys-generate /home/ir/Documents/codelib/Quartus/Design/UART.qsys --block-symbol-file --output-directory=/home/ir/Documents/codelib/Quartus/Design/UART --family="Cyclone IV E" --part=EP4CE6E22C8
|
||||
Progress: Loading Design/UART.qsys
|
||||
Progress: Reading input file
|
||||
Progress: Adding clk_0 [clock_source 21.1]
|
||||
Progress: Parameterizing module clk_0
|
||||
Progress: Adding rs232_0 [altera_up_avalon_rs232 17.1]
|
||||
Progress: Parameterizing module rs232_0
|
||||
Progress: Building connections
|
||||
Progress: Parameterizing connections
|
||||
Progress: Validating
|
||||
Progress: Done reading input file
|
||||
Warning: UART.clk_0: The input clock frequency must be known or set by the parent if this is a subsystem.
|
||||
Info: qsys-generate succeeded.
|
||||
Info: Finished: Create block symbol file (.bsf)
|
||||
Info:
|
||||
Info: Starting: Create HDL design files for synthesis
|
||||
Info: qsys-generate /home/ir/Documents/codelib/Quartus/Design/UART.qsys --synthesis=VERILOG --output-directory=/home/ir/Documents/codelib/Quartus/Design/UART/synthesis --family="Cyclone IV E" --part=EP4CE6E22C8
|
||||
Progress: Loading Design/UART.qsys
|
||||
Progress: Reading input file
|
||||
Progress: Adding clk_0 [clock_source 21.1]
|
||||
Progress: Parameterizing module clk_0
|
||||
Progress: Adding rs232_0 [altera_up_avalon_rs232 17.1]
|
||||
Progress: Parameterizing module rs232_0
|
||||
Progress: Building connections
|
||||
Progress: Parameterizing connections
|
||||
Progress: Validating
|
||||
Progress: Done reading input file
|
||||
Warning: UART.clk_0: The input clock frequency must be known or set by the parent if this is a subsystem.
|
||||
Info: UART: Generating UART "UART" for QUARTUS_SYNTH
|
||||
Info: rs232_0: Starting Generation of RS232 UART
|
||||
Error: rs232_0: The input clock frequency must be known at generation time.
|
||||
Info: rs232_0: "UART" instantiated altera_up_avalon_rs232 "rs232_0"
|
||||
Info: UART: Done "UART" with 2 modules, 6 files
|
||||
Error: qsys-generate failed with exit code 1: 1 Error, 1 Warning
|
||||
Info: Finished: Create HDL design files for synthesis
|
17
Quartus/Design/UART/UART_inst.v
Normal file
17
Quartus/Design/UART/UART_inst.v
Normal file
|
@ -0,0 +1,17 @@
|
|||
UART u0 (
|
||||
.rs232_0_clk (<connected-to-rs232_0_clk>), // rs232_0_clk.clk
|
||||
.rs232_0_reset (<connected-to-rs232_0_reset>), // rs232_0_reset.reset
|
||||
.rs232_0_UART_RXD (<connected-to-rs232_0_UART_RXD>), // rs232_0_external_interface.RXD
|
||||
.rs232_0_UART_TXD (<connected-to-rs232_0_UART_TXD>), // .TXD
|
||||
.rs232_0_from_uart_ready (<connected-to-rs232_0_from_uart_ready>), // rs232_0_avalon_data_receive_source.ready
|
||||
.rs232_0_from_uart_data (<connected-to-rs232_0_from_uart_data>), // .data
|
||||
.rs232_0_from_uart_error (<connected-to-rs232_0_from_uart_error>), // .error
|
||||
.rs232_0_from_uart_valid (<connected-to-rs232_0_from_uart_valid>), // .valid
|
||||
.rs232_0_to_uart_data (<connected-to-rs232_0_to_uart_data>), // rs232_0_avalon_data_transmit_sink.data
|
||||
.rs232_0_to_uart_error (<connected-to-rs232_0_to_uart_error>), // .error
|
||||
.rs232_0_to_uart_valid (<connected-to-rs232_0_to_uart_valid>), // .valid
|
||||
.rs232_0_to_uart_ready (<connected-to-rs232_0_to_uart_ready>), // .ready
|
||||
.clk_clk (<connected-to-clk_clk>), // clk.clk
|
||||
.reset_reset_n (<connected-to-reset_reset_n>) // reset.reset_n
|
||||
);
|
||||
|
1079
Quartus/Design/UART/synthesis/UART.debuginfo
Normal file
1079
Quartus/Design/UART/synthesis/UART.debuginfo
Normal file
File diff suppressed because it is too large
Load diff
48
Quartus/Design/UART/synthesis/UART.qip
Normal file
48
Quartus/Design/UART/synthesis/UART.qip
Normal file
|
@ -0,0 +1,48 @@
|
|||
set_global_assignment -entity "UART" -library "UART" -name IP_TOOL_NAME "Qsys"
|
||||
set_global_assignment -entity "UART" -library "UART" -name IP_TOOL_VERSION "21.1"
|
||||
set_global_assignment -entity "UART" -library "UART" -name IP_TOOL_ENV "Qsys"
|
||||
set_global_assignment -library "UART" -name SOPCINFO_FILE [file join $::quartus(qip_path) "../../UART.sopcinfo"]
|
||||
set_global_assignment -entity "UART" -library "UART" -name SLD_INFO "QSYS_NAME UART HAS_SOPCINFO 1 GENERATION_ID 1653392842"
|
||||
set_global_assignment -library "UART" -name MISC_FILE [file join $::quartus(qip_path) "../UART.cmp"]
|
||||
set_global_assignment -library "UART" -name SLD_FILE [file join $::quartus(qip_path) "UART.debuginfo"]
|
||||
set_global_assignment -entity "UART" -library "UART" -name IP_TARGETED_DEVICE_FAMILY "Cyclone IV E"
|
||||
set_global_assignment -entity "UART" -library "UART" -name IP_GENERATED_DEVICE_FAMILY "{Cyclone IV E}"
|
||||
set_global_assignment -entity "UART" -library "UART" -name IP_QSYS_MODE "SYSTEM"
|
||||
set_global_assignment -name SYNTHESIS_ONLY_QIP ON
|
||||
set_global_assignment -library "UART" -name MISC_FILE [file join $::quartus(qip_path) "../../UART.qsys"]
|
||||
set_global_assignment -entity "UART" -library "UART" -name IP_COMPONENT_NAME "VUFSVA=="
|
||||
set_global_assignment -entity "UART" -library "UART" -name IP_COMPONENT_DISPLAY_NAME "VUFSVA=="
|
||||
set_global_assignment -entity "UART" -library "UART" -name IP_COMPONENT_REPORT_HIERARCHY "On"
|
||||
set_global_assignment -entity "UART" -library "UART" -name IP_COMPONENT_INTERNAL "Off"
|
||||
set_global_assignment -entity "UART" -library "UART" -name IP_COMPONENT_VERSION "MS4w"
|
||||
set_global_assignment -entity "UART" -library "UART" -name IP_COMPONENT_PARAMETER "QVVUT19HRU5FUkFUSU9OX0lE::MTY1MzM5Mjg0Mg==::QXV0byBHRU5FUkFUSU9OX0lE"
|
||||
set_global_assignment -entity "UART" -library "UART" -name IP_COMPONENT_PARAMETER "QVVUT19ERVZJQ0VfRkFNSUxZ::Q3ljbG9uZSBJViBF::QXV0byBERVZJQ0VfRkFNSUxZ"
|
||||
set_global_assignment -entity "UART" -library "UART" -name IP_COMPONENT_PARAMETER "QVVUT19ERVZJQ0U=::RVA0Q0U2RTIyQzg=::QXV0byBERVZJQ0U="
|
||||
set_global_assignment -entity "UART" -library "UART" -name IP_COMPONENT_PARAMETER "QVVUT19ERVZJQ0VfU1BFRURHUkFERQ==::OA==::QXV0byBERVZJQ0VfU1BFRURHUkFERQ=="
|
||||
set_global_assignment -entity "UART" -library "UART" -name IP_COMPONENT_PARAMETER "QVVUT19DTEtfQ0xPQ0tfUkFURQ==::LTE=::QXV0byBDTE9DS19SQVRF"
|
||||
set_global_assignment -entity "UART" -library "UART" -name IP_COMPONENT_PARAMETER "QVVUT19DTEtfQ0xPQ0tfRE9NQUlO::LTE=::QXV0byBDTE9DS19ET01BSU4="
|
||||
set_global_assignment -entity "UART" -library "UART" -name IP_COMPONENT_PARAMETER "QVVUT19DTEtfUkVTRVRfRE9NQUlO::LTE=::QXV0byBSRVNFVF9ET01BSU4="
|
||||
set_global_assignment -entity "UART" -library "UART" -name IP_COMPONENT_PARAMETER "QVVUT19SUzIzMl8wX0NMS19DTE9DS19SQVRF::LTE=::QXV0byBDTE9DS19SQVRF"
|
||||
set_global_assignment -entity "UART" -library "UART" -name IP_COMPONENT_PARAMETER "QVVUT19SUzIzMl8wX0NMS19DTE9DS19ET01BSU4=::LTE=::QXV0byBDTE9DS19ET01BSU4="
|
||||
set_global_assignment -entity "UART" -library "UART" -name IP_COMPONENT_PARAMETER "QVVUT19SUzIzMl8wX0NMS19SRVNFVF9ET01BSU4=::LTE=::QXV0byBSRVNFVF9ET01BSU4="
|
||||
set_global_assignment -entity "UART_rs232_0" -library "UART" -name IP_COMPONENT_NAME "VUFSVF9yczIzMl8w"
|
||||
set_global_assignment -entity "UART_rs232_0" -library "UART" -name IP_COMPONENT_DISPLAY_NAME "UlMyMzIgVUFSVA=="
|
||||
set_global_assignment -entity "UART_rs232_0" -library "UART" -name IP_COMPONENT_REPORT_HIERARCHY "Off"
|
||||
set_global_assignment -entity "UART_rs232_0" -library "UART" -name IP_COMPONENT_INTERNAL "Off"
|
||||
set_global_assignment -entity "UART_rs232_0" -library "UART" -name IP_COMPONENT_AUTHOR "SW50ZWwgRlBHQSBVbml2ZXJzaXR5IFByb2dyYW0="
|
||||
set_global_assignment -entity "UART_rs232_0" -library "UART" -name IP_COMPONENT_VERSION "MTcuMQ=="
|
||||
set_global_assignment -entity "UART_rs232_0" -library "UART" -name IP_COMPONENT_DESCRIPTION "UlMyMzIgVUFSVCBDb250cm9sbGVy"
|
||||
set_global_assignment -entity "UART_rs232_0" -library "UART" -name IP_COMPONENT_PARAMETER "YXZhbG9uX2J1c190eXBl::U3RyZWFtaW5n::QXZhbG9uIFR5cGU="
|
||||
set_global_assignment -entity "UART_rs232_0" -library "UART" -name IP_COMPONENT_PARAMETER "YmF1ZA==::MTE1MjAw::QmF1ZCBSYXRlIChicHMp"
|
||||
set_global_assignment -entity "UART_rs232_0" -library "UART" -name IP_COMPONENT_PARAMETER "cGFyaXR5::Tm9uZQ==::UGFyaXR5"
|
||||
set_global_assignment -entity "UART_rs232_0" -library "UART" -name IP_COMPONENT_PARAMETER "ZGF0YV9iaXRz::OA==::RGF0YSBCaXRz"
|
||||
set_global_assignment -entity "UART_rs232_0" -library "UART" -name IP_COMPONENT_PARAMETER "c3RvcF9iaXRz::MQ==::U3RvcCBCaXRz"
|
||||
set_global_assignment -entity "UART_rs232_0" -library "UART" -name IP_COMPONENT_PARAMETER "QVVUT19ERVZJQ0VfRkFNSUxZ::Q3ljbG9uZSBJViBF::QXV0byBERVZJQ0VfRkFNSUxZ"
|
||||
set_global_assignment -entity "UART_rs232_0" -library "UART" -name IP_COMPONENT_PARAMETER "QVVUT19DTEtfQ0xPQ0tfUkFURQ==::MA==::QXV0byBDTE9DS19SQVRF"
|
||||
|
||||
set_global_assignment -library "UART" -name VERILOG_FILE [file join $::quartus(qip_path) "UART.v"]
|
||||
set_global_assignment -library "UART" -name VERILOG_FILE [file join $::quartus(qip_path) "submodules/altera_up_rs232_counters.v"]
|
||||
set_global_assignment -library "UART" -name VERILOG_FILE [file join $::quartus(qip_path) "submodules/altera_up_rs232_in_deserializer.v"]
|
||||
set_global_assignment -library "UART" -name VERILOG_FILE [file join $::quartus(qip_path) "submodules/altera_up_rs232_out_serializer.v"]
|
||||
set_global_assignment -library "UART" -name VERILOG_FILE [file join $::quartus(qip_path) "submodules/altera_up_sync_fifo.v"]
|
||||
set_global_assignment -library "UART" -name VERILOG_FILE [file join $::quartus(qip_path) "submodules/UART_rs232_0.v"]
|
38
Quartus/Design/UART/synthesis/UART.v
Normal file
38
Quartus/Design/UART/synthesis/UART.v
Normal file
|
@ -0,0 +1,38 @@
|
|||
// UART.v
|
||||
|
||||
// Generated using ACDS version 21.1 842
|
||||
|
||||
`timescale 1 ps / 1 ps
|
||||
module UART (
|
||||
input wire clk_clk, // clk.clk
|
||||
input wire reset_reset_n, // reset.reset_n
|
||||
input wire rs232_0_from_uart_ready, // rs232_0_avalon_data_receive_source.ready
|
||||
output wire [7:0] rs232_0_from_uart_data, // .data
|
||||
output wire rs232_0_from_uart_error, // .error
|
||||
output wire rs232_0_from_uart_valid, // .valid
|
||||
input wire [7:0] rs232_0_to_uart_data, // rs232_0_avalon_data_transmit_sink.data
|
||||
input wire rs232_0_to_uart_error, // .error
|
||||
input wire rs232_0_to_uart_valid, // .valid
|
||||
output wire rs232_0_to_uart_ready, // .ready
|
||||
input wire rs232_0_clk, // rs232_0_clk.clk
|
||||
input wire rs232_0_UART_RXD, // rs232_0_external_interface.RXD
|
||||
output wire rs232_0_UART_TXD, // .TXD
|
||||
input wire rs232_0_reset // rs232_0_reset.reset
|
||||
);
|
||||
|
||||
UART_rs232_0 rs232_0 (
|
||||
.clk (rs232_0_clk), // clk.clk
|
||||
.reset (rs232_0_reset), // reset.reset
|
||||
.from_uart_ready (rs232_0_from_uart_ready), // avalon_data_receive_source.ready
|
||||
.from_uart_data (rs232_0_from_uart_data), // .data
|
||||
.from_uart_error (rs232_0_from_uart_error), // .error
|
||||
.from_uart_valid (rs232_0_from_uart_valid), // .valid
|
||||
.to_uart_data (rs232_0_to_uart_data), // avalon_data_transmit_sink.data
|
||||
.to_uart_error (rs232_0_to_uart_error), // .error
|
||||
.to_uart_valid (rs232_0_to_uart_valid), // .valid
|
||||
.to_uart_ready (rs232_0_to_uart_ready), // .ready
|
||||
.UART_RXD (rs232_0_UART_RXD), // external_interface.export
|
||||
.UART_TXD (rs232_0_UART_TXD) // .export
|
||||
);
|
||||
|
||||
endmodule
|
187
Quartus/Design/UART/synthesis/submodules/UART_rs232_0.v
Normal file
187
Quartus/Design/UART/synthesis/submodules/UART_rs232_0.v
Normal file
|
@ -0,0 +1,187 @@
|
|||
// (C) 2001-2021 Intel Corporation. All rights reserved.
|
||||
// Your use of Intel Corporation's design tools, logic functions and other
|
||||
// software and tools, and its AMPP partner logic functions, and any output
|
||||
// files from any of the foregoing (including device programming or simulation
|
||||
// files), and any associated documentation or information are expressly subject
|
||||
// to the terms and conditions of the Intel Program License Subscription
|
||||
// Agreement, Intel FPGA IP License Agreement, or other applicable
|
||||
// license agreement, including, without limitation, that your use is for the
|
||||
// sole purpose of programming logic devices manufactured by Intel and sold by
|
||||
// Intel or its authorized distributors. Please refer to the applicable
|
||||
// agreement for further details.
|
||||
|
||||
|
||||
// THIS FILE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THIS FILE OR THE USE OR OTHER DEALINGS
|
||||
// IN THIS FILE.
|
||||
|
||||
/******************************************************************************
|
||||
* *
|
||||
* This module reads and writes data to the RS232 connector on Altera's *
|
||||
* DE-series Development and Education Boards. *
|
||||
* *
|
||||
******************************************************************************/
|
||||
|
||||
module UART_rs232_0 (
|
||||
// Inputs
|
||||
clk,
|
||||
reset,
|
||||
|
||||
from_uart_ready,
|
||||
|
||||
to_uart_data,
|
||||
to_uart_error,
|
||||
to_uart_valid,
|
||||
|
||||
UART_RXD,
|
||||
|
||||
// Bidirectionals
|
||||
|
||||
// Outputs
|
||||
from_uart_data,
|
||||
from_uart_error,
|
||||
from_uart_valid,
|
||||
|
||||
to_uart_ready,
|
||||
|
||||
UART_TXD
|
||||
);
|
||||
|
||||
/*****************************************************************************
|
||||
* Parameter Declarations *
|
||||
*****************************************************************************/
|
||||
|
||||
parameter CW = 0; // Baud counter width
|
||||
parameter BAUD_TICK_COUNT = 0;
|
||||
parameter HALF_BAUD_TICK_COUNT = 0;
|
||||
|
||||
parameter TDW = 10; // Total data width
|
||||
parameter DW = 8; // Data width
|
||||
parameter ODD_PARITY = 1'b0;
|
||||
|
||||
/*****************************************************************************
|
||||
* Port Declarations *
|
||||
*****************************************************************************/
|
||||
// Inputs
|
||||
input clk;
|
||||
input reset;
|
||||
|
||||
input from_uart_ready;
|
||||
|
||||
input [(DW-1):0] to_uart_data;
|
||||
input to_uart_error;
|
||||
input to_uart_valid;
|
||||
|
||||
input UART_RXD;
|
||||
|
||||
// Bidirectionals
|
||||
|
||||
// Outputs
|
||||
output [(DW-1):0] from_uart_data;
|
||||
output from_uart_error;
|
||||
output from_uart_valid;
|
||||
|
||||
output to_uart_ready;
|
||||
|
||||
output UART_TXD;
|
||||
|
||||
/*****************************************************************************
|
||||
* Constant Declarations *
|
||||
*****************************************************************************/
|
||||
|
||||
/*****************************************************************************
|
||||
* Internal Wires and Registers Declarations *
|
||||
*****************************************************************************/
|
||||
|
||||
// Internal Wires
|
||||
wire [(DW-1):0] read_data;
|
||||
|
||||
wire write_data_parity;
|
||||
wire [ 7: 0] write_space;
|
||||
|
||||
// Internal Registers
|
||||
|
||||
// State Machine Registers
|
||||
|
||||
/*****************************************************************************
|
||||
* Finite State Machine(s) *
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* Sequential Logic *
|
||||
*****************************************************************************/
|
||||
|
||||
// Output Registers
|
||||
|
||||
// Internal Registers
|
||||
|
||||
/*****************************************************************************
|
||||
* Combinational Logic *
|
||||
*****************************************************************************/
|
||||
|
||||
// Output Assignments
|
||||
assign from_uart_data = read_data;
|
||||
assign from_uart_error = 1'b0;
|
||||
|
||||
assign to_uart_ready = (|(write_space));
|
||||
|
||||
// Internal Assignments
|
||||
assign write_data_parity = (^(to_uart_data)) ^ ODD_PARITY;
|
||||
|
||||
/*****************************************************************************
|
||||
* Internal Modules *
|
||||
*****************************************************************************/
|
||||
|
||||
altera_up_rs232_in_deserializer RS232_In_Deserializer (
|
||||
// Inputs
|
||||
.clk (clk),
|
||||
.reset (reset),
|
||||
|
||||
.serial_data_in (UART_RXD),
|
||||
|
||||
.receive_data_en (from_uart_ready),
|
||||
|
||||
// Bidirectionals
|
||||
|
||||
// Outputs
|
||||
.fifo_read_available (),
|
||||
|
||||
.received_data_valid (from_uart_valid),
|
||||
.received_data (read_data)
|
||||
);
|
||||
defparam
|
||||
RS232_In_Deserializer.CW = CW,
|
||||
RS232_In_Deserializer.BAUD_TICK_COUNT = BAUD_TICK_COUNT,
|
||||
RS232_In_Deserializer.HALF_BAUD_TICK_COUNT = HALF_BAUD_TICK_COUNT,
|
||||
RS232_In_Deserializer.TDW = TDW,
|
||||
RS232_In_Deserializer.DW = (DW - 1);
|
||||
|
||||
altera_up_rs232_out_serializer RS232_Out_Serializer (
|
||||
// Inputs
|
||||
.clk (clk),
|
||||
.reset (reset),
|
||||
|
||||
.transmit_data (to_uart_data),
|
||||
.transmit_data_en (to_uart_valid & to_uart_ready),
|
||||
|
||||
// Bidirectionals
|
||||
|
||||
// Outputs
|
||||
.fifo_write_space (write_space),
|
||||
|
||||
.serial_data_out (UART_TXD)
|
||||
);
|
||||
defparam
|
||||
RS232_Out_Serializer.CW = CW,
|
||||
RS232_Out_Serializer.BAUD_TICK_COUNT = BAUD_TICK_COUNT,
|
||||
RS232_Out_Serializer.HALF_BAUD_TICK_COUNT = HALF_BAUD_TICK_COUNT,
|
||||
RS232_Out_Serializer.TDW = TDW,
|
||||
RS232_Out_Serializer.DW = (DW - 1);
|
||||
|
||||
endmodule
|
||||
|
|
@ -0,0 +1,161 @@
|
|||
// (C) 2001-2021 Intel Corporation. All rights reserved.
|
||||
// Your use of Intel Corporation's design tools, logic functions and other
|
||||
// software and tools, and its AMPP partner logic functions, and any output
|
||||
// files from any of the foregoing (including device programming or simulation
|
||||
// files), and any associated documentation or information are expressly subject
|
||||
// to the terms and conditions of the Intel Program License Subscription
|
||||
// Agreement, Intel FPGA IP License Agreement, or other applicable
|
||||
// license agreement, including, without limitation, that your use is for the
|
||||
// sole purpose of programming logic devices manufactured by Intel and sold by
|
||||
// Intel or its authorized distributors. Please refer to the applicable
|
||||
// agreement for further details.
|
||||
|
||||
|
||||
// THIS FILE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THIS FILE OR THE USE OR OTHER DEALINGS
|
||||
// IN THIS FILE.
|
||||
|
||||
/******************************************************************************
|
||||
* *
|
||||
* This module reads and writes data to the RS232 connectpr on Altera's *
|
||||
* DE1 and DE2 Development and Education Boards. *
|
||||
* *
|
||||
******************************************************************************/
|
||||
|
||||
module altera_up_rs232_counters (
|
||||
// Inputs
|
||||
clk,
|
||||
reset,
|
||||
|
||||
reset_counters,
|
||||
|
||||
// Bidirectionals
|
||||
|
||||
// Outputs
|
||||
baud_clock_rising_edge,
|
||||
baud_clock_falling_edge,
|
||||
all_bits_transmitted
|
||||
);
|
||||
|
||||
/*****************************************************************************
|
||||
* Parameter Declarations *
|
||||
*****************************************************************************/
|
||||
|
||||
parameter CW = 9; // BAUD COUNTER WIDTH
|
||||
parameter BAUD_TICK_COUNT = 433;
|
||||
parameter HALF_BAUD_TICK_COUNT = 216;
|
||||
|
||||
parameter TDW = 11; // TOTAL DATA WIDTH
|
||||
|
||||
/*****************************************************************************
|
||||
* Port Declarations *
|
||||
*****************************************************************************/
|
||||
// Inputs
|
||||
input clk;
|
||||
input reset;
|
||||
|
||||
input reset_counters;
|
||||
|
||||
// Bidirectionals
|
||||
|
||||
// Outputs
|
||||
output reg baud_clock_rising_edge;
|
||||
output reg baud_clock_falling_edge;
|
||||
output reg all_bits_transmitted;
|
||||
|
||||
/*****************************************************************************
|
||||
* Constant Declarations *
|
||||
*****************************************************************************/
|
||||
|
||||
/*****************************************************************************
|
||||
* Internal Wires and Registers Declarations *
|
||||
*****************************************************************************/
|
||||
|
||||
// Internal Wires
|
||||
|
||||
// Internal Registers
|
||||
reg [(CW-1):0] baud_counter;
|
||||
reg [ 3: 0] bit_counter;
|
||||
|
||||
// State Machine Registers
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* Finite State Machine(s) *
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* Sequential Logic *
|
||||
*****************************************************************************/
|
||||
|
||||
always @(posedge clk)
|
||||
begin
|
||||
if (reset)
|
||||
baud_counter <= {CW{1'b0}};
|
||||
else if (reset_counters)
|
||||
baud_counter <= {CW{1'b0}};
|
||||
else if (baud_counter == BAUD_TICK_COUNT)
|
||||
baud_counter <= {CW{1'b0}};
|
||||
else
|
||||
baud_counter <= baud_counter + 1;
|
||||
end
|
||||
|
||||
always @(posedge clk)
|
||||
begin
|
||||
if (reset)
|
||||
baud_clock_rising_edge <= 1'b0;
|
||||
else if (baud_counter == BAUD_TICK_COUNT)
|
||||
baud_clock_rising_edge <= 1'b1;
|
||||
else
|
||||
baud_clock_rising_edge <= 1'b0;
|
||||
end
|
||||
|
||||
always @(posedge clk)
|
||||
begin
|
||||
if (reset)
|
||||
baud_clock_falling_edge <= 1'b0;
|
||||
else if (baud_counter == HALF_BAUD_TICK_COUNT)
|
||||
baud_clock_falling_edge <= 1'b1;
|
||||
else
|
||||
baud_clock_falling_edge <= 1'b0;
|
||||
end
|
||||
|
||||
always @(posedge clk)
|
||||
begin
|
||||
if (reset)
|
||||
bit_counter <= 4'h0;
|
||||
else if (reset_counters)
|
||||
bit_counter <= 4'h0;
|
||||
else if (bit_counter == TDW)
|
||||
bit_counter <= 4'h0;
|
||||
else if (baud_counter == BAUD_TICK_COUNT)
|
||||
bit_counter <= bit_counter + 4'h1;
|
||||
end
|
||||
|
||||
always @(posedge clk)
|
||||
begin
|
||||
if (reset)
|
||||
all_bits_transmitted <= 1'b0;
|
||||
else if (bit_counter == TDW)
|
||||
all_bits_transmitted <= 1'b1;
|
||||
else
|
||||
all_bits_transmitted <= 1'b0;
|
||||
end
|
||||
|
||||
/*****************************************************************************
|
||||
* Combinational Logic *
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* Internal Modules *
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
endmodule
|
||||
|
|
@ -0,0 +1,194 @@
|
|||
// (C) 2001-2021 Intel Corporation. All rights reserved.
|
||||
// Your use of Intel Corporation's design tools, logic functions and other
|
||||
// software and tools, and its AMPP partner logic functions, and any output
|
||||
// files from any of the foregoing (including device programming or simulation
|
||||
// files), and any associated documentation or information are expressly subject
|
||||
// to the terms and conditions of the Intel Program License Subscription
|
||||
// Agreement, Intel FPGA IP License Agreement, or other applicable
|
||||
// license agreement, including, without limitation, that your use is for the
|
||||
// sole purpose of programming logic devices manufactured by Intel and sold by
|
||||
// Intel or its authorized distributors. Please refer to the applicable
|
||||
// agreement for further details.
|
||||
|
||||
|
||||
// THIS FILE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THIS FILE OR THE USE OR OTHER DEALINGS
|
||||
// IN THIS FILE.
|
||||
|
||||
/******************************************************************************
|
||||
* *
|
||||
* This module reads data to the RS232 UART Port. *
|
||||
* *
|
||||
******************************************************************************/
|
||||
|
||||
module altera_up_rs232_in_deserializer (
|
||||
// Inputs
|
||||
clk,
|
||||
reset,
|
||||
|
||||
serial_data_in,
|
||||
|
||||
receive_data_en,
|
||||
|
||||
// Bidirectionals
|
||||
|
||||
// Outputs
|
||||
fifo_read_available,
|
||||
|
||||
received_data_valid,
|
||||
received_data
|
||||
);
|
||||
|
||||
/*****************************************************************************
|
||||
* Parameter Declarations *
|
||||
*****************************************************************************/
|
||||
|
||||
parameter CW = 9; // Baud counter width
|
||||
parameter BAUD_TICK_COUNT = 433;
|
||||
parameter HALF_BAUD_TICK_COUNT = 216;
|
||||
|
||||
parameter TDW = 11; // Total data width
|
||||
parameter DW = 9; // Data width
|
||||
|
||||
/*****************************************************************************
|
||||
* Port Declarations *
|
||||
*****************************************************************************/
|
||||
// Inputs
|
||||
input clk;
|
||||
input reset;
|
||||
|
||||
input serial_data_in;
|
||||
|
||||
input receive_data_en;
|
||||
|
||||
// Bidirectionals
|
||||
|
||||
// Outputs
|
||||
output reg [ 7: 0] fifo_read_available;
|
||||
|
||||
output received_data_valid;
|
||||
output [DW: 0] received_data;
|
||||
|
||||
/*****************************************************************************
|
||||
* Constant Declarations *
|
||||
*****************************************************************************/
|
||||
|
||||
/*****************************************************************************
|
||||
* Internal Wires and Registers Declarations *
|
||||
*****************************************************************************/
|
||||
|
||||
// Internal Wires
|
||||
wire shift_data_reg_en;
|
||||
wire all_bits_received;
|
||||
|
||||
wire fifo_is_empty;
|
||||
wire fifo_is_full;
|
||||
wire [ 6: 0] fifo_used;
|
||||
|
||||
// Internal Registers
|
||||
reg receiving_data;
|
||||
|
||||
reg [(TDW-1):0] data_in_shift_reg;
|
||||
|
||||
// State Machine Registers
|
||||
|
||||
/*****************************************************************************
|
||||
* Finite State Machine(s) *
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* Sequential Logic *
|
||||
*****************************************************************************/
|
||||
|
||||
always @(posedge clk)
|
||||
begin
|
||||
if (reset)
|
||||
fifo_read_available <= 8'h00;
|
||||
else
|
||||
fifo_read_available <= {fifo_is_full, fifo_used};
|
||||
end
|
||||
|
||||
always @(posedge clk)
|
||||
begin
|
||||
if (reset)
|
||||
receiving_data <= 1'b0;
|
||||
else if (all_bits_received)
|
||||
receiving_data <= 1'b0;
|
||||
else if (serial_data_in == 1'b0)
|
||||
receiving_data <= 1'b1;
|
||||
end
|
||||
|
||||
always @(posedge clk)
|
||||
begin
|
||||
if (reset)
|
||||
data_in_shift_reg <= {TDW{1'b0}};
|
||||
else if (shift_data_reg_en)
|
||||
data_in_shift_reg <=
|
||||
{serial_data_in, data_in_shift_reg[(TDW - 1):1]};
|
||||
end
|
||||
|
||||
/*****************************************************************************
|
||||
* Combinational Logic *
|
||||
*****************************************************************************/
|
||||
|
||||
// Output assignments
|
||||
assign received_data_valid = ~fifo_is_empty;
|
||||
|
||||
// Input assignments
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* Internal Modules *
|
||||
*****************************************************************************/
|
||||
|
||||
altera_up_rs232_counters RS232_In_Counters (
|
||||
// Inputs
|
||||
.clk (clk),
|
||||
.reset (reset),
|
||||
|
||||
.reset_counters (~receiving_data),
|
||||
|
||||
// Bidirectionals
|
||||
|
||||
// Outputs
|
||||
.baud_clock_rising_edge (),
|
||||
.baud_clock_falling_edge (shift_data_reg_en),
|
||||
.all_bits_transmitted (all_bits_received)
|
||||
);
|
||||
defparam
|
||||
RS232_In_Counters.CW = CW,
|
||||
RS232_In_Counters.BAUD_TICK_COUNT = BAUD_TICK_COUNT,
|
||||
RS232_In_Counters.HALF_BAUD_TICK_COUNT = HALF_BAUD_TICK_COUNT,
|
||||
RS232_In_Counters.TDW = TDW;
|
||||
|
||||
altera_up_sync_fifo RS232_In_FIFO (
|
||||
// Inputs
|
||||
.clk (clk),
|
||||
.reset (reset),
|
||||
|
||||
.write_en (all_bits_received & ~fifo_is_full),
|
||||
.write_data (data_in_shift_reg[(DW + 1):1]),
|
||||
|
||||
.read_en (receive_data_en & ~fifo_is_empty),
|
||||
|
||||
// Bidirectionals
|
||||
|
||||
// Outputs
|
||||
.fifo_is_empty (fifo_is_empty),
|
||||
.fifo_is_full (fifo_is_full),
|
||||
.words_used (fifo_used),
|
||||
|
||||
.read_data (received_data)
|
||||
);
|
||||
defparam
|
||||
RS232_In_FIFO.DW = DW,
|
||||
RS232_In_FIFO.DATA_DEPTH = 128,
|
||||
RS232_In_FIFO.AW = 6;
|
||||
|
||||
endmodule
|
||||
|
|
@ -0,0 +1,202 @@
|
|||
// (C) 2001-2021 Intel Corporation. All rights reserved.
|
||||
// Your use of Intel Corporation's design tools, logic functions and other
|
||||
// software and tools, and its AMPP partner logic functions, and any output
|
||||
// files from any of the foregoing (including device programming or simulation
|
||||
// files), and any associated documentation or information are expressly subject
|
||||
// to the terms and conditions of the Intel Program License Subscription
|
||||
// Agreement, Intel FPGA IP License Agreement, or other applicable
|
||||
// license agreement, including, without limitation, that your use is for the
|
||||
// sole purpose of programming logic devices manufactured by Intel and sold by
|
||||
// Intel or its authorized distributors. Please refer to the applicable
|
||||
// agreement for further details.
|
||||
|
||||
|
||||
// THIS FILE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THIS FILE OR THE USE OR OTHER DEALINGS
|
||||
// IN THIS FILE.
|
||||
|
||||
/******************************************************************************
|
||||
* *
|
||||
* This module writes data to the RS232 UART Port. *
|
||||
* *
|
||||
******************************************************************************/
|
||||
|
||||
module altera_up_rs232_out_serializer (
|
||||
// Inputs
|
||||
clk,
|
||||
reset,
|
||||
|
||||
transmit_data,
|
||||
transmit_data_en,
|
||||
|
||||
// Bidirectionals
|
||||
|
||||
// Outputs
|
||||
fifo_write_space,
|
||||
|
||||
serial_data_out
|
||||
);
|
||||
|
||||
/*****************************************************************************
|
||||
* Parameter Declarations *
|
||||
*****************************************************************************/
|
||||
|
||||
parameter CW = 9; // Baud counter width
|
||||
parameter BAUD_TICK_COUNT = 433;
|
||||
parameter HALF_BAUD_TICK_COUNT = 216;
|
||||
|
||||
parameter TDW = 11; // Total data width
|
||||
parameter DW = 9; // Data width
|
||||
|
||||
/*****************************************************************************
|
||||
* Port Declarations *
|
||||
*****************************************************************************/
|
||||
// Inputs
|
||||
input clk;
|
||||
input reset;
|
||||
|
||||
input [DW: 0] transmit_data;
|
||||
input transmit_data_en;
|
||||
|
||||
// Bidirectionals
|
||||
|
||||
// Outputs
|
||||
output reg [ 7: 0] fifo_write_space;
|
||||
|
||||
output reg serial_data_out;
|
||||
|
||||
/*****************************************************************************
|
||||
* Constant Declarations *
|
||||
*****************************************************************************/
|
||||
|
||||
/*****************************************************************************
|
||||
* Internal Wires and Registers Declarations *
|
||||
*****************************************************************************/
|
||||
|
||||
// Internal Wires
|
||||
wire shift_data_reg_en;
|
||||
wire all_bits_transmitted;
|
||||
|
||||
wire read_fifo_en;
|
||||
|
||||
wire fifo_is_empty;
|
||||
wire fifo_is_full;
|
||||
wire [ 6: 0] fifo_used;
|
||||
|
||||
wire [DW: 0] data_from_fifo;
|
||||
|
||||
// Internal Registers
|
||||
reg transmitting_data;
|
||||
|
||||
reg [DW+1:0] data_out_shift_reg;
|
||||
|
||||
// State Machine Registers
|
||||
|
||||
/*****************************************************************************
|
||||
* Finite State Machine(s) *
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* Sequential Logic *
|
||||
*****************************************************************************/
|
||||
|
||||
always @(posedge clk)
|
||||
begin
|
||||
if (reset)
|
||||
fifo_write_space <= 8'h00;
|
||||
else
|
||||
fifo_write_space <= 8'h80 - {fifo_is_full, fifo_used};
|
||||
end
|
||||
|
||||
|
||||
always @(posedge clk)
|
||||
begin
|
||||
if (reset)
|
||||
serial_data_out <= 1'b1;
|
||||
else
|
||||
serial_data_out <= data_out_shift_reg[0];
|
||||
end
|
||||
|
||||
always @(posedge clk)
|
||||
begin
|
||||
if (reset)
|
||||
transmitting_data <= 1'b0;
|
||||
else if (all_bits_transmitted)
|
||||
transmitting_data <= 1'b0;
|
||||
else if (fifo_is_empty == 1'b0)
|
||||
transmitting_data <= 1'b1;
|
||||
end
|
||||
|
||||
always @(posedge clk)
|
||||
begin
|
||||
if (reset)
|
||||
data_out_shift_reg <= {(DW + 2){1'b1}};
|
||||
else if (read_fifo_en)
|
||||
data_out_shift_reg <= {data_from_fifo, 1'b0};
|
||||
else if (shift_data_reg_en)
|
||||
data_out_shift_reg <=
|
||||
{1'b1, data_out_shift_reg[DW+1:1]};
|
||||
end
|
||||
|
||||
/*****************************************************************************
|
||||
* Combinational Logic *
|
||||
*****************************************************************************/
|
||||
|
||||
assign read_fifo_en =
|
||||
~transmitting_data & ~fifo_is_empty & ~all_bits_transmitted;
|
||||
|
||||
/*****************************************************************************
|
||||
* Internal Modules *
|
||||
*****************************************************************************/
|
||||
|
||||
altera_up_rs232_counters RS232_Out_Counters (
|
||||
// Inputs
|
||||
.clk (clk),
|
||||
.reset (reset),
|
||||
|
||||
.reset_counters (~transmitting_data),
|
||||
|
||||
// Bidirectionals
|
||||
|
||||
// Outputs
|
||||
.baud_clock_rising_edge (shift_data_reg_en),
|
||||
.baud_clock_falling_edge (),
|
||||
.all_bits_transmitted (all_bits_transmitted)
|
||||
);
|
||||
defparam
|
||||
RS232_Out_Counters.CW = CW,
|
||||
RS232_Out_Counters.BAUD_TICK_COUNT = BAUD_TICK_COUNT,
|
||||
RS232_Out_Counters.HALF_BAUD_TICK_COUNT = HALF_BAUD_TICK_COUNT,
|
||||
RS232_Out_Counters.TDW = TDW;
|
||||
|
||||
altera_up_sync_fifo RS232_Out_FIFO (
|
||||
// Inputs
|
||||
.clk (clk),
|
||||
.reset (reset),
|
||||
|
||||
.write_en (transmit_data_en & ~fifo_is_full),
|
||||
.write_data (transmit_data),
|
||||
|
||||
.read_en (read_fifo_en),
|
||||
|
||||
// Bidirectionals
|
||||
|
||||
// Outputs
|
||||
.fifo_is_empty (fifo_is_empty),
|
||||
.fifo_is_full (fifo_is_full),
|
||||
.words_used (fifo_used),
|
||||
|
||||
.read_data (data_from_fifo)
|
||||
);
|
||||
defparam
|
||||
RS232_Out_FIFO.DW = DW,
|
||||
RS232_Out_FIFO.DATA_DEPTH = 128,
|
||||
RS232_Out_FIFO.AW = 6;
|
||||
|
||||
endmodule
|
||||
|
152
Quartus/Design/UART/synthesis/submodules/altera_up_sync_fifo.v
Normal file
152
Quartus/Design/UART/synthesis/submodules/altera_up_sync_fifo.v
Normal file
|
@ -0,0 +1,152 @@
|
|||
// (C) 2001-2021 Intel Corporation. All rights reserved.
|
||||
// Your use of Intel Corporation's design tools, logic functions and other
|
||||
// software and tools, and its AMPP partner logic functions, and any output
|
||||
// files from any of the foregoing (including device programming or simulation
|
||||
// files), and any associated documentation or information are expressly subject
|
||||
// to the terms and conditions of the Intel Program License Subscription
|
||||
// Agreement, Intel FPGA IP License Agreement, or other applicable
|
||||
// license agreement, including, without limitation, that your use is for the
|
||||
// sole purpose of programming logic devices manufactured by Intel and sold by
|
||||
// Intel or its authorized distributors. Please refer to the applicable
|
||||
// agreement for further details.
|
||||
|
||||
|
||||
// THIS FILE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THIS FILE OR THE USE OR OTHER DEALINGS
|
||||
// IN THIS FILE.
|
||||
|
||||
/******************************************************************************
|
||||
* *
|
||||
* This module is a FIFO with same clock for both reads and writes. *
|
||||
* *
|
||||
******************************************************************************/
|
||||
|
||||
module altera_up_sync_fifo (
|
||||
// Inputs
|
||||
clk,
|
||||
reset,
|
||||
|
||||
write_en,
|
||||
write_data,
|
||||
|
||||
read_en,
|
||||
|
||||
// Bidirectionals
|
||||
|
||||
// Outputs
|
||||
fifo_is_empty,
|
||||
fifo_is_full,
|
||||
words_used,
|
||||
|
||||
read_data
|
||||
);
|
||||
|
||||
/*****************************************************************************
|
||||
* Parameter Declarations *
|
||||
*****************************************************************************/
|
||||
|
||||
parameter DW = 31; // Data width
|
||||
parameter DATA_DEPTH = 128;
|
||||
parameter AW = 6; // Address width
|
||||
|
||||
/*****************************************************************************
|
||||
* Port Declarations *
|
||||
*****************************************************************************/
|
||||
|
||||
// Inputs
|
||||
input clk;
|
||||
input reset;
|
||||
|
||||
input write_en;
|
||||
input [DW: 0] write_data;
|
||||
|
||||
input read_en;
|
||||
|
||||
// Bidirectionals
|
||||
|
||||
// Outputs
|
||||
output fifo_is_empty;
|
||||
output fifo_is_full;
|
||||
output [AW: 0] words_used;
|
||||
|
||||
output [DW: 0] read_data;
|
||||
|
||||
/*****************************************************************************
|
||||
* Constant Declarations *
|
||||
*****************************************************************************/
|
||||
|
||||
/*****************************************************************************
|
||||
* Internal Wires and Registers Declarations *
|
||||
*****************************************************************************/
|
||||
|
||||
// Internal Wires
|
||||
|
||||
// Internal Registers
|
||||
|
||||
// State Machine Registers
|
||||
|
||||
/*****************************************************************************
|
||||
* Finite State Machine(s) *
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* Sequential Logic *
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* Combinational Logic *
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* Internal Modules *
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
scfifo Sync_FIFO (
|
||||
// Inputs
|
||||
.clock (clk),
|
||||
.sclr (reset),
|
||||
|
||||
.data (write_data),
|
||||
.wrreq (write_en),
|
||||
|
||||
.rdreq (read_en),
|
||||
|
||||
// Bidirectionals
|
||||
|
||||
// Outputs
|
||||
.empty (fifo_is_empty),
|
||||
.full (fifo_is_full),
|
||||
.usedw (words_used),
|
||||
|
||||
.q (read_data)
|
||||
|
||||
// Unused
|
||||
// synopsys translate_off
|
||||
,
|
||||
.aclr (),
|
||||
.almost_empty (),
|
||||
.almost_full ()
|
||||
// synopsys translate_on
|
||||
);
|
||||
defparam
|
||||
Sync_FIFO.add_ram_output_register = "OFF",
|
||||
Sync_FIFO.intended_device_family = "Cyclone II",
|
||||
Sync_FIFO.lpm_numwords = DATA_DEPTH,
|
||||
Sync_FIFO.lpm_showahead = "ON",
|
||||
Sync_FIFO.lpm_type = "scfifo",
|
||||
Sync_FIFO.lpm_width = DW + 1,
|
||||
Sync_FIFO.lpm_widthu = AW + 1,
|
||||
Sync_FIFO.overflow_checking = "OFF",
|
||||
Sync_FIFO.underflow_checking = "OFF",
|
||||
Sync_FIFO.use_eab = "ON";
|
||||
|
||||
endmodule
|
||||
|
31
Quartus/Design/design.qpf
Normal file
31
Quartus/Design/design.qpf
Normal file
|
@ -0,0 +1,31 @@
|
|||
# -------------------------------------------------------------------------- #
|
||||
#
|
||||
# Copyright (C) 2021 Intel Corporation. All rights reserved.
|
||||
# Your use of Intel Corporation's design tools, logic functions
|
||||
# and other software and tools, and any partner logic
|
||||
# functions, and any output files from any of the foregoing
|
||||
# (including device programming or simulation files), and any
|
||||
# associated documentation or information are expressly subject
|
||||
# to the terms and conditions of the Intel Program License
|
||||
# Subscription Agreement, the Intel Quartus Prime License Agreement,
|
||||
# the Intel FPGA IP License Agreement, or other applicable license
|
||||
# agreement, including, without limitation, that your use is for
|
||||
# the sole purpose of programming logic devices manufactured by
|
||||
# Intel and sold by Intel or its authorized distributors. Please
|
||||
# refer to the applicable agreement for further details, at
|
||||
# https://fpgasoftware.intel.com/eula.
|
||||
#
|
||||
# -------------------------------------------------------------------------- #
|
||||
#
|
||||
# Quartus Prime
|
||||
# Version 21.1.0 Build 842 10/21/2021 SJ Lite Edition
|
||||
# Date created = 19:36:33 五月 24, 2022
|
||||
#
|
||||
# -------------------------------------------------------------------------- #
|
||||
|
||||
QUARTUS_VERSION = "21.1"
|
||||
DATE = "19:36:33 五月 24, 2022"
|
||||
|
||||
# Revisions
|
||||
|
||||
PROJECT_REVISION = "design"
|
54
Quartus/Design/design.qsf
Normal file
54
Quartus/Design/design.qsf
Normal file
|
@ -0,0 +1,54 @@
|
|||
# -------------------------------------------------------------------------- #
|
||||
#
|
||||
# Copyright (C) 2021 Intel Corporation. All rights reserved.
|
||||
# Your use of Intel Corporation's design tools, logic functions
|
||||
# and other software and tools, and any partner logic
|
||||
# functions, and any output files from any of the foregoing
|
||||
# (including device programming or simulation files), and any
|
||||
# associated documentation or information are expressly subject
|
||||
# to the terms and conditions of the Intel Program License
|
||||
# Subscription Agreement, the Intel Quartus Prime License Agreement,
|
||||
# the Intel FPGA IP License Agreement, or other applicable license
|
||||
# agreement, including, without limitation, that your use is for
|
||||
# the sole purpose of programming logic devices manufactured by
|
||||
# Intel and sold by Intel or its authorized distributors. Please
|
||||
# refer to the applicable agreement for further details, at
|
||||
# https://fpgasoftware.intel.com/eula.
|
||||
#
|
||||
# -------------------------------------------------------------------------- #
|
||||
#
|
||||
# Quartus Prime
|
||||
# Version 21.1.0 Build 842 10/21/2021 SJ Lite Edition
|
||||
# Date created = 19:36:33 五月 24, 2022
|
||||
#
|
||||
# -------------------------------------------------------------------------- #
|
||||
#
|
||||
# Notes:
|
||||
#
|
||||
# 1) The default values for assignments are stored in the file:
|
||||
# design_assignment_defaults.qdf
|
||||
# If this file doesn't exist, see file:
|
||||
# assignment_defaults.qdf
|
||||
#
|
||||
# 2) Intel recommends that you do not modify this file. This
|
||||
# file is updated automatically by the Quartus Prime software
|
||||
# and any changes you make may be lost or overwritten.
|
||||
#
|
||||
# -------------------------------------------------------------------------- #
|
||||
|
||||
|
||||
set_global_assignment -name FAMILY "Cyclone IV E"
|
||||
set_global_assignment -name DEVICE EP4CE6E22C8
|
||||
set_global_assignment -name TOP_LEVEL_ENTITY design
|
||||
set_global_assignment -name ORIGINAL_QUARTUS_VERSION 21.1.0
|
||||
set_global_assignment -name PROJECT_CREATION_TIME_DATE "19:36:33 五月 24, 2022"
|
||||
set_global_assignment -name LAST_QUARTUS_VERSION "21.1.0 Lite Edition"
|
||||
set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output_files
|
||||
set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0
|
||||
set_global_assignment -name MAX_CORE_JUNCTION_TEMP 85
|
||||
set_global_assignment -name ERROR_CHECK_FREQUENCY_DIVISOR 1
|
||||
set_global_assignment -name NOMINAL_CORE_SUPPLY_VOLTAGE 1.2V
|
||||
set_global_assignment -name QSYS_FILE uart_screen.qsys
|
||||
set_global_assignment -name POWER_PRESET_COOLING_SOLUTION "23 MM HEAT SINK WITH 200 LFPM AIRFLOW"
|
||||
set_global_assignment -name POWER_BOARD_THERMAL_MODEL "NONE (CONSERVATIVE)"
|
||||
set_global_assignment -name VERILOG_FILE design.v
|
14
Quartus/Design/design.v
Normal file
14
Quartus/Design/design.v
Normal file
|
@ -0,0 +1,14 @@
|
|||
uart_screen u0 (
|
||||
.clk_clk (<connected-to-clk_clk>), // clk.clk
|
||||
.reset_reset_n (<connected-to-reset_reset_n>), // reset.reset_n
|
||||
.rs232_0_from_uart_ready (<connected-to-rs232_0_from_uart_ready>), // rs232_0_avalon_data_receive_source.ready
|
||||
.rs232_0_from_uart_data (<connected-to-rs232_0_from_uart_data>), // .data
|
||||
.rs232_0_from_uart_error (<connected-to-rs232_0_from_uart_error>), // .error
|
||||
.rs232_0_from_uart_valid (<connected-to-rs232_0_from_uart_valid>), // .valid
|
||||
.rs232_0_to_uart_data (<connected-to-rs232_0_to_uart_data>), // rs232_0_avalon_data_transmit_sink.data
|
||||
.rs232_0_to_uart_error (<connected-to-rs232_0_to_uart_error>), // .error
|
||||
.rs232_0_to_uart_valid (<connected-to-rs232_0_to_uart_valid>), // .valid
|
||||
.rs232_0_to_uart_ready (<connected-to-rs232_0_to_uart_ready>), // .ready
|
||||
.rs232_0_UART_RXD (<connected-to-rs232_0_UART_RXD>), // rs232_0_external_interface.RXD
|
||||
.rs232_0_UART_TXD (<connected-to-rs232_0_UART_TXD>) // .TXD
|
||||
);
|
111
Quartus/Design/uart_screen.qsys
Normal file
111
Quartus/Design/uart_screen.qsys
Normal file
|
@ -0,0 +1,111 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<system name="$${FILENAME}">
|
||||
<component
|
||||
name="$${FILENAME}"
|
||||
displayName="$${FILENAME}"
|
||||
version="1.0"
|
||||
description=""
|
||||
tags="INTERNAL_COMPONENT=true"
|
||||
categories="" />
|
||||
<parameter name="bonusData"><![CDATA[bonusData
|
||||
{
|
||||
element clk_0
|
||||
{
|
||||
datum _sortIndex
|
||||
{
|
||||
value = "1";
|
||||
type = "int";
|
||||
}
|
||||
}
|
||||
element rs232_0
|
||||
{
|
||||
datum _sortIndex
|
||||
{
|
||||
value = "0";
|
||||
type = "int";
|
||||
}
|
||||
}
|
||||
}
|
||||
]]></parameter>
|
||||
<parameter name="clockCrossingAdapter" value="HANDSHAKE" />
|
||||
<parameter name="device" value="EP4CE6E22C8" />
|
||||
<parameter name="deviceFamily" value="Cyclone IV E" />
|
||||
<parameter name="deviceSpeedGrade" value="8" />
|
||||
<parameter name="fabricMode" value="QSYS" />
|
||||
<parameter name="generateLegacySim" value="false" />
|
||||
<parameter name="generationId" value="0" />
|
||||
<parameter name="globalResetBus" value="false" />
|
||||
<parameter name="hdlLanguage" value="VERILOG" />
|
||||
<parameter name="hideFromIPCatalog" value="true" />
|
||||
<parameter name="lockedInterfaceDefinition" value="" />
|
||||
<parameter name="maxAdditionalLatency" value="1" />
|
||||
<parameter name="projectName" value="" />
|
||||
<parameter name="sopcBorderPoints" value="false" />
|
||||
<parameter name="systemHash" value="0" />
|
||||
<parameter name="testBenchDutName" value="" />
|
||||
<parameter name="timeStamp" value="0" />
|
||||
<parameter name="useTestBenchNamingPattern" value="false" />
|
||||
<instanceScript></instanceScript>
|
||||
<interface name="avalon_rs232_slave" internal="rs232_0.avalon_rs232_slave" />
|
||||
<interface name="clk" internal="clk_0.clk_in" type="clock" dir="end" />
|
||||
<interface name="interrupt" internal="rs232_0.interrupt" />
|
||||
<interface name="reset" internal="clk_0.clk_in_reset" type="reset" dir="end" />
|
||||
<interface
|
||||
name="rs232_0_avalon_data_receive_source"
|
||||
internal="rs232_0.avalon_data_receive_source"
|
||||
type="avalon_streaming"
|
||||
dir="start">
|
||||
<port name="rs232_0_from_uart_ready" internal="from_uart_ready" />
|
||||
<port name="rs232_0_from_uart_data" internal="from_uart_data" />
|
||||
<port name="rs232_0_from_uart_error" internal="from_uart_error" />
|
||||
<port name="rs232_0_from_uart_valid" internal="from_uart_valid" />
|
||||
</interface>
|
||||
<interface
|
||||
name="rs232_0_avalon_data_transmit_sink"
|
||||
internal="rs232_0.avalon_data_transmit_sink"
|
||||
type="avalon_streaming"
|
||||
dir="end">
|
||||
<port name="rs232_0_to_uart_data" internal="to_uart_data" />
|
||||
<port name="rs232_0_to_uart_error" internal="to_uart_error" />
|
||||
<port name="rs232_0_to_uart_valid" internal="to_uart_valid" />
|
||||
<port name="rs232_0_to_uart_ready" internal="to_uart_ready" />
|
||||
</interface>
|
||||
<interface
|
||||
name="rs232_0_external_interface"
|
||||
internal="rs232_0.external_interface"
|
||||
type="conduit"
|
||||
dir="end">
|
||||
<port name="rs232_0_UART_RXD" internal="UART_RXD" />
|
||||
<port name="rs232_0_UART_TXD" internal="UART_TXD" />
|
||||
</interface>
|
||||
<module name="clk_0" kind="clock_source" version="21.1" enabled="1">
|
||||
<parameter name="clockFrequency" value="50000000" />
|
||||
<parameter name="clockFrequencyKnown" value="true" />
|
||||
<parameter name="inputClockFrequency" value="0" />
|
||||
<parameter name="resetSynchronousEdges" value="NONE" />
|
||||
</module>
|
||||
<module
|
||||
name="rs232_0"
|
||||
kind="altera_up_avalon_rs232"
|
||||
version="17.1"
|
||||
enabled="1"
|
||||
autoexport="1">
|
||||
<parameter name="AUTO_CLK_CLOCK_RATE" value="50000000" />
|
||||
<parameter name="AUTO_DEVICE_FAMILY" value="Cyclone IV E" />
|
||||
<parameter name="avalon_bus_type" value="Streaming" />
|
||||
<parameter name="baud" value="115200" />
|
||||
<parameter name="data_bits" value="8" />
|
||||
<parameter name="parity" value="None" />
|
||||
<parameter name="stop_bits" value="1" />
|
||||
</module>
|
||||
<connection kind="clock" version="21.1" start="clk_0.clk" end="rs232_0.clk" />
|
||||
<connection
|
||||
kind="reset"
|
||||
version="21.1"
|
||||
start="clk_0.clk_reset"
|
||||
end="rs232_0.reset" />
|
||||
<interconnectRequirement for="$system" name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
|
||||
<interconnectRequirement for="$system" name="qsys_mm.enableEccProtection" value="FALSE" />
|
||||
<interconnectRequirement for="$system" name="qsys_mm.insertDefaultSlave" value="FALSE" />
|
||||
<interconnectRequirement for="$system" name="qsys_mm.maxAdditionalLatency" value="1" />
|
||||
</system>
|
1103
Quartus/Design/uart_screen.sopcinfo
Normal file
1103
Quartus/Design/uart_screen.sopcinfo
Normal file
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,30 @@
|
|||
# (C) 2001-2021 Intel Corporation. All rights reserved.
|
||||
# Your use of Intel Corporation's design tools, logic functions and other
|
||||
# software and tools, and its AMPP partner logic functions, and any output
|
||||
# files from any of the foregoing (including device programming or simulation
|
||||
# files), and any associated documentation or information are expressly subject
|
||||
# to the terms and conditions of the Intel Program License Subscription
|
||||
# Agreement, Intel FPGA IP License Agreement, or other applicable
|
||||
# license agreement, including, without limitation, that your use is for the
|
||||
# sole purpose of programming logic devices manufactured by Intel and sold by
|
||||
# Intel or its authorized distributors. Please refer to the applicable
|
||||
# agreement for further details.
|
||||
|
||||
|
||||
# +---------------------------------------------------
|
||||
# | Cut the async clear paths
|
||||
# +---------------------------------------------------
|
||||
set aclr_counter 0
|
||||
set clrn_counter 0
|
||||
set aclr_collection [get_pins -compatibility_mode -nocase -nowarn *|alt_rst_sync_uq1|altera_reset_synchronizer_int_chain*|aclr]
|
||||
set clrn_collection [get_pins -compatibility_mode -nocase -nowarn *|alt_rst_sync_uq1|altera_reset_synchronizer_int_chain*|clrn]
|
||||
set aclr_counter [get_collection_size $aclr_collection]
|
||||
set clrn_counter [get_collection_size $clrn_collection]
|
||||
|
||||
if {$aclr_counter > 0} {
|
||||
set_false_path -to [get_pins -compatibility_mode -nocase *|alt_rst_sync_uq1|altera_reset_synchronizer_int_chain*|aclr]
|
||||
}
|
||||
|
||||
if {$clrn_counter > 0} {
|
||||
set_false_path -to [get_pins -compatibility_mode -nocase *|alt_rst_sync_uq1|altera_reset_synchronizer_int_chain*|clrn]
|
||||
}
|
|
@ -0,0 +1,319 @@
|
|||
// (C) 2001-2021 Intel Corporation. All rights reserved.
|
||||
// Your use of Intel Corporation's design tools, logic functions and other
|
||||
// software and tools, and its AMPP partner logic functions, and any output
|
||||
// files from any of the foregoing (including device programming or simulation
|
||||
// files), and any associated documentation or information are expressly subject
|
||||
// to the terms and conditions of the Intel Program License Subscription
|
||||
// Agreement, Intel FPGA IP License Agreement, or other applicable
|
||||
// license agreement, including, without limitation, that your use is for the
|
||||
// sole purpose of programming logic devices manufactured by Intel and sold by
|
||||
// Intel or its authorized distributors. Please refer to the applicable
|
||||
// agreement for further details.
|
||||
|
||||
|
||||
// (C) 2001-2013 Altera Corporation. All rights reserved.
|
||||
// Your use of Altera Corporation's design tools, logic functions and other
|
||||
// software and tools, and its AMPP partner logic functions, and any output
|
||||
// files any of the foregoing (including device programming or simulation
|
||||
// files), and any associated documentation or information are expressly subject
|
||||
// to the terms and conditions of the Altera Program License Subscription
|
||||
// Agreement, Altera MegaCore Function License Agreement, or other applicable
|
||||
// license agreement, including, without limitation, that your use is for the
|
||||
// sole purpose of programming logic devices manufactured by Altera and sold by
|
||||
// Altera or its authorized distributors. Please refer to the applicable
|
||||
// agreement for further details.
|
||||
|
||||
|
||||
// $Id: //acds/rel/21.1std/ip/merlin/altera_reset_controller/altera_reset_controller.v#1 $
|
||||
// $Revision: #1 $
|
||||
// $Date: 2020/06/22 $
|
||||
// $Author: psgswbuild $
|
||||
|
||||
// --------------------------------------
|
||||
// Reset controller
|
||||
//
|
||||
// Combines all the input resets and synchronizes
|
||||
// the result to the clk.
|
||||
// ACDS13.1 - Added reset request as part of reset sequencing
|
||||
// --------------------------------------
|
||||
|
||||
`timescale 1 ns / 1 ns
|
||||
|
||||
module altera_reset_controller
|
||||
#(
|
||||
parameter NUM_RESET_INPUTS = 6,
|
||||
parameter USE_RESET_REQUEST_IN0 = 0,
|
||||
parameter USE_RESET_REQUEST_IN1 = 0,
|
||||
parameter USE_RESET_REQUEST_IN2 = 0,
|
||||
parameter USE_RESET_REQUEST_IN3 = 0,
|
||||
parameter USE_RESET_REQUEST_IN4 = 0,
|
||||
parameter USE_RESET_REQUEST_IN5 = 0,
|
||||
parameter USE_RESET_REQUEST_IN6 = 0,
|
||||
parameter USE_RESET_REQUEST_IN7 = 0,
|
||||
parameter USE_RESET_REQUEST_IN8 = 0,
|
||||
parameter USE_RESET_REQUEST_IN9 = 0,
|
||||
parameter USE_RESET_REQUEST_IN10 = 0,
|
||||
parameter USE_RESET_REQUEST_IN11 = 0,
|
||||
parameter USE_RESET_REQUEST_IN12 = 0,
|
||||
parameter USE_RESET_REQUEST_IN13 = 0,
|
||||
parameter USE_RESET_REQUEST_IN14 = 0,
|
||||
parameter USE_RESET_REQUEST_IN15 = 0,
|
||||
parameter OUTPUT_RESET_SYNC_EDGES = "deassert",
|
||||
parameter SYNC_DEPTH = 2,
|
||||
parameter RESET_REQUEST_PRESENT = 0,
|
||||
parameter RESET_REQ_WAIT_TIME = 3,
|
||||
parameter MIN_RST_ASSERTION_TIME = 11,
|
||||
parameter RESET_REQ_EARLY_DSRT_TIME = 4,
|
||||
parameter ADAPT_RESET_REQUEST = 0
|
||||
)
|
||||
(
|
||||
// --------------------------------------
|
||||
// We support up to 16 reset inputs, for now
|
||||
// --------------------------------------
|
||||
input reset_in0,
|
||||
input reset_in1,
|
||||
input reset_in2,
|
||||
input reset_in3,
|
||||
input reset_in4,
|
||||
input reset_in5,
|
||||
input reset_in6,
|
||||
input reset_in7,
|
||||
input reset_in8,
|
||||
input reset_in9,
|
||||
input reset_in10,
|
||||
input reset_in11,
|
||||
input reset_in12,
|
||||
input reset_in13,
|
||||
input reset_in14,
|
||||
input reset_in15,
|
||||
input reset_req_in0,
|
||||
input reset_req_in1,
|
||||
input reset_req_in2,
|
||||
input reset_req_in3,
|
||||
input reset_req_in4,
|
||||
input reset_req_in5,
|
||||
input reset_req_in6,
|
||||
input reset_req_in7,
|
||||
input reset_req_in8,
|
||||
input reset_req_in9,
|
||||
input reset_req_in10,
|
||||
input reset_req_in11,
|
||||
input reset_req_in12,
|
||||
input reset_req_in13,
|
||||
input reset_req_in14,
|
||||
input reset_req_in15,
|
||||
|
||||
|
||||
input clk,
|
||||
output reg reset_out,
|
||||
output reg reset_req
|
||||
);
|
||||
|
||||
// Always use async reset synchronizer if reset_req is used
|
||||
localparam ASYNC_RESET = (OUTPUT_RESET_SYNC_EDGES == "deassert");
|
||||
|
||||
// --------------------------------------
|
||||
// Local parameter to control the reset_req and reset_out timing when RESET_REQUEST_PRESENT==1
|
||||
// --------------------------------------
|
||||
localparam MIN_METASTABLE = 3;
|
||||
localparam RSTREQ_ASRT_SYNC_TAP = MIN_METASTABLE + RESET_REQ_WAIT_TIME;
|
||||
|
||||
localparam LARGER = RESET_REQ_WAIT_TIME > RESET_REQ_EARLY_DSRT_TIME ? RESET_REQ_WAIT_TIME : RESET_REQ_EARLY_DSRT_TIME;
|
||||
|
||||
localparam ASSERTION_CHAIN_LENGTH = (MIN_METASTABLE > LARGER) ?
|
||||
MIN_RST_ASSERTION_TIME + 1 :
|
||||
(
|
||||
(MIN_RST_ASSERTION_TIME > LARGER)?
|
||||
MIN_RST_ASSERTION_TIME + (LARGER - MIN_METASTABLE + 1) + 1 :
|
||||
MIN_RST_ASSERTION_TIME + RESET_REQ_EARLY_DSRT_TIME + RESET_REQ_WAIT_TIME - MIN_METASTABLE + 2
|
||||
);
|
||||
|
||||
localparam RESET_REQ_DRST_TAP = RESET_REQ_EARLY_DSRT_TIME + 1;
|
||||
// --------------------------------------
|
||||
|
||||
wire merged_reset;
|
||||
wire merged_reset_req_in;
|
||||
wire reset_out_pre;
|
||||
wire reset_req_pre;
|
||||
|
||||
// Registers and Interconnect
|
||||
(*preserve*) reg [RSTREQ_ASRT_SYNC_TAP: 0] altera_reset_synchronizer_int_chain;
|
||||
reg [ASSERTION_CHAIN_LENGTH-1: 0] r_sync_rst_chain;
|
||||
reg r_sync_rst;
|
||||
reg r_early_rst;
|
||||
|
||||
// --------------------------------------
|
||||
// "Or" all the input resets together
|
||||
// --------------------------------------
|
||||
assign merged_reset = (
|
||||
reset_in0 |
|
||||
reset_in1 |
|
||||
reset_in2 |
|
||||
reset_in3 |
|
||||
reset_in4 |
|
||||
reset_in5 |
|
||||
reset_in6 |
|
||||
reset_in7 |
|
||||
reset_in8 |
|
||||
reset_in9 |
|
||||
reset_in10 |
|
||||
reset_in11 |
|
||||
reset_in12 |
|
||||
reset_in13 |
|
||||
reset_in14 |
|
||||
reset_in15
|
||||
);
|
||||
|
||||
assign merged_reset_req_in = (
|
||||
( (USE_RESET_REQUEST_IN0 == 1) ? reset_req_in0 : 1'b0) |
|
||||
( (USE_RESET_REQUEST_IN1 == 1) ? reset_req_in1 : 1'b0) |
|
||||
( (USE_RESET_REQUEST_IN2 == 1) ? reset_req_in2 : 1'b0) |
|
||||
( (USE_RESET_REQUEST_IN3 == 1) ? reset_req_in3 : 1'b0) |
|
||||
( (USE_RESET_REQUEST_IN4 == 1) ? reset_req_in4 : 1'b0) |
|
||||
( (USE_RESET_REQUEST_IN5 == 1) ? reset_req_in5 : 1'b0) |
|
||||
( (USE_RESET_REQUEST_IN6 == 1) ? reset_req_in6 : 1'b0) |
|
||||
( (USE_RESET_REQUEST_IN7 == 1) ? reset_req_in7 : 1'b0) |
|
||||
( (USE_RESET_REQUEST_IN8 == 1) ? reset_req_in8 : 1'b0) |
|
||||
( (USE_RESET_REQUEST_IN9 == 1) ? reset_req_in9 : 1'b0) |
|
||||
( (USE_RESET_REQUEST_IN10 == 1) ? reset_req_in10 : 1'b0) |
|
||||
( (USE_RESET_REQUEST_IN11 == 1) ? reset_req_in11 : 1'b0) |
|
||||
( (USE_RESET_REQUEST_IN12 == 1) ? reset_req_in12 : 1'b0) |
|
||||
( (USE_RESET_REQUEST_IN13 == 1) ? reset_req_in13 : 1'b0) |
|
||||
( (USE_RESET_REQUEST_IN14 == 1) ? reset_req_in14 : 1'b0) |
|
||||
( (USE_RESET_REQUEST_IN15 == 1) ? reset_req_in15 : 1'b0)
|
||||
);
|
||||
|
||||
|
||||
// --------------------------------------
|
||||
// And if required, synchronize it to the required clock domain,
|
||||
// with the correct synchronization type
|
||||
// --------------------------------------
|
||||
generate if (OUTPUT_RESET_SYNC_EDGES == "none" && (RESET_REQUEST_PRESENT==0)) begin
|
||||
|
||||
assign reset_out_pre = merged_reset;
|
||||
assign reset_req_pre = merged_reset_req_in;
|
||||
|
||||
end else begin
|
||||
|
||||
altera_reset_synchronizer
|
||||
#(
|
||||
.DEPTH (SYNC_DEPTH),
|
||||
.ASYNC_RESET(RESET_REQUEST_PRESENT? 1'b1 : ASYNC_RESET)
|
||||
)
|
||||
alt_rst_sync_uq1
|
||||
(
|
||||
.clk (clk),
|
||||
.reset_in (merged_reset),
|
||||
.reset_out (reset_out_pre)
|
||||
);
|
||||
|
||||
altera_reset_synchronizer
|
||||
#(
|
||||
.DEPTH (SYNC_DEPTH),
|
||||
.ASYNC_RESET(0)
|
||||
)
|
||||
alt_rst_req_sync_uq1
|
||||
(
|
||||
.clk (clk),
|
||||
.reset_in (merged_reset_req_in),
|
||||
.reset_out (reset_req_pre)
|
||||
);
|
||||
|
||||
end
|
||||
endgenerate
|
||||
|
||||
generate if ( ( (RESET_REQUEST_PRESENT == 0) && (ADAPT_RESET_REQUEST==0) )|
|
||||
( (ADAPT_RESET_REQUEST == 1) && (OUTPUT_RESET_SYNC_EDGES != "deassert") ) ) begin
|
||||
always @* begin
|
||||
reset_out = reset_out_pre;
|
||||
reset_req = reset_req_pre;
|
||||
end
|
||||
end else if ( (RESET_REQUEST_PRESENT == 0) && (ADAPT_RESET_REQUEST==1) ) begin
|
||||
|
||||
wire reset_out_pre2;
|
||||
|
||||
altera_reset_synchronizer
|
||||
#(
|
||||
.DEPTH (SYNC_DEPTH+1),
|
||||
.ASYNC_RESET(0)
|
||||
)
|
||||
alt_rst_sync_uq2
|
||||
(
|
||||
.clk (clk),
|
||||
.reset_in (reset_out_pre),
|
||||
.reset_out (reset_out_pre2)
|
||||
);
|
||||
|
||||
always @* begin
|
||||
reset_out = reset_out_pre2;
|
||||
reset_req = reset_req_pre;
|
||||
end
|
||||
|
||||
end
|
||||
else begin
|
||||
|
||||
// 3-FF Metastability Synchronizer
|
||||
initial
|
||||
begin
|
||||
altera_reset_synchronizer_int_chain <= {RSTREQ_ASRT_SYNC_TAP{1'b1}};
|
||||
end
|
||||
|
||||
always @(posedge clk)
|
||||
begin
|
||||
altera_reset_synchronizer_int_chain[RSTREQ_ASRT_SYNC_TAP:0] <=
|
||||
{altera_reset_synchronizer_int_chain[RSTREQ_ASRT_SYNC_TAP-1:0], reset_out_pre};
|
||||
end
|
||||
|
||||
// Synchronous reset pipe
|
||||
initial
|
||||
begin
|
||||
r_sync_rst_chain <= {ASSERTION_CHAIN_LENGTH{1'b1}};
|
||||
end
|
||||
|
||||
always @(posedge clk)
|
||||
begin
|
||||
if (altera_reset_synchronizer_int_chain[MIN_METASTABLE-1] == 1'b1)
|
||||
begin
|
||||
r_sync_rst_chain <= {ASSERTION_CHAIN_LENGTH{1'b1}};
|
||||
end
|
||||
else
|
||||
begin
|
||||
r_sync_rst_chain <= {1'b0, r_sync_rst_chain[ASSERTION_CHAIN_LENGTH-1:1]};
|
||||
end
|
||||
end
|
||||
|
||||
// Standard synchronous reset output. From 0-1, the transition lags the early output. For 1->0, the transition
|
||||
// matches the early input.
|
||||
|
||||
always @(posedge clk)
|
||||
begin
|
||||
case ({altera_reset_synchronizer_int_chain[RSTREQ_ASRT_SYNC_TAP], r_sync_rst_chain[1], r_sync_rst})
|
||||
3'b000: r_sync_rst <= 1'b0; // Not reset
|
||||
3'b001: r_sync_rst <= 1'b0;
|
||||
3'b010: r_sync_rst <= 1'b0;
|
||||
3'b011: r_sync_rst <= 1'b1;
|
||||
3'b100: r_sync_rst <= 1'b1;
|
||||
3'b101: r_sync_rst <= 1'b1;
|
||||
3'b110: r_sync_rst <= 1'b1;
|
||||
3'b111: r_sync_rst <= 1'b1; // In Reset
|
||||
default: r_sync_rst <= 1'b1;
|
||||
endcase
|
||||
|
||||
case ({r_sync_rst_chain[1], r_sync_rst_chain[RESET_REQ_DRST_TAP] | reset_req_pre})
|
||||
2'b00: r_early_rst <= 1'b0; // Not reset
|
||||
2'b01: r_early_rst <= 1'b1; // Coming out of reset
|
||||
2'b10: r_early_rst <= 1'b0; // Spurious reset - should not be possible via synchronous design.
|
||||
2'b11: r_early_rst <= 1'b1; // Held in reset
|
||||
default: r_early_rst <= 1'b1;
|
||||
endcase
|
||||
end
|
||||
|
||||
always @* begin
|
||||
reset_out = r_sync_rst;
|
||||
reset_req = r_early_rst;
|
||||
end
|
||||
|
||||
end
|
||||
endgenerate
|
||||
|
||||
endmodule
|
|
@ -0,0 +1,87 @@
|
|||
// (C) 2001-2021 Intel Corporation. All rights reserved.
|
||||
// Your use of Intel Corporation's design tools, logic functions and other
|
||||
// software and tools, and its AMPP partner logic functions, and any output
|
||||
// files from any of the foregoing (including device programming or simulation
|
||||
// files), and any associated documentation or information are expressly subject
|
||||
// to the terms and conditions of the Intel Program License Subscription
|
||||
// Agreement, Intel FPGA IP License Agreement, or other applicable
|
||||
// license agreement, including, without limitation, that your use is for the
|
||||
// sole purpose of programming logic devices manufactured by Intel and sold by
|
||||
// Intel or its authorized distributors. Please refer to the applicable
|
||||
// agreement for further details.
|
||||
|
||||
|
||||
// $Id: //acds/rel/21.1std/ip/merlin/altera_reset_controller/altera_reset_synchronizer.v#1 $
|
||||
// $Revision: #1 $
|
||||
// $Date: 2020/06/22 $
|
||||
// $Author: psgswbuild $
|
||||
|
||||
// -----------------------------------------------
|
||||
// Reset Synchronizer
|
||||
// -----------------------------------------------
|
||||
`timescale 1 ns / 1 ns
|
||||
|
||||
module altera_reset_synchronizer
|
||||
#(
|
||||
parameter ASYNC_RESET = 1,
|
||||
parameter DEPTH = 2
|
||||
)
|
||||
(
|
||||
input reset_in /* synthesis ALTERA_ATTRIBUTE = "SUPPRESS_DA_RULE_INTERNAL=R101" */,
|
||||
|
||||
input clk,
|
||||
output reset_out
|
||||
);
|
||||
|
||||
// -----------------------------------------------
|
||||
// Synchronizer register chain. We cannot reuse the
|
||||
// standard synchronizer in this implementation
|
||||
// because our timing constraints are different.
|
||||
//
|
||||
// Instead of cutting the timing path to the d-input
|
||||
// on the first flop we need to cut the aclr input.
|
||||
//
|
||||
// We omit the "preserve" attribute on the final
|
||||
// output register, so that the synthesis tool can
|
||||
// duplicate it where needed.
|
||||
// -----------------------------------------------
|
||||
(*preserve*) reg [DEPTH-1:0] altera_reset_synchronizer_int_chain;
|
||||
reg altera_reset_synchronizer_int_chain_out;
|
||||
|
||||
generate if (ASYNC_RESET) begin
|
||||
|
||||
// -----------------------------------------------
|
||||
// Assert asynchronously, deassert synchronously.
|
||||
// -----------------------------------------------
|
||||
always @(posedge clk or posedge reset_in) begin
|
||||
if (reset_in) begin
|
||||
altera_reset_synchronizer_int_chain <= {DEPTH{1'b1}};
|
||||
altera_reset_synchronizer_int_chain_out <= 1'b1;
|
||||
end
|
||||
else begin
|
||||
altera_reset_synchronizer_int_chain[DEPTH-2:0] <= altera_reset_synchronizer_int_chain[DEPTH-1:1];
|
||||
altera_reset_synchronizer_int_chain[DEPTH-1] <= 0;
|
||||
altera_reset_synchronizer_int_chain_out <= altera_reset_synchronizer_int_chain[0];
|
||||
end
|
||||
end
|
||||
|
||||
assign reset_out = altera_reset_synchronizer_int_chain_out;
|
||||
|
||||
end else begin
|
||||
|
||||
// -----------------------------------------------
|
||||
// Assert synchronously, deassert synchronously.
|
||||
// -----------------------------------------------
|
||||
always @(posedge clk) begin
|
||||
altera_reset_synchronizer_int_chain[DEPTH-2:0] <= altera_reset_synchronizer_int_chain[DEPTH-1:1];
|
||||
altera_reset_synchronizer_int_chain[DEPTH-1] <= reset_in;
|
||||
altera_reset_synchronizer_int_chain_out <= altera_reset_synchronizer_int_chain[0];
|
||||
end
|
||||
|
||||
assign reset_out = altera_reset_synchronizer_int_chain_out;
|
||||
|
||||
end
|
||||
endgenerate
|
||||
|
||||
endmodule
|
||||
|
|
@ -0,0 +1,161 @@
|
|||
// (C) 2001-2021 Intel Corporation. All rights reserved.
|
||||
// Your use of Intel Corporation's design tools, logic functions and other
|
||||
// software and tools, and its AMPP partner logic functions, and any output
|
||||
// files from any of the foregoing (including device programming or simulation
|
||||
// files), and any associated documentation or information are expressly subject
|
||||
// to the terms and conditions of the Intel Program License Subscription
|
||||
// Agreement, Intel FPGA IP License Agreement, or other applicable
|
||||
// license agreement, including, without limitation, that your use is for the
|
||||
// sole purpose of programming logic devices manufactured by Intel and sold by
|
||||
// Intel or its authorized distributors. Please refer to the applicable
|
||||
// agreement for further details.
|
||||
|
||||
|
||||
// THIS FILE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THIS FILE OR THE USE OR OTHER DEALINGS
|
||||
// IN THIS FILE.
|
||||
|
||||
/******************************************************************************
|
||||
* *
|
||||
* This module reads and writes data to the RS232 connectpr on Altera's *
|
||||
* DE1 and DE2 Development and Education Boards. *
|
||||
* *
|
||||
******************************************************************************/
|
||||
|
||||
module altera_up_rs232_counters (
|
||||
// Inputs
|
||||
clk,
|
||||
reset,
|
||||
|
||||
reset_counters,
|
||||
|
||||
// Bidirectionals
|
||||
|
||||
// Outputs
|
||||
baud_clock_rising_edge,
|
||||
baud_clock_falling_edge,
|
||||
all_bits_transmitted
|
||||
);
|
||||
|
||||
/*****************************************************************************
|
||||
* Parameter Declarations *
|
||||
*****************************************************************************/
|
||||
|
||||
parameter CW = 9; // BAUD COUNTER WIDTH
|
||||
parameter BAUD_TICK_COUNT = 433;
|
||||
parameter HALF_BAUD_TICK_COUNT = 216;
|
||||
|
||||
parameter TDW = 11; // TOTAL DATA WIDTH
|
||||
|
||||
/*****************************************************************************
|
||||
* Port Declarations *
|
||||
*****************************************************************************/
|
||||
// Inputs
|
||||
input clk;
|
||||
input reset;
|
||||
|
||||
input reset_counters;
|
||||
|
||||
// Bidirectionals
|
||||
|
||||
// Outputs
|
||||
output reg baud_clock_rising_edge;
|
||||
output reg baud_clock_falling_edge;
|
||||
output reg all_bits_transmitted;
|
||||
|
||||
/*****************************************************************************
|
||||
* Constant Declarations *
|
||||
*****************************************************************************/
|
||||
|
||||
/*****************************************************************************
|
||||
* Internal Wires and Registers Declarations *
|
||||
*****************************************************************************/
|
||||
|
||||
// Internal Wires
|
||||
|
||||
// Internal Registers
|
||||
reg [(CW-1):0] baud_counter;
|
||||
reg [ 3: 0] bit_counter;
|
||||
|
||||
// State Machine Registers
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* Finite State Machine(s) *
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* Sequential Logic *
|
||||
*****************************************************************************/
|
||||
|
||||
always @(posedge clk)
|
||||
begin
|
||||
if (reset)
|
||||
baud_counter <= {CW{1'b0}};
|
||||
else if (reset_counters)
|
||||
baud_counter <= {CW{1'b0}};
|
||||
else if (baud_counter == BAUD_TICK_COUNT)
|
||||
baud_counter <= {CW{1'b0}};
|
||||
else
|
||||
baud_counter <= baud_counter + 1;
|
||||
end
|
||||
|
||||
always @(posedge clk)
|
||||
begin
|
||||
if (reset)
|
||||
baud_clock_rising_edge <= 1'b0;
|
||||
else if (baud_counter == BAUD_TICK_COUNT)
|
||||
baud_clock_rising_edge <= 1'b1;
|
||||
else
|
||||
baud_clock_rising_edge <= 1'b0;
|
||||
end
|
||||
|
||||
always @(posedge clk)
|
||||
begin
|
||||
if (reset)
|
||||
baud_clock_falling_edge <= 1'b0;
|
||||
else if (baud_counter == HALF_BAUD_TICK_COUNT)
|
||||
baud_clock_falling_edge <= 1'b1;
|
||||
else
|
||||
baud_clock_falling_edge <= 1'b0;
|
||||
end
|
||||
|
||||
always @(posedge clk)
|
||||
begin
|
||||
if (reset)
|
||||
bit_counter <= 4'h0;
|
||||
else if (reset_counters)
|
||||
bit_counter <= 4'h0;
|
||||
else if (bit_counter == TDW)
|
||||
bit_counter <= 4'h0;
|
||||
else if (baud_counter == BAUD_TICK_COUNT)
|
||||
bit_counter <= bit_counter + 4'h1;
|
||||
end
|
||||
|
||||
always @(posedge clk)
|
||||
begin
|
||||
if (reset)
|
||||
all_bits_transmitted <= 1'b0;
|
||||
else if (bit_counter == TDW)
|
||||
all_bits_transmitted <= 1'b1;
|
||||
else
|
||||
all_bits_transmitted <= 1'b0;
|
||||
end
|
||||
|
||||
/*****************************************************************************
|
||||
* Combinational Logic *
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* Internal Modules *
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
endmodule
|
||||
|
|
@ -0,0 +1,194 @@
|
|||
// (C) 2001-2021 Intel Corporation. All rights reserved.
|
||||
// Your use of Intel Corporation's design tools, logic functions and other
|
||||
// software and tools, and its AMPP partner logic functions, and any output
|
||||
// files from any of the foregoing (including device programming or simulation
|
||||
// files), and any associated documentation or information are expressly subject
|
||||
// to the terms and conditions of the Intel Program License Subscription
|
||||
// Agreement, Intel FPGA IP License Agreement, or other applicable
|
||||
// license agreement, including, without limitation, that your use is for the
|
||||
// sole purpose of programming logic devices manufactured by Intel and sold by
|
||||
// Intel or its authorized distributors. Please refer to the applicable
|
||||
// agreement for further details.
|
||||
|
||||
|
||||
// THIS FILE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THIS FILE OR THE USE OR OTHER DEALINGS
|
||||
// IN THIS FILE.
|
||||
|
||||
/******************************************************************************
|
||||
* *
|
||||
* This module reads data to the RS232 UART Port. *
|
||||
* *
|
||||
******************************************************************************/
|
||||
|
||||
module altera_up_rs232_in_deserializer (
|
||||
// Inputs
|
||||
clk,
|
||||
reset,
|
||||
|
||||
serial_data_in,
|
||||
|
||||
receive_data_en,
|
||||
|
||||
// Bidirectionals
|
||||
|
||||
// Outputs
|
||||
fifo_read_available,
|
||||
|
||||
received_data_valid,
|
||||
received_data
|
||||
);
|
||||
|
||||
/*****************************************************************************
|
||||
* Parameter Declarations *
|
||||
*****************************************************************************/
|
||||
|
||||
parameter CW = 9; // Baud counter width
|
||||
parameter BAUD_TICK_COUNT = 433;
|
||||
parameter HALF_BAUD_TICK_COUNT = 216;
|
||||
|
||||
parameter TDW = 11; // Total data width
|
||||
parameter DW = 9; // Data width
|
||||
|
||||
/*****************************************************************************
|
||||
* Port Declarations *
|
||||
*****************************************************************************/
|
||||
// Inputs
|
||||
input clk;
|
||||
input reset;
|
||||
|
||||
input serial_data_in;
|
||||
|
||||
input receive_data_en;
|
||||
|
||||
// Bidirectionals
|
||||
|
||||
// Outputs
|
||||
output reg [ 7: 0] fifo_read_available;
|
||||
|
||||
output received_data_valid;
|
||||
output [DW: 0] received_data;
|
||||
|
||||
/*****************************************************************************
|
||||
* Constant Declarations *
|
||||
*****************************************************************************/
|
||||
|
||||
/*****************************************************************************
|
||||
* Internal Wires and Registers Declarations *
|
||||
*****************************************************************************/
|
||||
|
||||
// Internal Wires
|
||||
wire shift_data_reg_en;
|
||||
wire all_bits_received;
|
||||
|
||||
wire fifo_is_empty;
|
||||
wire fifo_is_full;
|
||||
wire [ 6: 0] fifo_used;
|
||||
|
||||
// Internal Registers
|
||||
reg receiving_data;
|
||||
|
||||
reg [(TDW-1):0] data_in_shift_reg;
|
||||
|
||||
// State Machine Registers
|
||||
|
||||
/*****************************************************************************
|
||||
* Finite State Machine(s) *
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* Sequential Logic *
|
||||
*****************************************************************************/
|
||||
|
||||
always @(posedge clk)
|
||||
begin
|
||||
if (reset)
|
||||
fifo_read_available <= 8'h00;
|
||||
else
|
||||
fifo_read_available <= {fifo_is_full, fifo_used};
|
||||
end
|
||||
|
||||
always @(posedge clk)
|
||||
begin
|
||||
if (reset)
|
||||
receiving_data <= 1'b0;
|
||||
else if (all_bits_received)
|
||||
receiving_data <= 1'b0;
|
||||
else if (serial_data_in == 1'b0)
|
||||
receiving_data <= 1'b1;
|
||||
end
|
||||
|
||||
always @(posedge clk)
|
||||
begin
|
||||
if (reset)
|
||||
data_in_shift_reg <= {TDW{1'b0}};
|
||||
else if (shift_data_reg_en)
|
||||
data_in_shift_reg <=
|
||||
{serial_data_in, data_in_shift_reg[(TDW - 1):1]};
|
||||
end
|
||||
|
||||
/*****************************************************************************
|
||||
* Combinational Logic *
|
||||
*****************************************************************************/
|
||||
|
||||
// Output assignments
|
||||
assign received_data_valid = ~fifo_is_empty;
|
||||
|
||||
// Input assignments
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* Internal Modules *
|
||||
*****************************************************************************/
|
||||
|
||||
altera_up_rs232_counters RS232_In_Counters (
|
||||
// Inputs
|
||||
.clk (clk),
|
||||
.reset (reset),
|
||||
|
||||
.reset_counters (~receiving_data),
|
||||
|
||||
// Bidirectionals
|
||||
|
||||
// Outputs
|
||||
.baud_clock_rising_edge (),
|
||||
.baud_clock_falling_edge (shift_data_reg_en),
|
||||
.all_bits_transmitted (all_bits_received)
|
||||
);
|
||||
defparam
|
||||
RS232_In_Counters.CW = CW,
|
||||
RS232_In_Counters.BAUD_TICK_COUNT = BAUD_TICK_COUNT,
|
||||
RS232_In_Counters.HALF_BAUD_TICK_COUNT = HALF_BAUD_TICK_COUNT,
|
||||
RS232_In_Counters.TDW = TDW;
|
||||
|
||||
altera_up_sync_fifo RS232_In_FIFO (
|
||||
// Inputs
|
||||
.clk (clk),
|
||||
.reset (reset),
|
||||
|
||||
.write_en (all_bits_received & ~fifo_is_full),
|
||||
.write_data (data_in_shift_reg[(DW + 1):1]),
|
||||
|
||||
.read_en (receive_data_en & ~fifo_is_empty),
|
||||
|
||||
// Bidirectionals
|
||||
|
||||
// Outputs
|
||||
.fifo_is_empty (fifo_is_empty),
|
||||
.fifo_is_full (fifo_is_full),
|
||||
.words_used (fifo_used),
|
||||
|
||||
.read_data (received_data)
|
||||
);
|
||||
defparam
|
||||
RS232_In_FIFO.DW = DW,
|
||||
RS232_In_FIFO.DATA_DEPTH = 128,
|
||||
RS232_In_FIFO.AW = 6;
|
||||
|
||||
endmodule
|
||||
|
|
@ -0,0 +1,202 @@
|
|||
// (C) 2001-2021 Intel Corporation. All rights reserved.
|
||||
// Your use of Intel Corporation's design tools, logic functions and other
|
||||
// software and tools, and its AMPP partner logic functions, and any output
|
||||
// files from any of the foregoing (including device programming or simulation
|
||||
// files), and any associated documentation or information are expressly subject
|
||||
// to the terms and conditions of the Intel Program License Subscription
|
||||
// Agreement, Intel FPGA IP License Agreement, or other applicable
|
||||
// license agreement, including, without limitation, that your use is for the
|
||||
// sole purpose of programming logic devices manufactured by Intel and sold by
|
||||
// Intel or its authorized distributors. Please refer to the applicable
|
||||
// agreement for further details.
|
||||
|
||||
|
||||
// THIS FILE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THIS FILE OR THE USE OR OTHER DEALINGS
|
||||
// IN THIS FILE.
|
||||
|
||||
/******************************************************************************
|
||||
* *
|
||||
* This module writes data to the RS232 UART Port. *
|
||||
* *
|
||||
******************************************************************************/
|
||||
|
||||
module altera_up_rs232_out_serializer (
|
||||
// Inputs
|
||||
clk,
|
||||
reset,
|
||||
|
||||
transmit_data,
|
||||
transmit_data_en,
|
||||
|
||||
// Bidirectionals
|
||||
|
||||
// Outputs
|
||||
fifo_write_space,
|
||||
|
||||
serial_data_out
|
||||
);
|
||||
|
||||
/*****************************************************************************
|
||||
* Parameter Declarations *
|
||||
*****************************************************************************/
|
||||
|
||||
parameter CW = 9; // Baud counter width
|
||||
parameter BAUD_TICK_COUNT = 433;
|
||||
parameter HALF_BAUD_TICK_COUNT = 216;
|
||||
|
||||
parameter TDW = 11; // Total data width
|
||||
parameter DW = 9; // Data width
|
||||
|
||||
/*****************************************************************************
|
||||
* Port Declarations *
|
||||
*****************************************************************************/
|
||||
// Inputs
|
||||
input clk;
|
||||
input reset;
|
||||
|
||||
input [DW: 0] transmit_data;
|
||||
input transmit_data_en;
|
||||
|
||||
// Bidirectionals
|
||||
|
||||
// Outputs
|
||||
output reg [ 7: 0] fifo_write_space;
|
||||
|
||||
output reg serial_data_out;
|
||||
|
||||
/*****************************************************************************
|
||||
* Constant Declarations *
|
||||
*****************************************************************************/
|
||||
|
||||
/*****************************************************************************
|
||||
* Internal Wires and Registers Declarations *
|
||||
*****************************************************************************/
|
||||
|
||||
// Internal Wires
|
||||
wire shift_data_reg_en;
|
||||
wire all_bits_transmitted;
|
||||
|
||||
wire read_fifo_en;
|
||||
|
||||
wire fifo_is_empty;
|
||||
wire fifo_is_full;
|
||||
wire [ 6: 0] fifo_used;
|
||||
|
||||
wire [DW: 0] data_from_fifo;
|
||||
|
||||
// Internal Registers
|
||||
reg transmitting_data;
|
||||
|
||||
reg [DW+1:0] data_out_shift_reg;
|
||||
|
||||
// State Machine Registers
|
||||
|
||||
/*****************************************************************************
|
||||
* Finite State Machine(s) *
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* Sequential Logic *
|
||||
*****************************************************************************/
|
||||
|
||||
always @(posedge clk)
|
||||
begin
|
||||
if (reset)
|
||||
fifo_write_space <= 8'h00;
|
||||
else
|
||||
fifo_write_space <= 8'h80 - {fifo_is_full, fifo_used};
|
||||
end
|
||||
|
||||
|
||||
always @(posedge clk)
|
||||
begin
|
||||
if (reset)
|
||||
serial_data_out <= 1'b1;
|
||||
else
|
||||
serial_data_out <= data_out_shift_reg[0];
|
||||
end
|
||||
|
||||
always @(posedge clk)
|
||||
begin
|
||||
if (reset)
|
||||
transmitting_data <= 1'b0;
|
||||
else if (all_bits_transmitted)
|
||||
transmitting_data <= 1'b0;
|
||||
else if (fifo_is_empty == 1'b0)
|
||||
transmitting_data <= 1'b1;
|
||||
end
|
||||
|
||||
always @(posedge clk)
|
||||
begin
|
||||
if (reset)
|
||||
data_out_shift_reg <= {(DW + 2){1'b1}};
|
||||
else if (read_fifo_en)
|
||||
data_out_shift_reg <= {data_from_fifo, 1'b0};
|
||||
else if (shift_data_reg_en)
|
||||
data_out_shift_reg <=
|
||||
{1'b1, data_out_shift_reg[DW+1:1]};
|
||||
end
|
||||
|
||||
/*****************************************************************************
|
||||
* Combinational Logic *
|
||||
*****************************************************************************/
|
||||
|
||||
assign read_fifo_en =
|
||||
~transmitting_data & ~fifo_is_empty & ~all_bits_transmitted;
|
||||
|
||||
/*****************************************************************************
|
||||
* Internal Modules *
|
||||
*****************************************************************************/
|
||||
|
||||
altera_up_rs232_counters RS232_Out_Counters (
|
||||
// Inputs
|
||||
.clk (clk),
|
||||
.reset (reset),
|
||||
|
||||
.reset_counters (~transmitting_data),
|
||||
|
||||
// Bidirectionals
|
||||
|
||||
// Outputs
|
||||
.baud_clock_rising_edge (shift_data_reg_en),
|
||||
.baud_clock_falling_edge (),
|
||||
.all_bits_transmitted (all_bits_transmitted)
|
||||
);
|
||||
defparam
|
||||
RS232_Out_Counters.CW = CW,
|
||||
RS232_Out_Counters.BAUD_TICK_COUNT = BAUD_TICK_COUNT,
|
||||
RS232_Out_Counters.HALF_BAUD_TICK_COUNT = HALF_BAUD_TICK_COUNT,
|
||||
RS232_Out_Counters.TDW = TDW;
|
||||
|
||||
altera_up_sync_fifo RS232_Out_FIFO (
|
||||
// Inputs
|
||||
.clk (clk),
|
||||
.reset (reset),
|
||||
|
||||
.write_en (transmit_data_en & ~fifo_is_full),
|
||||
.write_data (transmit_data),
|
||||
|
||||
.read_en (read_fifo_en),
|
||||
|
||||
// Bidirectionals
|
||||
|
||||
// Outputs
|
||||
.fifo_is_empty (fifo_is_empty),
|
||||
.fifo_is_full (fifo_is_full),
|
||||
.words_used (fifo_used),
|
||||
|
||||
.read_data (data_from_fifo)
|
||||
);
|
||||
defparam
|
||||
RS232_Out_FIFO.DW = DW,
|
||||
RS232_Out_FIFO.DATA_DEPTH = 128,
|
||||
RS232_Out_FIFO.AW = 6;
|
||||
|
||||
endmodule
|
||||
|
|
@ -0,0 +1,152 @@
|
|||
// (C) 2001-2021 Intel Corporation. All rights reserved.
|
||||
// Your use of Intel Corporation's design tools, logic functions and other
|
||||
// software and tools, and its AMPP partner logic functions, and any output
|
||||
// files from any of the foregoing (including device programming or simulation
|
||||
// files), and any associated documentation or information are expressly subject
|
||||
// to the terms and conditions of the Intel Program License Subscription
|
||||
// Agreement, Intel FPGA IP License Agreement, or other applicable
|
||||
// license agreement, including, without limitation, that your use is for the
|
||||
// sole purpose of programming logic devices manufactured by Intel and sold by
|
||||
// Intel or its authorized distributors. Please refer to the applicable
|
||||
// agreement for further details.
|
||||
|
||||
|
||||
// THIS FILE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THIS FILE OR THE USE OR OTHER DEALINGS
|
||||
// IN THIS FILE.
|
||||
|
||||
/******************************************************************************
|
||||
* *
|
||||
* This module is a FIFO with same clock for both reads and writes. *
|
||||
* *
|
||||
******************************************************************************/
|
||||
|
||||
module altera_up_sync_fifo (
|
||||
// Inputs
|
||||
clk,
|
||||
reset,
|
||||
|
||||
write_en,
|
||||
write_data,
|
||||
|
||||
read_en,
|
||||
|
||||
// Bidirectionals
|
||||
|
||||
// Outputs
|
||||
fifo_is_empty,
|
||||
fifo_is_full,
|
||||
words_used,
|
||||
|
||||
read_data
|
||||
);
|
||||
|
||||
/*****************************************************************************
|
||||
* Parameter Declarations *
|
||||
*****************************************************************************/
|
||||
|
||||
parameter DW = 31; // Data width
|
||||
parameter DATA_DEPTH = 128;
|
||||
parameter AW = 6; // Address width
|
||||
|
||||
/*****************************************************************************
|
||||
* Port Declarations *
|
||||
*****************************************************************************/
|
||||
|
||||
// Inputs
|
||||
input clk;
|
||||
input reset;
|
||||
|
||||
input write_en;
|
||||
input [DW: 0] write_data;
|
||||
|
||||
input read_en;
|
||||
|
||||
// Bidirectionals
|
||||
|
||||
// Outputs
|
||||
output fifo_is_empty;
|
||||
output fifo_is_full;
|
||||
output [AW: 0] words_used;
|
||||
|
||||
output [DW: 0] read_data;
|
||||
|
||||
/*****************************************************************************
|
||||
* Constant Declarations *
|
||||
*****************************************************************************/
|
||||
|
||||
/*****************************************************************************
|
||||
* Internal Wires and Registers Declarations *
|
||||
*****************************************************************************/
|
||||
|
||||
// Internal Wires
|
||||
|
||||
// Internal Registers
|
||||
|
||||
// State Machine Registers
|
||||
|
||||
/*****************************************************************************
|
||||
* Finite State Machine(s) *
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* Sequential Logic *
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* Combinational Logic *
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* Internal Modules *
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
scfifo Sync_FIFO (
|
||||
// Inputs
|
||||
.clock (clk),
|
||||
.sclr (reset),
|
||||
|
||||
.data (write_data),
|
||||
.wrreq (write_en),
|
||||
|
||||
.rdreq (read_en),
|
||||
|
||||
// Bidirectionals
|
||||
|
||||
// Outputs
|
||||
.empty (fifo_is_empty),
|
||||
.full (fifo_is_full),
|
||||
.usedw (words_used),
|
||||
|
||||
.q (read_data)
|
||||
|
||||
// Unused
|
||||
// synopsys translate_off
|
||||
,
|
||||
.aclr (),
|
||||
.almost_empty (),
|
||||
.almost_full ()
|
||||
// synopsys translate_on
|
||||
);
|
||||
defparam
|
||||
Sync_FIFO.add_ram_output_register = "OFF",
|
||||
Sync_FIFO.intended_device_family = "Cyclone II",
|
||||
Sync_FIFO.lpm_numwords = DATA_DEPTH,
|
||||
Sync_FIFO.lpm_showahead = "ON",
|
||||
Sync_FIFO.lpm_type = "scfifo",
|
||||
Sync_FIFO.lpm_width = DW + 1,
|
||||
Sync_FIFO.lpm_widthu = AW + 1,
|
||||
Sync_FIFO.overflow_checking = "OFF",
|
||||
Sync_FIFO.underflow_checking = "OFF",
|
||||
Sync_FIFO.use_eab = "ON";
|
||||
|
||||
endmodule
|
||||
|
|
@ -0,0 +1,187 @@
|
|||
// (C) 2001-2021 Intel Corporation. All rights reserved.
|
||||
// Your use of Intel Corporation's design tools, logic functions and other
|
||||
// software and tools, and its AMPP partner logic functions, and any output
|
||||
// files from any of the foregoing (including device programming or simulation
|
||||
// files), and any associated documentation or information are expressly subject
|
||||
// to the terms and conditions of the Intel Program License Subscription
|
||||
// Agreement, Intel FPGA IP License Agreement, or other applicable
|
||||
// license agreement, including, without limitation, that your use is for the
|
||||
// sole purpose of programming logic devices manufactured by Intel and sold by
|
||||
// Intel or its authorized distributors. Please refer to the applicable
|
||||
// agreement for further details.
|
||||
|
||||
|
||||
// THIS FILE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THIS FILE OR THE USE OR OTHER DEALINGS
|
||||
// IN THIS FILE.
|
||||
|
||||
/******************************************************************************
|
||||
* *
|
||||
* This module reads and writes data to the RS232 connector on Altera's *
|
||||
* DE-series Development and Education Boards. *
|
||||
* *
|
||||
******************************************************************************/
|
||||
|
||||
module uart_screen_rs232_0 (
|
||||
// Inputs
|
||||
clk,
|
||||
reset,
|
||||
|
||||
from_uart_ready,
|
||||
|
||||
to_uart_data,
|
||||
to_uart_error,
|
||||
to_uart_valid,
|
||||
|
||||
UART_RXD,
|
||||
|
||||
// Bidirectionals
|
||||
|
||||
// Outputs
|
||||
from_uart_data,
|
||||
from_uart_error,
|
||||
from_uart_valid,
|
||||
|
||||
to_uart_ready,
|
||||
|
||||
UART_TXD
|
||||
);
|
||||
|
||||
/*****************************************************************************
|
||||
* Parameter Declarations *
|
||||
*****************************************************************************/
|
||||
|
||||
parameter CW = 9; // Baud counter width
|
||||
parameter BAUD_TICK_COUNT = 434;
|
||||
parameter HALF_BAUD_TICK_COUNT = 217;
|
||||
|
||||
parameter TDW = 10; // Total data width
|
||||
parameter DW = 8; // Data width
|
||||
parameter ODD_PARITY = 1'b0;
|
||||
|
||||
/*****************************************************************************
|
||||
* Port Declarations *
|
||||
*****************************************************************************/
|
||||
// Inputs
|
||||
input clk;
|
||||
input reset;
|
||||
|
||||
input from_uart_ready;
|
||||
|
||||
input [(DW-1):0] to_uart_data;
|
||||
input to_uart_error;
|
||||
input to_uart_valid;
|
||||
|
||||
input UART_RXD;
|
||||
|
||||
// Bidirectionals
|
||||
|
||||
// Outputs
|
||||
output [(DW-1):0] from_uart_data;
|
||||
output from_uart_error;
|
||||
output from_uart_valid;
|
||||
|
||||
output to_uart_ready;
|
||||
|
||||
output UART_TXD;
|
||||
|
||||
/*****************************************************************************
|
||||
* Constant Declarations *
|
||||
*****************************************************************************/
|
||||
|
||||
/*****************************************************************************
|
||||
* Internal Wires and Registers Declarations *
|
||||
*****************************************************************************/
|
||||
|
||||
// Internal Wires
|
||||
wire [(DW-1):0] read_data;
|
||||
|
||||
wire write_data_parity;
|
||||
wire [ 7: 0] write_space;
|
||||
|
||||
// Internal Registers
|
||||
|
||||
// State Machine Registers
|
||||
|
||||
/*****************************************************************************
|
||||
* Finite State Machine(s) *
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* Sequential Logic *
|
||||
*****************************************************************************/
|
||||
|
||||
// Output Registers
|
||||
|
||||
// Internal Registers
|
||||
|
||||
/*****************************************************************************
|
||||
* Combinational Logic *
|
||||
*****************************************************************************/
|
||||
|
||||
// Output Assignments
|
||||
assign from_uart_data = read_data;
|
||||
assign from_uart_error = 1'b0;
|
||||
|
||||
assign to_uart_ready = (|(write_space));
|
||||
|
||||
// Internal Assignments
|
||||
assign write_data_parity = (^(to_uart_data)) ^ ODD_PARITY;
|
||||
|
||||
/*****************************************************************************
|
||||
* Internal Modules *
|
||||
*****************************************************************************/
|
||||
|
||||
altera_up_rs232_in_deserializer RS232_In_Deserializer (
|
||||
// Inputs
|
||||
.clk (clk),
|
||||
.reset (reset),
|
||||
|
||||
.serial_data_in (UART_RXD),
|
||||
|
||||
.receive_data_en (from_uart_ready),
|
||||
|
||||
// Bidirectionals
|
||||
|
||||
// Outputs
|
||||
.fifo_read_available (),
|
||||
|
||||
.received_data_valid (from_uart_valid),
|
||||
.received_data (read_data)
|
||||
);
|
||||
defparam
|
||||
RS232_In_Deserializer.CW = CW,
|
||||
RS232_In_Deserializer.BAUD_TICK_COUNT = BAUD_TICK_COUNT,
|
||||
RS232_In_Deserializer.HALF_BAUD_TICK_COUNT = HALF_BAUD_TICK_COUNT,
|
||||
RS232_In_Deserializer.TDW = TDW,
|
||||
RS232_In_Deserializer.DW = (DW - 1);
|
||||
|
||||
altera_up_rs232_out_serializer RS232_Out_Serializer (
|
||||
// Inputs
|
||||
.clk (clk),
|
||||
.reset (reset),
|
||||
|
||||
.transmit_data (to_uart_data),
|
||||
.transmit_data_en (to_uart_valid & to_uart_ready),
|
||||
|
||||
// Bidirectionals
|
||||
|
||||
// Outputs
|
||||
.fifo_write_space (write_space),
|
||||
|
||||
.serial_data_out (UART_TXD)
|
||||
);
|
||||
defparam
|
||||
RS232_Out_Serializer.CW = CW,
|
||||
RS232_Out_Serializer.BAUD_TICK_COUNT = BAUD_TICK_COUNT,
|
||||
RS232_Out_Serializer.HALF_BAUD_TICK_COUNT = HALF_BAUD_TICK_COUNT,
|
||||
RS232_Out_Serializer.TDW = TDW,
|
||||
RS232_Out_Serializer.DW = (DW - 1);
|
||||
|
||||
endmodule
|
||||
|
1614
Quartus/Design/uart_screen/synthesis/uart_screen.debuginfo
Normal file
1614
Quartus/Design/uart_screen/synthesis/uart_screen.debuginfo
Normal file
File diff suppressed because it is too large
Load diff
84
Quartus/Design/uart_screen/synthesis/uart_screen.qip
Normal file
84
Quartus/Design/uart_screen/synthesis/uart_screen.qip
Normal file
|
@ -0,0 +1,84 @@
|
|||
set_global_assignment -entity "uart_screen" -library "uart_screen" -name IP_TOOL_NAME "Qsys"
|
||||
set_global_assignment -entity "uart_screen" -library "uart_screen" -name IP_TOOL_VERSION "21.1"
|
||||
set_global_assignment -entity "uart_screen" -library "uart_screen" -name IP_TOOL_ENV "Qsys"
|
||||
set_global_assignment -library "uart_screen" -name SOPCINFO_FILE [file join $::quartus(qip_path) "../../uart_screen.sopcinfo"]
|
||||
set_global_assignment -entity "uart_screen" -library "uart_screen" -name SLD_INFO "QSYS_NAME uart_screen HAS_SOPCINFO 1 GENERATION_ID 1653392990"
|
||||
set_global_assignment -library "uart_screen" -name MISC_FILE [file join $::quartus(qip_path) "../uart_screen.cmp"]
|
||||
set_global_assignment -library "uart_screen" -name SLD_FILE [file join $::quartus(qip_path) "uart_screen.debuginfo"]
|
||||
set_global_assignment -entity "uart_screen" -library "uart_screen" -name IP_TARGETED_DEVICE_FAMILY "Cyclone IV E"
|
||||
set_global_assignment -entity "uart_screen" -library "uart_screen" -name IP_GENERATED_DEVICE_FAMILY "{Cyclone IV E}"
|
||||
set_global_assignment -entity "uart_screen" -library "uart_screen" -name IP_QSYS_MODE "SYSTEM"
|
||||
set_global_assignment -name SYNTHESIS_ONLY_QIP ON
|
||||
set_global_assignment -library "uart_screen" -name MISC_FILE [file join $::quartus(qip_path) "../../uart_screen.qsys"]
|
||||
set_global_assignment -entity "uart_screen" -library "uart_screen" -name IP_COMPONENT_NAME "dWFydF9zY3JlZW4="
|
||||
set_global_assignment -entity "uart_screen" -library "uart_screen" -name IP_COMPONENT_DISPLAY_NAME "dWFydF9zY3JlZW4="
|
||||
set_global_assignment -entity "uart_screen" -library "uart_screen" -name IP_COMPONENT_REPORT_HIERARCHY "On"
|
||||
set_global_assignment -entity "uart_screen" -library "uart_screen" -name IP_COMPONENT_INTERNAL "Off"
|
||||
set_global_assignment -entity "uart_screen" -library "uart_screen" -name IP_COMPONENT_VERSION "MS4w"
|
||||
set_global_assignment -entity "uart_screen" -library "uart_screen" -name IP_COMPONENT_PARAMETER "QVVUT19HRU5FUkFUSU9OX0lE::MTY1MzM5Mjk5MA==::QXV0byBHRU5FUkFUSU9OX0lE"
|
||||
set_global_assignment -entity "uart_screen" -library "uart_screen" -name IP_COMPONENT_PARAMETER "QVVUT19ERVZJQ0VfRkFNSUxZ::Q3ljbG9uZSBJViBF::QXV0byBERVZJQ0VfRkFNSUxZ"
|
||||
set_global_assignment -entity "uart_screen" -library "uart_screen" -name IP_COMPONENT_PARAMETER "QVVUT19ERVZJQ0U=::RVA0Q0U2RTIyQzg=::QXV0byBERVZJQ0U="
|
||||
set_global_assignment -entity "uart_screen" -library "uart_screen" -name IP_COMPONENT_PARAMETER "QVVUT19ERVZJQ0VfU1BFRURHUkFERQ==::OA==::QXV0byBERVZJQ0VfU1BFRURHUkFERQ=="
|
||||
set_global_assignment -entity "uart_screen" -library "uart_screen" -name IP_COMPONENT_PARAMETER "QVVUT19DTEtfQ0xPQ0tfUkFURQ==::LTE=::QXV0byBDTE9DS19SQVRF"
|
||||
set_global_assignment -entity "uart_screen" -library "uart_screen" -name IP_COMPONENT_PARAMETER "QVVUT19DTEtfQ0xPQ0tfRE9NQUlO::LTE=::QXV0byBDTE9DS19ET01BSU4="
|
||||
set_global_assignment -entity "uart_screen" -library "uart_screen" -name IP_COMPONENT_PARAMETER "QVVUT19DTEtfUkVTRVRfRE9NQUlO::LTE=::QXV0byBSRVNFVF9ET01BSU4="
|
||||
set_global_assignment -entity "altera_reset_controller" -library "uart_screen" -name IP_COMPONENT_NAME "YWx0ZXJhX3Jlc2V0X2NvbnRyb2xsZXI="
|
||||
set_global_assignment -entity "altera_reset_controller" -library "uart_screen" -name IP_COMPONENT_DISPLAY_NAME "TWVybGluIFJlc2V0IENvbnRyb2xsZXI="
|
||||
set_global_assignment -entity "altera_reset_controller" -library "uart_screen" -name IP_COMPONENT_REPORT_HIERARCHY "Off"
|
||||
set_global_assignment -entity "altera_reset_controller" -library "uart_screen" -name IP_COMPONENT_INTERNAL "Off"
|
||||
set_global_assignment -entity "altera_reset_controller" -library "uart_screen" -name IP_COMPONENT_AUTHOR "QWx0ZXJhIENvcnBvcmF0aW9u"
|
||||
set_global_assignment -entity "altera_reset_controller" -library "uart_screen" -name IP_COMPONENT_VERSION "MjEuMQ=="
|
||||
set_global_assignment -entity "altera_reset_controller" -library "uart_screen" -name IP_COMPONENT_DESCRIPTION "Rm9yIHN5c3RlbXMgd2l0aCBtdWx0aXBsZSByZXNldCBpbnB1dHMsIHRoZSBNZXJsaW4gUmVzZXQgQ29udHJvbGxlciBPUnMgYWxsIHJlc2V0IGlucHV0cyBhbmQgZ2VuZXJhdGVzIGEgc2luZ2xlIHJlc2V0IG91dHB1dC4="
|
||||
set_global_assignment -entity "altera_reset_controller" -library "uart_screen" -name IP_COMPONENT_PARAMETER "TlVNX1JFU0VUX0lOUFVUUw==::MQ==::TnVtYmVyIG9mIGlucHV0cw=="
|
||||
set_global_assignment -entity "altera_reset_controller" -library "uart_screen" -name IP_COMPONENT_PARAMETER "T1VUUFVUX1JFU0VUX1NZTkNfRURHRVM=::ZGVhc3NlcnQ=::T3V0cHV0IFJlc2V0IFN5bmNocm9ub3VzIEVkZ2Vz"
|
||||
set_global_assignment -entity "altera_reset_controller" -library "uart_screen" -name IP_COMPONENT_PARAMETER "U1lOQ19ERVBUSA==::Mg==::U3luY2hyb25pemVyIGRlcHRo"
|
||||
set_global_assignment -entity "altera_reset_controller" -library "uart_screen" -name IP_COMPONENT_PARAMETER "UkVTRVRfUkVRVUVTVF9QUkVTRU5U::MA==::UmVzZXQgcmVxdWVzdCBsb2dpYyBlbmFibGU="
|
||||
set_global_assignment -entity "altera_reset_controller" -library "uart_screen" -name IP_COMPONENT_PARAMETER "UkVTRVRfUkVRX1dBSVRfVElNRQ==::MQ==::UmVzZXQgcmVxdWVzdCB3YWl0IHRpbWU="
|
||||
set_global_assignment -entity "altera_reset_controller" -library "uart_screen" -name IP_COMPONENT_PARAMETER "TUlOX1JTVF9BU1NFUlRJT05fVElNRQ==::Mw==::TWluaW11bSByZXNldCBhc3NlcnRpb24gdGltZQ=="
|
||||
set_global_assignment -entity "altera_reset_controller" -library "uart_screen" -name IP_COMPONENT_PARAMETER "UkVTRVRfUkVRX0VBUkxZX0RTUlRfVElNRQ==::MQ==::UmVzZXQgcmVxdWVzdCBkZWFzc2VydCB0aW1pbmc="
|
||||
set_global_assignment -entity "altera_reset_controller" -library "uart_screen" -name IP_COMPONENT_PARAMETER "VVNFX1JFU0VUX1JFUVVFU1RfSU4w::MA==::RW5hYmxlIHJlc2V0X3JlcSBmb3IgcG9ydCByZXNldF9pbjA="
|
||||
set_global_assignment -entity "altera_reset_controller" -library "uart_screen" -name IP_COMPONENT_PARAMETER "VVNFX1JFU0VUX1JFUVVFU1RfSU4x::MA==::RW5hYmxlIHJlc2V0X3JlcSBmb3IgcG9ydCByZXNldF9pbjE="
|
||||
set_global_assignment -entity "altera_reset_controller" -library "uart_screen" -name IP_COMPONENT_PARAMETER "VVNFX1JFU0VUX1JFUVVFU1RfSU4y::MA==::RW5hYmxlIHJlc2V0X3JlcSBmb3IgcG9ydCByZXNldF9pbjI="
|
||||
set_global_assignment -entity "altera_reset_controller" -library "uart_screen" -name IP_COMPONENT_PARAMETER "VVNFX1JFU0VUX1JFUVVFU1RfSU4z::MA==::RW5hYmxlIHJlc2V0X3JlcSBmb3IgcG9ydCByZXNldF9pbjM="
|
||||
set_global_assignment -entity "altera_reset_controller" -library "uart_screen" -name IP_COMPONENT_PARAMETER "VVNFX1JFU0VUX1JFUVVFU1RfSU40::MA==::RW5hYmxlIHJlc2V0X3JlcSBmb3IgcG9ydCByZXNldF9pbjQ="
|
||||
set_global_assignment -entity "altera_reset_controller" -library "uart_screen" -name IP_COMPONENT_PARAMETER "VVNFX1JFU0VUX1JFUVVFU1RfSU41::MA==::RW5hYmxlIHJlc2V0X3JlcSBmb3IgcG9ydCByZXNldF9pbjU="
|
||||
set_global_assignment -entity "altera_reset_controller" -library "uart_screen" -name IP_COMPONENT_PARAMETER "VVNFX1JFU0VUX1JFUVVFU1RfSU42::MA==::RW5hYmxlIHJlc2V0X3JlcSBmb3IgcG9ydCByZXNldF9pbjY="
|
||||
set_global_assignment -entity "altera_reset_controller" -library "uart_screen" -name IP_COMPONENT_PARAMETER "VVNFX1JFU0VUX1JFUVVFU1RfSU43::MA==::RW5hYmxlIHJlc2V0X3JlcSBmb3IgcG9ydCByZXNldF9pbjc="
|
||||
set_global_assignment -entity "altera_reset_controller" -library "uart_screen" -name IP_COMPONENT_PARAMETER "VVNFX1JFU0VUX1JFUVVFU1RfSU44::MA==::RW5hYmxlIHJlc2V0X3JlcSBmb3IgcG9ydCByZXNldF9pbjg="
|
||||
set_global_assignment -entity "altera_reset_controller" -library "uart_screen" -name IP_COMPONENT_PARAMETER "VVNFX1JFU0VUX1JFUVVFU1RfSU45::MA==::RW5hYmxlIHJlc2V0X3JlcSBmb3IgcG9ydCByZXNldF9pbjk="
|
||||
set_global_assignment -entity "altera_reset_controller" -library "uart_screen" -name IP_COMPONENT_PARAMETER "VVNFX1JFU0VUX1JFUVVFU1RfSU4xMA==::MA==::RW5hYmxlIHJlc2V0X3JlcSBmb3IgcG9ydCByZXNldF9pbjEw"
|
||||
set_global_assignment -entity "altera_reset_controller" -library "uart_screen" -name IP_COMPONENT_PARAMETER "VVNFX1JFU0VUX1JFUVVFU1RfSU4xMQ==::MA==::RW5hYmxlIHJlc2V0X3JlcSBmb3IgcG9ydCByZXNldF9pbjEx"
|
||||
set_global_assignment -entity "altera_reset_controller" -library "uart_screen" -name IP_COMPONENT_PARAMETER "VVNFX1JFU0VUX1JFUVVFU1RfSU4xMg==::MA==::RW5hYmxlIHJlc2V0X3JlcSBmb3IgcG9ydCByZXNldF9pbjEy"
|
||||
set_global_assignment -entity "altera_reset_controller" -library "uart_screen" -name IP_COMPONENT_PARAMETER "VVNFX1JFU0VUX1JFUVVFU1RfSU4xMw==::MA==::RW5hYmxlIHJlc2V0X3JlcSBmb3IgcG9ydCByZXNldF9pbjEz"
|
||||
set_global_assignment -entity "altera_reset_controller" -library "uart_screen" -name IP_COMPONENT_PARAMETER "VVNFX1JFU0VUX1JFUVVFU1RfSU4xNA==::MA==::RW5hYmxlIHJlc2V0X3JlcSBmb3IgcG9ydCByZXNldF9pbjE0"
|
||||
set_global_assignment -entity "altera_reset_controller" -library "uart_screen" -name IP_COMPONENT_PARAMETER "VVNFX1JFU0VUX1JFUVVFU1RfSU4xNQ==::MA==::RW5hYmxlIHJlc2V0X3JlcSBmb3IgcG9ydCByZXNldF9pbjE1"
|
||||
set_global_assignment -entity "altera_reset_controller" -library "uart_screen" -name IP_COMPONENT_PARAMETER "VVNFX1JFU0VUX1JFUVVFU1RfSU5QVVQ=::MA==::RW5hYmxlIHJlc2V0X3JlcSBmb3IgcmVzZXRfaW5wdXRz"
|
||||
set_global_assignment -entity "altera_reset_controller" -library "uart_screen" -name IP_COMPONENT_PARAMETER "QURBUFRfUkVTRVRfUkVRVUVTVA==::MA==::T25seSBhZGFwdCBvbmx5IHJlc2V0IHJlcXVlc3Q="
|
||||
set_global_assignment -entity "uart_screen_rs232_0" -library "uart_screen" -name IP_COMPONENT_NAME "dWFydF9zY3JlZW5fcnMyMzJfMA=="
|
||||
set_global_assignment -entity "uart_screen_rs232_0" -library "uart_screen" -name IP_COMPONENT_DISPLAY_NAME "UlMyMzIgVUFSVA=="
|
||||
set_global_assignment -entity "uart_screen_rs232_0" -library "uart_screen" -name IP_COMPONENT_REPORT_HIERARCHY "Off"
|
||||
set_global_assignment -entity "uart_screen_rs232_0" -library "uart_screen" -name IP_COMPONENT_INTERNAL "Off"
|
||||
set_global_assignment -entity "uart_screen_rs232_0" -library "uart_screen" -name IP_COMPONENT_AUTHOR "SW50ZWwgRlBHQSBVbml2ZXJzaXR5IFByb2dyYW0="
|
||||
set_global_assignment -entity "uart_screen_rs232_0" -library "uart_screen" -name IP_COMPONENT_VERSION "MTcuMQ=="
|
||||
set_global_assignment -entity "uart_screen_rs232_0" -library "uart_screen" -name IP_COMPONENT_DESCRIPTION "UlMyMzIgVUFSVCBDb250cm9sbGVy"
|
||||
set_global_assignment -entity "uart_screen_rs232_0" -library "uart_screen" -name IP_COMPONENT_PARAMETER "YXZhbG9uX2J1c190eXBl::U3RyZWFtaW5n::QXZhbG9uIFR5cGU="
|
||||
set_global_assignment -entity "uart_screen_rs232_0" -library "uart_screen" -name IP_COMPONENT_PARAMETER "YmF1ZA==::MTE1MjAw::QmF1ZCBSYXRlIChicHMp"
|
||||
set_global_assignment -entity "uart_screen_rs232_0" -library "uart_screen" -name IP_COMPONENT_PARAMETER "cGFyaXR5::Tm9uZQ==::UGFyaXR5"
|
||||
set_global_assignment -entity "uart_screen_rs232_0" -library "uart_screen" -name IP_COMPONENT_PARAMETER "ZGF0YV9iaXRz::OA==::RGF0YSBCaXRz"
|
||||
set_global_assignment -entity "uart_screen_rs232_0" -library "uart_screen" -name IP_COMPONENT_PARAMETER "c3RvcF9iaXRz::MQ==::U3RvcCBCaXRz"
|
||||
set_global_assignment -entity "uart_screen_rs232_0" -library "uart_screen" -name IP_COMPONENT_PARAMETER "QVVUT19ERVZJQ0VfRkFNSUxZ::Q3ljbG9uZSBJViBF::QXV0byBERVZJQ0VfRkFNSUxZ"
|
||||
set_global_assignment -entity "uart_screen_rs232_0" -library "uart_screen" -name IP_COMPONENT_PARAMETER "QVVUT19DTEtfQ0xPQ0tfUkFURQ==::NTAwMDAwMDA=::QXV0byBDTE9DS19SQVRF"
|
||||
|
||||
set_global_assignment -library "uart_screen" -name VERILOG_FILE [file join $::quartus(qip_path) "uart_screen.v"]
|
||||
set_global_assignment -library "uart_screen" -name VERILOG_FILE [file join $::quartus(qip_path) "submodules/altera_reset_controller.v"]
|
||||
set_global_assignment -library "uart_screen" -name VERILOG_FILE [file join $::quartus(qip_path) "submodules/altera_reset_synchronizer.v"]
|
||||
set_global_assignment -library "uart_screen" -name SDC_FILE [file join $::quartus(qip_path) "submodules/altera_reset_controller.sdc"]
|
||||
set_global_assignment -library "uart_screen" -name VERILOG_FILE [file join $::quartus(qip_path) "submodules/altera_up_rs232_counters.v"]
|
||||
set_global_assignment -library "uart_screen" -name VERILOG_FILE [file join $::quartus(qip_path) "submodules/altera_up_rs232_in_deserializer.v"]
|
||||
set_global_assignment -library "uart_screen" -name VERILOG_FILE [file join $::quartus(qip_path) "submodules/altera_up_rs232_out_serializer.v"]
|
||||
set_global_assignment -library "uart_screen" -name VERILOG_FILE [file join $::quartus(qip_path) "submodules/altera_up_sync_fifo.v"]
|
||||
set_global_assignment -library "uart_screen" -name VERILOG_FILE [file join $::quartus(qip_path) "submodules/uart_screen_rs232_0.v"]
|
||||
|
||||
set_global_assignment -entity "altera_reset_controller" -library "uart_screen" -name IP_TOOL_NAME "altera_reset_controller"
|
||||
set_global_assignment -entity "altera_reset_controller" -library "uart_screen" -name IP_TOOL_VERSION "21.1"
|
||||
set_global_assignment -entity "altera_reset_controller" -library "uart_screen" -name IP_TOOL_ENV "Qsys"
|
101
Quartus/Design/uart_screen/synthesis/uart_screen.v
Normal file
101
Quartus/Design/uart_screen/synthesis/uart_screen.v
Normal file
|
@ -0,0 +1,101 @@
|
|||
// uart_screen.v
|
||||
|
||||
// Generated using ACDS version 21.1 842
|
||||
|
||||
`timescale 1 ps / 1 ps
|
||||
module uart_screen (
|
||||
input wire clk_clk, // clk.clk
|
||||
input wire reset_reset_n, // reset.reset_n
|
||||
input wire rs232_0_from_uart_ready, // rs232_0_avalon_data_receive_source.ready
|
||||
output wire [7:0] rs232_0_from_uart_data, // .data
|
||||
output wire rs232_0_from_uart_error, // .error
|
||||
output wire rs232_0_from_uart_valid, // .valid
|
||||
input wire [7:0] rs232_0_to_uart_data, // rs232_0_avalon_data_transmit_sink.data
|
||||
input wire rs232_0_to_uart_error, // .error
|
||||
input wire rs232_0_to_uart_valid, // .valid
|
||||
output wire rs232_0_to_uart_ready, // .ready
|
||||
input wire rs232_0_UART_RXD, // rs232_0_external_interface.RXD
|
||||
output wire rs232_0_UART_TXD // .TXD
|
||||
);
|
||||
|
||||
wire rst_controller_reset_out_reset; // rst_controller:reset_out -> rs232_0:reset
|
||||
|
||||
uart_screen_rs232_0 rs232_0 (
|
||||
.clk (clk_clk), // clk.clk
|
||||
.reset (rst_controller_reset_out_reset), // reset.reset
|
||||
.from_uart_ready (rs232_0_from_uart_ready), // avalon_data_receive_source.ready
|
||||
.from_uart_data (rs232_0_from_uart_data), // .data
|
||||
.from_uart_error (rs232_0_from_uart_error), // .error
|
||||
.from_uart_valid (rs232_0_from_uart_valid), // .valid
|
||||
.to_uart_data (rs232_0_to_uart_data), // avalon_data_transmit_sink.data
|
||||
.to_uart_error (rs232_0_to_uart_error), // .error
|
||||
.to_uart_valid (rs232_0_to_uart_valid), // .valid
|
||||
.to_uart_ready (rs232_0_to_uart_ready), // .ready
|
||||
.UART_RXD (rs232_0_UART_RXD), // external_interface.export
|
||||
.UART_TXD (rs232_0_UART_TXD) // .export
|
||||
);
|
||||
|
||||
altera_reset_controller #(
|
||||
.NUM_RESET_INPUTS (1),
|
||||
.OUTPUT_RESET_SYNC_EDGES ("deassert"),
|
||||
.SYNC_DEPTH (2),
|
||||
.RESET_REQUEST_PRESENT (0),
|
||||
.RESET_REQ_WAIT_TIME (1),
|
||||
.MIN_RST_ASSERTION_TIME (3),
|
||||
.RESET_REQ_EARLY_DSRT_TIME (1),
|
||||
.USE_RESET_REQUEST_IN0 (0),
|
||||
.USE_RESET_REQUEST_IN1 (0),
|
||||
.USE_RESET_REQUEST_IN2 (0),
|
||||
.USE_RESET_REQUEST_IN3 (0),
|
||||
.USE_RESET_REQUEST_IN4 (0),
|
||||
.USE_RESET_REQUEST_IN5 (0),
|
||||
.USE_RESET_REQUEST_IN6 (0),
|
||||
.USE_RESET_REQUEST_IN7 (0),
|
||||
.USE_RESET_REQUEST_IN8 (0),
|
||||
.USE_RESET_REQUEST_IN9 (0),
|
||||
.USE_RESET_REQUEST_IN10 (0),
|
||||
.USE_RESET_REQUEST_IN11 (0),
|
||||
.USE_RESET_REQUEST_IN12 (0),
|
||||
.USE_RESET_REQUEST_IN13 (0),
|
||||
.USE_RESET_REQUEST_IN14 (0),
|
||||
.USE_RESET_REQUEST_IN15 (0),
|
||||
.ADAPT_RESET_REQUEST (0)
|
||||
) rst_controller (
|
||||
.reset_in0 (~reset_reset_n), // reset_in0.reset
|
||||
.clk (clk_clk), // clk.clk
|
||||
.reset_out (rst_controller_reset_out_reset), // reset_out.reset
|
||||
.reset_req (), // (terminated)
|
||||
.reset_req_in0 (1'b0), // (terminated)
|
||||
.reset_in1 (1'b0), // (terminated)
|
||||
.reset_req_in1 (1'b0), // (terminated)
|
||||
.reset_in2 (1'b0), // (terminated)
|
||||
.reset_req_in2 (1'b0), // (terminated)
|
||||
.reset_in3 (1'b0), // (terminated)
|
||||
.reset_req_in3 (1'b0), // (terminated)
|
||||
.reset_in4 (1'b0), // (terminated)
|
||||
.reset_req_in4 (1'b0), // (terminated)
|
||||
.reset_in5 (1'b0), // (terminated)
|
||||
.reset_req_in5 (1'b0), // (terminated)
|
||||
.reset_in6 (1'b0), // (terminated)
|
||||
.reset_req_in6 (1'b0), // (terminated)
|
||||
.reset_in7 (1'b0), // (terminated)
|
||||
.reset_req_in7 (1'b0), // (terminated)
|
||||
.reset_in8 (1'b0), // (terminated)
|
||||
.reset_req_in8 (1'b0), // (terminated)
|
||||
.reset_in9 (1'b0), // (terminated)
|
||||
.reset_req_in9 (1'b0), // (terminated)
|
||||
.reset_in10 (1'b0), // (terminated)
|
||||
.reset_req_in10 (1'b0), // (terminated)
|
||||
.reset_in11 (1'b0), // (terminated)
|
||||
.reset_req_in11 (1'b0), // (terminated)
|
||||
.reset_in12 (1'b0), // (terminated)
|
||||
.reset_req_in12 (1'b0), // (terminated)
|
||||
.reset_in13 (1'b0), // (terminated)
|
||||
.reset_req_in13 (1'b0), // (terminated)
|
||||
.reset_in14 (1'b0), // (terminated)
|
||||
.reset_req_in14 (1'b0), // (terminated)
|
||||
.reset_in15 (1'b0), // (terminated)
|
||||
.reset_req_in15 (1'b0) // (terminated)
|
||||
);
|
||||
|
||||
endmodule
|
149
Quartus/Design/uart_screen/uart_screen.bsf
Normal file
149
Quartus/Design/uart_screen/uart_screen.bsf
Normal file
|
@ -0,0 +1,149 @@
|
|||
/*
|
||||
WARNING: Do NOT edit the input and output ports in this file in a text
|
||||
editor if you plan to continue editing the block that represents it in
|
||||
the Block Editor! File corruption is VERY likely to occur.
|
||||
*/
|
||||
/*
|
||||
Copyright (C) 2021 Intel Corporation. All rights reserved.
|
||||
Your use of Intel Corporation's design tools, logic functions
|
||||
and other software and tools, and any partner logic
|
||||
functions, and any output files from any of the foregoing
|
||||
(including device programming or simulation files), and any
|
||||
associated documentation or information are expressly subject
|
||||
to the terms and conditions of the Intel Program License
|
||||
Subscription Agreement, the Intel Quartus Prime License Agreement,
|
||||
the Intel FPGA IP License Agreement, or other applicable license
|
||||
agreement, including, without limitation, that your use is for
|
||||
the sole purpose of programming logic devices manufactured by
|
||||
Intel and sold by Intel or its authorized distributors. Please
|
||||
refer to the applicable agreement for further details, at
|
||||
https://fpgasoftware.intel.com/eula.
|
||||
*/
|
||||
(header "symbol" (version "1.1"))
|
||||
(symbol
|
||||
(rect 0 0 544 288)
|
||||
(text "uart_screen" (rect 237 -1 285 11)(font "Arial" (font_size 10)))
|
||||
(text "inst" (rect 8 272 20 284)(font "Arial" ))
|
||||
(port
|
||||
(pt 0 72)
|
||||
(input)
|
||||
(text "clk_clk" (rect 0 0 27 12)(font "Arial" (font_size 8)))
|
||||
(text "clk_clk" (rect 4 61 46 72)(font "Arial" (font_size 8)))
|
||||
(line (pt 0 72)(pt 224 72)(line_width 1))
|
||||
)
|
||||
(port
|
||||
(pt 0 112)
|
||||
(input)
|
||||
(text "reset_reset_n" (rect 0 0 56 12)(font "Arial" (font_size 8)))
|
||||
(text "reset_reset_n" (rect 4 101 82 112)(font "Arial" (font_size 8)))
|
||||
(line (pt 0 112)(pt 224 112)(line_width 1))
|
||||
)
|
||||
(port
|
||||
(pt 544 72)
|
||||
(input)
|
||||
(text "rs232_0_from_uart_ready" (rect 0 0 109 12)(font "Arial" (font_size 8)))
|
||||
(text "rs232_0_from_uart_ready" (rect 410 61 548 72)(font "Arial" (font_size 8)))
|
||||
(line (pt 544 72)(pt 304 72)(line_width 1))
|
||||
)
|
||||
(port
|
||||
(pt 0 152)
|
||||
(input)
|
||||
(text "rs232_0_to_uart_data[7..0]" (rect 0 0 109 12)(font "Arial" (font_size 8)))
|
||||
(text "rs232_0_to_uart_data[7..0]" (rect 4 141 160 152)(font "Arial" (font_size 8)))
|
||||
(line (pt 0 152)(pt 224 152)(line_width 3))
|
||||
)
|
||||
(port
|
||||
(pt 0 168)
|
||||
(input)
|
||||
(text "rs232_0_to_uart_error" (rect 0 0 93 12)(font "Arial" (font_size 8)))
|
||||
(text "rs232_0_to_uart_error" (rect 4 157 130 168)(font "Arial" (font_size 8)))
|
||||
(line (pt 0 168)(pt 224 168)(line_width 1))
|
||||
)
|
||||
(port
|
||||
(pt 0 184)
|
||||
(input)
|
||||
(text "rs232_0_to_uart_valid" (rect 0 0 90 12)(font "Arial" (font_size 8)))
|
||||
(text "rs232_0_to_uart_valid" (rect 4 173 130 184)(font "Arial" (font_size 8)))
|
||||
(line (pt 0 184)(pt 224 184)(line_width 1))
|
||||
)
|
||||
(port
|
||||
(pt 0 240)
|
||||
(input)
|
||||
(text "rs232_0_UART_RXD" (rect 0 0 95 12)(font "Arial" (font_size 8)))
|
||||
(text "rs232_0_UART_RXD" (rect 4 229 100 240)(font "Arial" (font_size 8)))
|
||||
(line (pt 0 240)(pt 224 240)(line_width 1))
|
||||
)
|
||||
(port
|
||||
(pt 544 88)
|
||||
(output)
|
||||
(text "rs232_0_from_uart_data[7..0]" (rect 0 0 122 12)(font "Arial" (font_size 8)))
|
||||
(text "rs232_0_from_uart_data[7..0]" (rect 393 77 561 88)(font "Arial" (font_size 8)))
|
||||
(line (pt 544 88)(pt 304 88)(line_width 3))
|
||||
)
|
||||
(port
|
||||
(pt 544 104)
|
||||
(output)
|
||||
(text "rs232_0_from_uart_error" (rect 0 0 106 12)(font "Arial" (font_size 8)))
|
||||
(text "rs232_0_from_uart_error" (rect 414 93 552 104)(font "Arial" (font_size 8)))
|
||||
(line (pt 544 104)(pt 304 104)(line_width 1))
|
||||
)
|
||||
(port
|
||||
(pt 544 120)
|
||||
(output)
|
||||
(text "rs232_0_from_uart_valid" (rect 0 0 103 12)(font "Arial" (font_size 8)))
|
||||
(text "rs232_0_from_uart_valid" (rect 416 109 554 120)(font "Arial" (font_size 8)))
|
||||
(line (pt 544 120)(pt 304 120)(line_width 1))
|
||||
)
|
||||
(port
|
||||
(pt 0 200)
|
||||
(output)
|
||||
(text "rs232_0_to_uart_ready" (rect 0 0 96 12)(font "Arial" (font_size 8)))
|
||||
(text "rs232_0_to_uart_ready" (rect 4 189 130 200)(font "Arial" (font_size 8)))
|
||||
(line (pt 0 200)(pt 224 200)(line_width 1))
|
||||
)
|
||||
(port
|
||||
(pt 0 256)
|
||||
(output)
|
||||
(text "rs232_0_UART_TXD" (rect 0 0 93 12)(font "Arial" (font_size 8)))
|
||||
(text "rs232_0_UART_TXD" (rect 4 245 100 256)(font "Arial" (font_size 8)))
|
||||
(line (pt 0 256)(pt 224 256)(line_width 1))
|
||||
)
|
||||
(drawing
|
||||
(text "clk" (rect 209 43 436 99)(font "Arial" (color 128 0 0)(font_size 9)))
|
||||
(text "clk" (rect 229 67 476 144)(font "Arial" (color 0 0 0)))
|
||||
(text "reset" (rect 195 83 420 179)(font "Arial" (color 128 0 0)(font_size 9)))
|
||||
(text "reset_n" (rect 229 107 500 224)(font "Arial" (color 0 0 0)))
|
||||
(text "rs232_0_avalon_data_receive_source" (rect 305 43 814 99)(font "Arial" (color 128 0 0)(font_size 9)))
|
||||
(text "ready" (rect 276 67 582 144)(font "Arial" (color 0 0 0)))
|
||||
(text "data" (rect 283 83 590 176)(font "Arial" (color 0 0 0)))
|
||||
(text "error" (rect 279 99 588 208)(font "Arial" (color 0 0 0)))
|
||||
(text "valid" (rect 281 115 592 240)(font "Arial" (color 0 0 0)))
|
||||
(text "rs232_0_avalon_data_transmit_sink" (rect 11 123 220 259)(font "Arial" (color 128 0 0)(font_size 9)))
|
||||
(text "data" (rect 229 147 482 304)(font "Arial" (color 0 0 0)))
|
||||
(text "error" (rect 229 163 488 336)(font "Arial" (color 0 0 0)))
|
||||
(text "valid" (rect 229 179 488 368)(font "Arial" (color 0 0 0)))
|
||||
(text "ready" (rect 229 195 488 400)(font "Arial" (color 0 0 0)))
|
||||
(text "rs232_0_external_interface" (rect 64 211 284 435)(font "Arial" (color 128 0 0)(font_size 9)))
|
||||
(text "RXD" (rect 229 235 476 480)(font "Arial" (color 0 0 0)))
|
||||
(text "TXD" (rect 229 251 476 512)(font "Arial" (color 0 0 0)))
|
||||
(text " uart_screen " (rect 489 272 1056 554)(font "Arial" ))
|
||||
(line (pt 224 32)(pt 304 32)(line_width 1))
|
||||
(line (pt 304 32)(pt 304 272)(line_width 1))
|
||||
(line (pt 224 272)(pt 304 272)(line_width 1))
|
||||
(line (pt 224 32)(pt 224 272)(line_width 1))
|
||||
(line (pt 225 52)(pt 225 76)(line_width 1))
|
||||
(line (pt 226 52)(pt 226 76)(line_width 1))
|
||||
(line (pt 225 92)(pt 225 116)(line_width 1))
|
||||
(line (pt 226 92)(pt 226 116)(line_width 1))
|
||||
(line (pt 303 52)(pt 303 124)(line_width 1))
|
||||
(line (pt 302 52)(pt 302 124)(line_width 1))
|
||||
(line (pt 225 132)(pt 225 204)(line_width 1))
|
||||
(line (pt 226 132)(pt 226 204)(line_width 1))
|
||||
(line (pt 225 220)(pt 225 260)(line_width 1))
|
||||
(line (pt 226 220)(pt 226 260)(line_width 1))
|
||||
(line (pt 0 0)(pt 544 0)(line_width 1))
|
||||
(line (pt 544 0)(pt 544 288)(line_width 1))
|
||||
(line (pt 0 288)(pt 544 288)(line_width 1))
|
||||
(line (pt 0 0)(pt 0 288)(line_width 1))
|
||||
)
|
||||
)
|
17
Quartus/Design/uart_screen/uart_screen.cmp
Normal file
17
Quartus/Design/uart_screen/uart_screen.cmp
Normal file
|
@ -0,0 +1,17 @@
|
|||
component uart_screen is
|
||||
port (
|
||||
clk_clk : in std_logic := 'X'; -- clk
|
||||
reset_reset_n : in std_logic := 'X'; -- reset_n
|
||||
rs232_0_from_uart_ready : in std_logic := 'X'; -- ready
|
||||
rs232_0_from_uart_data : out std_logic_vector(7 downto 0); -- data
|
||||
rs232_0_from_uart_error : out std_logic; -- error
|
||||
rs232_0_from_uart_valid : out std_logic; -- valid
|
||||
rs232_0_to_uart_data : in std_logic_vector(7 downto 0) := (others => 'X'); -- data
|
||||
rs232_0_to_uart_error : in std_logic := 'X'; -- error
|
||||
rs232_0_to_uart_valid : in std_logic := 'X'; -- valid
|
||||
rs232_0_to_uart_ready : out std_logic; -- ready
|
||||
rs232_0_UART_RXD : in std_logic := 'X'; -- RXD
|
||||
rs232_0_UART_TXD : out std_logic -- TXD
|
||||
);
|
||||
end component uart_screen;
|
||||
|
236
Quartus/Design/uart_screen/uart_screen.html
Normal file
236
Quartus/Design/uart_screen/uart_screen.html
Normal file
|
@ -0,0 +1,236 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>datasheet for uart_screen</title>
|
||||
<style type="text/css">
|
||||
body { font-family:arial ;}
|
||||
a { text-decoration:underline ; color:#003000 ;}
|
||||
a:hover { text-decoration:underline ; color:0030f0 ;}
|
||||
td { padding : 5px ;}
|
||||
table.topTitle { width:100% ;}
|
||||
table.topTitle td.l { text-align:left ; font-weight: bold ; font-size:30px ;}
|
||||
table.topTitle td.r { text-align:right ; font-weight: bold ; font-size:16px ;}
|
||||
table.blueBar { width : 100% ; border-spacing : 0px ;}
|
||||
table.blueBar td { background:#0036ff ; font-size:12px ; color : white ; text-align : left ; font-weight : bold ;}
|
||||
table.blueBar td.l { text-align : left ;}
|
||||
table.blueBar td.r { text-align : right ;}
|
||||
table.items { width:100% ; border-collapse:collapse ;}
|
||||
table.items td.label { font-weight:bold ; font-size:16px ; vertical-align:top ;}
|
||||
table.items td.mono { font-family:courier ; font-size:12px ; white-space:pre ;}
|
||||
div.label { font-weight:bold ; font-size:16px ; vertical-align:top ; text-align:center ;}
|
||||
table.grid { border-collapse:collapse ;}
|
||||
table.grid td { border:1px solid #bbb ; font-size:12px ;}
|
||||
body { font-family:arial ;}
|
||||
table.x { font-family:courier ; border-collapse:collapse ; padding:2px ;}
|
||||
table.x td { border:1px solid #bbb ;}
|
||||
td.tableTitle { font-weight:bold ; text-align:center ;}
|
||||
table.grid { border-collapse:collapse ;}
|
||||
table.grid td { border:1px solid #bbb ;}
|
||||
table.grid td.tableTitle { font-weight:bold ; text-align:center ;}
|
||||
table.mmap { border-collapse:collapse ; text-size:11px ; border:1px solid #d8d8d8 ;}
|
||||
table.mmap td { border-color:#d8d8d8 ; border-width:1px ; border-style:solid ;}
|
||||
table.mmap td.empty { border-style:none ; background-color:#f0f0f0 ;}
|
||||
table.mmap td.slavemodule { text-align:left ; font-size:11px ; border-style:solid solid none solid ;}
|
||||
table.mmap td.slavem { text-align:right ; font-size:9px ; font-style:italic ; border-style:none solid none solid ;}
|
||||
table.mmap td.slaveb { text-align:right ; font-size:9px ; font-style:italic ; border-style:none solid solid solid ;}
|
||||
table.mmap td.mastermodule { text-align:center ; font-size:11px ; border-style:solid solid none solid ;}
|
||||
table.mmap td.masterlr { text-align:center ; font-size:9px ; font-style:italic ; border-style:none solid solid solid ;}
|
||||
table.mmap td.masterl { text-align:center ; font-size:9px ; font-style:italic ; border-style:none none solid solid ;}
|
||||
table.mmap td.masterm { text-align:center ; font-size:9px ; font-style:italic ; border-style:none none solid none ;}
|
||||
table.mmap td.masterr { text-align:center ; font-size:9px ; font-style:italic ; border-style:none solid solid none ;}
|
||||
table.mmap td.addr { font-family:courier ; font-size:9px ; text-align:right ;}
|
||||
table.connectionboxes { border-collapse:separate ; border-spacing:0px ; font-family:arial ;}
|
||||
table.connectionboxes td.from { border-bottom:1px solid black ; font-size:9px ; font-style:italic ; vertical-align:bottom ; text-align:left ;}
|
||||
table.connectionboxes td.to { font-size:9px ; font-style:italic ; vertical-align:top ; text-align:right ;}
|
||||
table.connectionboxes td.lefthandwire { border-bottom:1px solid black ; font-size:9px ; font-style:italic ; vertical-align:bottom ; text-align:right ;}
|
||||
table.connectionboxes td.righthandwire { border-bottom:1px solid black ; font-size:9px ; font-style:italic ; vertical-align:bottom ; text-align:left ;}
|
||||
table.connectionboxes td.righthandlabel { font-size:11px ; vertical-align:bottom ; text-align:left ;}
|
||||
table.connectionboxes td.neighbor { padding:3px ; border:1px solid black ; font-size: 11px ; background:#e8e8e8 ; vertical-align:center ; text-align:center ;}
|
||||
table.connectionboxes td.main { padding:8px ; border:1px solid black ; font-size: 14px ; font-weight:bold ; background:#ffffff ; vertical-align:center ; text-align:center ;}
|
||||
.parametersbox { border:1px solid #d0d0d0 ; display:inline-block ; max-height:160px ; overflow:auto ; width:360px ; font-size:10px ;}
|
||||
.flowbox { display:inline-block ;}
|
||||
.parametersbox table { font-size:10px ;}
|
||||
td.parametername { font-style:italic ;}
|
||||
td.parametervalue { font-weight:bold ;}
|
||||
div.greydiv { vertical-align:top ; text-align:center ; background:#eeeeee ; border-top:1px solid #707070 ; border-bottom:1px solid #707070 ; padding:20px ; margin:20px ; width:auto ;}</style>
|
||||
</head>
|
||||
<body>
|
||||
<table class="topTitle">
|
||||
<tr>
|
||||
<td class="l">uart_screen</td>
|
||||
<td class="r">
|
||||
<br/>
|
||||
<br/>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table class="blueBar">
|
||||
<tr>
|
||||
<td class="l">2022.05.24.19:49:50</td>
|
||||
<td class="r">Datasheet</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div style="width:100% ; height:10px"> </div>
|
||||
<div class="label">Overview</div>
|
||||
<div class="greydiv">
|
||||
<div style="display:inline-block ; text-align:left">
|
||||
<table class="connectionboxes">
|
||||
<tr>
|
||||
<td class="lefthandwire">  clk_0 </td>
|
||||
<td class="main" rowspan="2">uart_screen</td>
|
||||
</tr>
|
||||
<tr style="height:6px">
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><span style="display:inline-block ; width:28px"> </span>
|
||||
<div style="display:inline-block ; text-align:left"><span>
|
||||
<br/></span>
|
||||
</div>
|
||||
</div>
|
||||
<div style="width:100% ; height:10px"> </div>
|
||||
<div class="label">Memory Map</div>
|
||||
<table class="mmap">
|
||||
<tr>
|
||||
<td class="empty" rowspan="2"></td>
|
||||
</tr>
|
||||
</table>
|
||||
<a name="module_clk_0"> </a>
|
||||
<div>
|
||||
<hr/>
|
||||
<h2>clk_0</h2>clock_source v21.1
|
||||
<br/>
|
||||
<br/>
|
||||
<br/>
|
||||
<table class="flowbox">
|
||||
<tr>
|
||||
<td class="parametersbox">
|
||||
<h2>Parameters</h2>
|
||||
<table>
|
||||
<tr>
|
||||
<td class="parametername">clockFrequency</td>
|
||||
<td class="parametervalue">50000000</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="parametername">clockFrequencyKnown</td>
|
||||
<td class="parametervalue">true</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="parametername">inputClockFrequency</td>
|
||||
<td class="parametervalue">0</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="parametername">resetSynchronousEdges</td>
|
||||
<td class="parametervalue">NONE</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="parametername">deviceFamily</td>
|
||||
<td class="parametervalue">UNKNOWN</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="parametername">generateLegacySim</td>
|
||||
<td class="parametervalue">false</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>  
|
||||
<table class="flowbox">
|
||||
<tr>
|
||||
<td class="parametersbox">
|
||||
<h2>Software Assignments</h2>(none)</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<a name="module_rs232_0"> </a>
|
||||
<div>
|
||||
<hr/>
|
||||
<h2>rs232_0</h2>altera_up_avalon_rs232 v17.1
|
||||
<br/>
|
||||
<div class="greydiv">
|
||||
<table class="connectionboxes">
|
||||
<tr>
|
||||
<td class="neighbor" rowspan="4">
|
||||
<a href="#module_clk_0">clk_0</a>
|
||||
</td>
|
||||
<td class="from">clk  </td>
|
||||
<td class="main" rowspan="4">rs232_0</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="to">  clk</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="from">clk_reset  </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="to">  reset</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<br/>
|
||||
<br/>
|
||||
<table class="flowbox">
|
||||
<tr>
|
||||
<td class="parametersbox">
|
||||
<h2>Parameters</h2>
|
||||
<table>
|
||||
<tr>
|
||||
<td class="parametername">ref_clk_freq</td>
|
||||
<td class="parametervalue">5.0E7</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="parametername">avalon_bus_type</td>
|
||||
<td class="parametervalue">Streaming</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="parametername">baud</td>
|
||||
<td class="parametervalue">115200</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="parametername">parity</td>
|
||||
<td class="parametervalue">None</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="parametername">data_bits</td>
|
||||
<td class="parametervalue">8</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="parametername">stop_bits</td>
|
||||
<td class="parametervalue">1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="parametername">AUTO_DEVICE_FAMILY</td>
|
||||
<td class="parametervalue">CYCLONEIVE</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="parametername">AUTO_CLK_CLOCK_RATE</td>
|
||||
<td class="parametervalue">50000000</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="parametername">deviceFamily</td>
|
||||
<td class="parametervalue">Cyclone IV E</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="parametername">generateLegacySim</td>
|
||||
<td class="parametervalue">false</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>  
|
||||
<table class="flowbox">
|
||||
<tr>
|
||||
<td class="parametersbox">
|
||||
<h2>Software Assignments</h2>(none)</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<table class="blueBar">
|
||||
<tr>
|
||||
<td class="l">generation took 0.00 seconds</td>
|
||||
<td class="r">rendering took 0.03 seconds</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
21
Quartus/Design/uart_screen/uart_screen.ppf
Normal file
21
Quartus/Design/uart_screen/uart_screen.ppf
Normal file
|
@ -0,0 +1,21 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<pinplan
|
||||
variation_name="rs232_0"
|
||||
megafunction_name="ALTERA_UP_AVALON_RS232"
|
||||
intended_family="Cyclone IV E"
|
||||
specifies="all_ports">
|
||||
<global>
|
||||
<pin name="clk" direction="input" scope="external" />
|
||||
<pin name="reset" direction="input" scope="external" />
|
||||
<pin name="from_uart_ready" direction="input" scope="external" />
|
||||
<pin name="from_uart_data[7..0]" direction="output" scope="external" />
|
||||
<pin name="from_uart_error" direction="output" scope="external" />
|
||||
<pin name="from_uart_valid" direction="output" scope="external" />
|
||||
<pin name="to_uart_data[7..0]" direction="input" scope="external" />
|
||||
<pin name="to_uart_error" direction="input" scope="external" />
|
||||
<pin name="to_uart_valid" direction="input" scope="external" />
|
||||
<pin name="to_uart_ready" direction="output" scope="external" />
|
||||
<pin name="UART_RXD" direction="input" scope="external" />
|
||||
<pin name="UART_TXD" direction="output" scope="external" />
|
||||
</global>
|
||||
</pinplan>
|
313
Quartus/Design/uart_screen/uart_screen.xml
Normal file
313
Quartus/Design/uart_screen/uart_screen.xml
Normal file
|
@ -0,0 +1,313 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<deploy
|
||||
date="2022.05.24.19:49:50"
|
||||
outputDirectory="/home/ir/Documents/codelib/Quartus/Design/uart_screen/">
|
||||
<perimeter>
|
||||
<parameter
|
||||
name="AUTO_GENERATION_ID"
|
||||
type="Integer"
|
||||
defaultValue="0"
|
||||
onHdl="0"
|
||||
affectsHdl="1" />
|
||||
<parameter
|
||||
name="AUTO_UNIQUE_ID"
|
||||
type="String"
|
||||
defaultValue=""
|
||||
onHdl="0"
|
||||
affectsHdl="1" />
|
||||
<parameter
|
||||
name="AUTO_DEVICE_FAMILY"
|
||||
type="String"
|
||||
defaultValue="Cyclone IV E"
|
||||
onHdl="0"
|
||||
affectsHdl="1" />
|
||||
<parameter
|
||||
name="AUTO_DEVICE"
|
||||
type="String"
|
||||
defaultValue="EP4CE6E22C8"
|
||||
onHdl="0"
|
||||
affectsHdl="1" />
|
||||
<parameter
|
||||
name="AUTO_DEVICE_SPEEDGRADE"
|
||||
type="String"
|
||||
defaultValue="8"
|
||||
onHdl="0"
|
||||
affectsHdl="1" />
|
||||
<parameter
|
||||
name="AUTO_CLK_CLOCK_RATE"
|
||||
type="Long"
|
||||
defaultValue="-1"
|
||||
onHdl="0"
|
||||
affectsHdl="1" />
|
||||
<parameter
|
||||
name="AUTO_CLK_CLOCK_DOMAIN"
|
||||
type="Integer"
|
||||
defaultValue="-1"
|
||||
onHdl="0"
|
||||
affectsHdl="1" />
|
||||
<parameter
|
||||
name="AUTO_CLK_RESET_DOMAIN"
|
||||
type="Integer"
|
||||
defaultValue="-1"
|
||||
onHdl="0"
|
||||
affectsHdl="1" />
|
||||
<interface name="clk" kind="clock" start="0">
|
||||
<property name="clockRate" value="50000000" />
|
||||
<property name="externallyDriven" value="false" />
|
||||
<property name="ptfSchematicName" value="" />
|
||||
<port name="clk_clk" direction="input" role="clk" width="1" />
|
||||
</interface>
|
||||
<interface name="reset" kind="reset" start="0">
|
||||
<property name="associatedClock" value="" />
|
||||
<property name="synchronousEdges" value="NONE" />
|
||||
<port name="reset_reset_n" direction="input" role="reset_n" width="1" />
|
||||
</interface>
|
||||
<interface
|
||||
name="rs232_0_avalon_data_receive_source"
|
||||
kind="avalon_streaming"
|
||||
start="1">
|
||||
<property name="associatedClock" value="clk" />
|
||||
<property name="associatedReset" value="reset" />
|
||||
<property name="beatsPerCycle" value="1" />
|
||||
<property name="dataBitsPerSymbol" value="8" />
|
||||
<property name="emptyWithinPacket" value="false" />
|
||||
<property name="errorDescriptor" value="" />
|
||||
<property name="firstSymbolInHighOrderBits" value="true" />
|
||||
<property name="highOrderSymbolAtMSB" value="false" />
|
||||
<property name="maxChannel" value="0" />
|
||||
<property name="packetDescription" value="" />
|
||||
<property name="readyLatency" value="0" />
|
||||
<property name="symbolsPerBeat" value="1" />
|
||||
<port
|
||||
name="rs232_0_from_uart_ready"
|
||||
direction="input"
|
||||
role="ready"
|
||||
width="1" />
|
||||
<port
|
||||
name="rs232_0_from_uart_data"
|
||||
direction="output"
|
||||
role="data"
|
||||
width="8" />
|
||||
<port
|
||||
name="rs232_0_from_uart_error"
|
||||
direction="output"
|
||||
role="error"
|
||||
width="1" />
|
||||
<port
|
||||
name="rs232_0_from_uart_valid"
|
||||
direction="output"
|
||||
role="valid"
|
||||
width="1" />
|
||||
</interface>
|
||||
<interface
|
||||
name="rs232_0_avalon_data_transmit_sink"
|
||||
kind="avalon_streaming"
|
||||
start="0">
|
||||
<property name="associatedClock" value="clk" />
|
||||
<property name="associatedReset" value="reset" />
|
||||
<property name="beatsPerCycle" value="1" />
|
||||
<property name="dataBitsPerSymbol" value="8" />
|
||||
<property name="emptyWithinPacket" value="false" />
|
||||
<property name="errorDescriptor" value="" />
|
||||
<property name="firstSymbolInHighOrderBits" value="true" />
|
||||
<property name="highOrderSymbolAtMSB" value="false" />
|
||||
<property name="maxChannel" value="0" />
|
||||
<property name="packetDescription" value="" />
|
||||
<property name="readyLatency" value="0" />
|
||||
<property name="symbolsPerBeat" value="1" />
|
||||
<port name="rs232_0_to_uart_data" direction="input" role="data" width="8" />
|
||||
<port name="rs232_0_to_uart_error" direction="input" role="error" width="1" />
|
||||
<port name="rs232_0_to_uart_valid" direction="input" role="valid" width="1" />
|
||||
<port
|
||||
name="rs232_0_to_uart_ready"
|
||||
direction="output"
|
||||
role="ready"
|
||||
width="1" />
|
||||
</interface>
|
||||
<interface name="rs232_0_external_interface" kind="conduit" start="0">
|
||||
<property name="associatedClock" value="" />
|
||||
<property name="associatedReset" value="" />
|
||||
<port name="rs232_0_UART_RXD" direction="input" role="RXD" width="1" />
|
||||
<port name="rs232_0_UART_TXD" direction="output" role="TXD" width="1" />
|
||||
</interface>
|
||||
</perimeter>
|
||||
<entity
|
||||
path=""
|
||||
parameterizationKey="uart_screen:1.0:AUTO_CLK_CLOCK_DOMAIN=-1,AUTO_CLK_CLOCK_RATE=-1,AUTO_CLK_RESET_DOMAIN=-1,AUTO_DEVICE=EP4CE6E22C8,AUTO_DEVICE_FAMILY=Cyclone IV E,AUTO_DEVICE_SPEEDGRADE=8,AUTO_GENERATION_ID=1653392990,AUTO_UNIQUE_ID=(clock_source:21.1:clockFrequency=50000000,clockFrequencyKnown=true,inputClockFrequency=0,resetSynchronousEdges=NONE)(altera_up_avalon_rs232:17.1:AUTO_CLK_CLOCK_RATE=50000000,AUTO_DEVICE_FAMILY=Cyclone IV E,avalon_bus_type=Streaming,baud=115200,data_bits=8,parity=None,ref_clk_freq=5.0E7,stop_bits=1)(clock:21.1:)(reset:21.1:)"
|
||||
instancePathKey="uart_screen"
|
||||
kind="uart_screen"
|
||||
version="1.0"
|
||||
name="uart_screen">
|
||||
<parameter name="AUTO_CLK_CLOCK_RATE" value="-1" />
|
||||
<parameter name="AUTO_GENERATION_ID" value="1653392990" />
|
||||
<parameter name="AUTO_DEVICE" value="EP4CE6E22C8" />
|
||||
<parameter name="AUTO_DEVICE_FAMILY" value="Cyclone IV E" />
|
||||
<parameter name="AUTO_CLK_RESET_DOMAIN" value="-1" />
|
||||
<parameter name="AUTO_CLK_CLOCK_DOMAIN" value="-1" />
|
||||
<parameter name="AUTO_UNIQUE_ID" value="" />
|
||||
<parameter name="AUTO_DEVICE_SPEEDGRADE" value="8" />
|
||||
<generatedFiles>
|
||||
<file
|
||||
path="/home/ir/Documents/codelib/Quartus/Design/uart_screen/synthesis/uart_screen.v"
|
||||
type="VERILOG" />
|
||||
</generatedFiles>
|
||||
<childGeneratedFiles>
|
||||
<file
|
||||
path="/home/ir/Documents/codelib/Quartus/Design/uart_screen/synthesis/submodules/altera_up_rs232_counters.v"
|
||||
type="VERILOG" />
|
||||
<file
|
||||
path="/home/ir/Documents/codelib/Quartus/Design/uart_screen/synthesis/submodules/altera_up_rs232_in_deserializer.v"
|
||||
type="VERILOG" />
|
||||
<file
|
||||
path="/home/ir/Documents/codelib/Quartus/Design/uart_screen/synthesis/submodules/altera_up_rs232_out_serializer.v"
|
||||
type="VERILOG" />
|
||||
<file
|
||||
path="/home/ir/Documents/codelib/Quartus/Design/uart_screen/synthesis/submodules/altera_up_sync_fifo.v"
|
||||
type="VERILOG" />
|
||||
<file
|
||||
path="/home/ir/Documents/codelib/Quartus/Design/uart_screen/synthesis/submodules/uart_screen_rs232_0.v"
|
||||
type="VERILOG" />
|
||||
<file
|
||||
path="/home/ir/Documents/codelib/Quartus/Design/uart_screen/synthesis/submodules/altera_reset_controller.v"
|
||||
type="VERILOG"
|
||||
attributes="" />
|
||||
<file
|
||||
path="/home/ir/Documents/codelib/Quartus/Design/uart_screen/synthesis/submodules/altera_reset_synchronizer.v"
|
||||
type="VERILOG"
|
||||
attributes="" />
|
||||
<file
|
||||
path="/home/ir/Documents/codelib/Quartus/Design/uart_screen/synthesis/submodules/altera_reset_controller.sdc"
|
||||
type="SDC"
|
||||
attributes="" />
|
||||
</childGeneratedFiles>
|
||||
<sourceFiles>
|
||||
<file path="/home/ir/Documents/codelib/Quartus/Design/uart_screen.qsys" />
|
||||
</sourceFiles>
|
||||
<childSourceFiles>
|
||||
<file
|
||||
path="/opt/intelFPGA/21.1/ip/altera/university_program/communication/altera_up_avalon_rs232/altera_up_avalon_rs232_hw.tcl" />
|
||||
<file
|
||||
path="/opt/intelFPGA/21.1/ip/altera/university_program/communication/altera_up_avalon_rs232/hdl/altera_up_rs232_counters.v" />
|
||||
<file
|
||||
path="/opt/intelFPGA/21.1/ip/altera/university_program/communication/altera_up_avalon_rs232/hdl/altera_up_rs232_in_deserializer.v" />
|
||||
<file
|
||||
path="/opt/intelFPGA/21.1/ip/altera/university_program/communication/altera_up_avalon_rs232/hdl/altera_up_rs232_out_serializer.v" />
|
||||
<file
|
||||
path="/opt/intelFPGA/21.1/ip/altera/university_program/communication/altera_up_avalon_rs232/hdl/altera_up_sync_fifo.v" />
|
||||
<file
|
||||
path="/opt/intelFPGA/21.1/ip/altera/merlin/altera_reset_controller/altera_reset_controller_hw.tcl" />
|
||||
</childSourceFiles>
|
||||
<messages>
|
||||
<message level="Debug" culprit="uart_screen">queue size: 0 starting:uart_screen "uart_screen"</message>
|
||||
<message level="Progress" culprit="min"></message>
|
||||
<message level="Progress" culprit="max"></message>
|
||||
<message level="Progress" culprit="current"></message>
|
||||
<message level="Debug">Transform: CustomInstructionTransform</message>
|
||||
<message level="Debug">No custom instruction connections, skipping transform </message>
|
||||
<message level="Debug" culprit="merlin_custom_instruction_transform"><![CDATA[After transform: <b>2</b> modules, <b>2</b> connections]]></message>
|
||||
<message level="Debug">Transform: MMTransform</message>
|
||||
<message level="Debug">Transform: InterruptMapperTransform</message>
|
||||
<message level="Debug">Transform: InterruptSyncTransform</message>
|
||||
<message level="Debug">Transform: InterruptFanoutTransform</message>
|
||||
<message level="Debug">Transform: AvalonStreamingTransform</message>
|
||||
<message level="Debug">Transform: ResetAdaptation</message>
|
||||
<message level="Progress" culprit="min"></message>
|
||||
<message level="Progress" culprit="max"></message>
|
||||
<message level="Progress" culprit="current"></message>
|
||||
<message level="Debug" culprit="reset_adaptation_transform"><![CDATA[After transform: <b>3</b> modules, <b>4</b> connections]]></message>
|
||||
<message level="Debug" culprit="uart_screen"><![CDATA["<b>uart_screen</b>" reuses <b>altera_up_avalon_rs232</b> "<b>submodules/uart_screen_rs232_0</b>"]]></message>
|
||||
<message level="Debug" culprit="uart_screen"><![CDATA["<b>uart_screen</b>" reuses <b>altera_reset_controller</b> "<b>submodules/altera_reset_controller</b>"]]></message>
|
||||
<message level="Debug" culprit="uart_screen">queue size: 1 starting:altera_up_avalon_rs232 "submodules/uart_screen_rs232_0"</message>
|
||||
<message level="Info" culprit="rs232_0">Starting Generation of RS232 UART</message>
|
||||
<message level="Info" culprit="rs232_0"><![CDATA["<b>uart_screen</b>" instantiated <b>altera_up_avalon_rs232</b> "<b>rs232_0</b>"]]></message>
|
||||
<message level="Debug" culprit="uart_screen">queue size: 0 starting:altera_reset_controller "submodules/altera_reset_controller"</message>
|
||||
<message level="Info" culprit="rst_controller"><![CDATA["<b>uart_screen</b>" instantiated <b>altera_reset_controller</b> "<b>rst_controller</b>"]]></message>
|
||||
</messages>
|
||||
</entity>
|
||||
<entity
|
||||
path="submodules/"
|
||||
parameterizationKey="altera_up_avalon_rs232:17.1:AUTO_CLK_CLOCK_RATE=50000000,AUTO_DEVICE_FAMILY=Cyclone IV E,avalon_bus_type=Streaming,baud=115200,data_bits=8,parity=None,ref_clk_freq=5.0E7,stop_bits=1"
|
||||
instancePathKey="uart_screen:.:rs232_0"
|
||||
kind="altera_up_avalon_rs232"
|
||||
version="17.1"
|
||||
name="uart_screen_rs232_0">
|
||||
<parameter name="baud" value="115200" />
|
||||
<parameter name="AUTO_CLK_CLOCK_RATE" value="50000000" />
|
||||
<parameter name="stop_bits" value="1" />
|
||||
<parameter name="ref_clk_freq" value="5.0E7" />
|
||||
<parameter name="avalon_bus_type" value="Streaming" />
|
||||
<parameter name="data_bits" value="8" />
|
||||
<parameter name="parity" value="None" />
|
||||
<parameter name="AUTO_DEVICE_FAMILY" value="Cyclone IV E" />
|
||||
<generatedFiles>
|
||||
<file
|
||||
path="/home/ir/Documents/codelib/Quartus/Design/uart_screen/synthesis/submodules/altera_up_rs232_counters.v"
|
||||
type="VERILOG" />
|
||||
<file
|
||||
path="/home/ir/Documents/codelib/Quartus/Design/uart_screen/synthesis/submodules/altera_up_rs232_in_deserializer.v"
|
||||
type="VERILOG" />
|
||||
<file
|
||||
path="/home/ir/Documents/codelib/Quartus/Design/uart_screen/synthesis/submodules/altera_up_rs232_out_serializer.v"
|
||||
type="VERILOG" />
|
||||
<file
|
||||
path="/home/ir/Documents/codelib/Quartus/Design/uart_screen/synthesis/submodules/altera_up_sync_fifo.v"
|
||||
type="VERILOG" />
|
||||
<file
|
||||
path="/home/ir/Documents/codelib/Quartus/Design/uart_screen/synthesis/submodules/uart_screen_rs232_0.v"
|
||||
type="VERILOG" />
|
||||
</generatedFiles>
|
||||
<childGeneratedFiles/>
|
||||
<sourceFiles>
|
||||
<file
|
||||
path="/opt/intelFPGA/21.1/ip/altera/university_program/communication/altera_up_avalon_rs232/altera_up_avalon_rs232_hw.tcl" />
|
||||
<file
|
||||
path="/opt/intelFPGA/21.1/ip/altera/university_program/communication/altera_up_avalon_rs232/hdl/altera_up_rs232_counters.v" />
|
||||
<file
|
||||
path="/opt/intelFPGA/21.1/ip/altera/university_program/communication/altera_up_avalon_rs232/hdl/altera_up_rs232_in_deserializer.v" />
|
||||
<file
|
||||
path="/opt/intelFPGA/21.1/ip/altera/university_program/communication/altera_up_avalon_rs232/hdl/altera_up_rs232_out_serializer.v" />
|
||||
<file
|
||||
path="/opt/intelFPGA/21.1/ip/altera/university_program/communication/altera_up_avalon_rs232/hdl/altera_up_sync_fifo.v" />
|
||||
</sourceFiles>
|
||||
<childSourceFiles/>
|
||||
<instantiator instantiator="uart_screen" as="rs232_0" />
|
||||
<messages>
|
||||
<message level="Debug" culprit="uart_screen">queue size: 1 starting:altera_up_avalon_rs232 "submodules/uart_screen_rs232_0"</message>
|
||||
<message level="Info" culprit="rs232_0">Starting Generation of RS232 UART</message>
|
||||
<message level="Info" culprit="rs232_0"><![CDATA["<b>uart_screen</b>" instantiated <b>altera_up_avalon_rs232</b> "<b>rs232_0</b>"]]></message>
|
||||
</messages>
|
||||
</entity>
|
||||
<entity
|
||||
path="submodules/"
|
||||
parameterizationKey="altera_reset_controller:21.1:ADAPT_RESET_REQUEST=0,MIN_RST_ASSERTION_TIME=3,NUM_RESET_INPUTS=1,OUTPUT_RESET_SYNC_EDGES=deassert,RESET_REQUEST_PRESENT=0,RESET_REQ_EARLY_DSRT_TIME=1,RESET_REQ_WAIT_TIME=1,SYNC_DEPTH=2,USE_RESET_REQUEST_IN0=0,USE_RESET_REQUEST_IN1=0,USE_RESET_REQUEST_IN10=0,USE_RESET_REQUEST_IN11=0,USE_RESET_REQUEST_IN12=0,USE_RESET_REQUEST_IN13=0,USE_RESET_REQUEST_IN14=0,USE_RESET_REQUEST_IN15=0,USE_RESET_REQUEST_IN2=0,USE_RESET_REQUEST_IN3=0,USE_RESET_REQUEST_IN4=0,USE_RESET_REQUEST_IN5=0,USE_RESET_REQUEST_IN6=0,USE_RESET_REQUEST_IN7=0,USE_RESET_REQUEST_IN8=0,USE_RESET_REQUEST_IN9=0,USE_RESET_REQUEST_INPUT=0"
|
||||
instancePathKey="uart_screen:.:rst_controller"
|
||||
kind="altera_reset_controller"
|
||||
version="21.1"
|
||||
name="altera_reset_controller">
|
||||
<generatedFiles>
|
||||
<file
|
||||
path="/home/ir/Documents/codelib/Quartus/Design/uart_screen/synthesis/submodules/altera_reset_controller.v"
|
||||
type="VERILOG"
|
||||
attributes="" />
|
||||
<file
|
||||
path="/home/ir/Documents/codelib/Quartus/Design/uart_screen/synthesis/submodules/altera_reset_synchronizer.v"
|
||||
type="VERILOG"
|
||||
attributes="" />
|
||||
<file
|
||||
path="/home/ir/Documents/codelib/Quartus/Design/uart_screen/synthesis/submodules/altera_reset_controller.sdc"
|
||||
type="SDC"
|
||||
attributes="" />
|
||||
</generatedFiles>
|
||||
<childGeneratedFiles/>
|
||||
<sourceFiles>
|
||||
<file
|
||||
path="/opt/intelFPGA/21.1/ip/altera/merlin/altera_reset_controller/altera_reset_controller_hw.tcl" />
|
||||
</sourceFiles>
|
||||
<childSourceFiles/>
|
||||
<instantiator instantiator="uart_screen" as="rst_controller" />
|
||||
<messages>
|
||||
<message level="Debug" culprit="uart_screen">queue size: 0 starting:altera_reset_controller "submodules/altera_reset_controller"</message>
|
||||
<message level="Info" culprit="rst_controller"><![CDATA["<b>uart_screen</b>" instantiated <b>altera_reset_controller</b> "<b>rst_controller</b>"]]></message>
|
||||
</messages>
|
||||
</entity>
|
||||
</deploy>
|
28
Quartus/Design/uart_screen/uart_screen_bb.v
Normal file
28
Quartus/Design/uart_screen/uart_screen_bb.v
Normal file
|
@ -0,0 +1,28 @@
|
|||
|
||||
module uart_screen (
|
||||
rs232_0_UART_RXD,
|
||||
rs232_0_UART_TXD,
|
||||
rs232_0_from_uart_ready,
|
||||
rs232_0_from_uart_data,
|
||||
rs232_0_from_uart_error,
|
||||
rs232_0_from_uart_valid,
|
||||
rs232_0_to_uart_data,
|
||||
rs232_0_to_uart_error,
|
||||
rs232_0_to_uart_valid,
|
||||
rs232_0_to_uart_ready,
|
||||
clk_clk,
|
||||
reset_reset_n);
|
||||
|
||||
input rs232_0_UART_RXD;
|
||||
output rs232_0_UART_TXD;
|
||||
input rs232_0_from_uart_ready;
|
||||
output [7:0] rs232_0_from_uart_data;
|
||||
output rs232_0_from_uart_error;
|
||||
output rs232_0_from_uart_valid;
|
||||
input [7:0] rs232_0_to_uart_data;
|
||||
input rs232_0_to_uart_error;
|
||||
input rs232_0_to_uart_valid;
|
||||
output rs232_0_to_uart_ready;
|
||||
input clk_clk;
|
||||
input reset_reset_n;
|
||||
endmodule
|
34
Quartus/Design/uart_screen/uart_screen_generation.rpt
Normal file
34
Quartus/Design/uart_screen/uart_screen_generation.rpt
Normal file
|
@ -0,0 +1,34 @@
|
|||
Info: Starting: Create block symbol file (.bsf)
|
||||
Info: qsys-generate /home/ir/Documents/codelib/Quartus/Design/uart_screen.qsys --block-symbol-file --output-directory=/home/ir/Documents/codelib/Quartus/Design/uart_screen --family="Cyclone IV E" --part=EP4CE6E22C8
|
||||
Progress: Loading Design/uart_screen.qsys
|
||||
Progress: Reading input file
|
||||
Progress: Adding clk_0 [clock_source 21.1]
|
||||
Progress: Parameterizing module clk_0
|
||||
Progress: Adding rs232_0 [altera_up_avalon_rs232 17.1]
|
||||
Progress: Parameterizing module rs232_0
|
||||
Progress: Building connections
|
||||
Progress: Parameterizing connections
|
||||
Progress: Validating
|
||||
Progress: Done reading input file
|
||||
Info: qsys-generate succeeded.
|
||||
Info: Finished: Create block symbol file (.bsf)
|
||||
Info:
|
||||
Info: Starting: Create HDL design files for synthesis
|
||||
Info: qsys-generate /home/ir/Documents/codelib/Quartus/Design/uart_screen.qsys --synthesis=VERILOG --output-directory=/home/ir/Documents/codelib/Quartus/Design/uart_screen/synthesis --family="Cyclone IV E" --part=EP4CE6E22C8
|
||||
Progress: Loading Design/uart_screen.qsys
|
||||
Progress: Reading input file
|
||||
Progress: Adding clk_0 [clock_source 21.1]
|
||||
Progress: Parameterizing module clk_0
|
||||
Progress: Adding rs232_0 [altera_up_avalon_rs232 17.1]
|
||||
Progress: Parameterizing module rs232_0
|
||||
Progress: Building connections
|
||||
Progress: Parameterizing connections
|
||||
Progress: Validating
|
||||
Progress: Done reading input file
|
||||
Info: uart_screen: Generating uart_screen "uart_screen" for QUARTUS_SYNTH
|
||||
Info: rs232_0: Starting Generation of RS232 UART
|
||||
Info: rs232_0: "uart_screen" instantiated altera_up_avalon_rs232 "rs232_0"
|
||||
Info: rst_controller: "uart_screen" instantiated altera_reset_controller "rst_controller"
|
||||
Info: uart_screen: Done "uart_screen" with 3 modules, 9 files
|
||||
Info: qsys-generate succeeded.
|
||||
Info: Finished: Create HDL design files for synthesis
|
|
@ -0,0 +1,30 @@
|
|||
Info: Starting: Create block symbol file (.bsf)
|
||||
Info: qsys-generate /home/ir/Documents/codelib/Quartus/Design/uart_screen.qsys --block-symbol-file --output-directory=/home/ir/Documents/codelib/Quartus/Design/uart_screen --family="Cyclone IV E" --part=EP4CE6E22C8
|
||||
Progress: Loading Design/uart_screen.qsys
|
||||
Progress: Reading input file
|
||||
Progress: Adding rs232_0 [altera_up_avalon_rs232 17.1]
|
||||
Progress: Parameterizing module rs232_0
|
||||
Progress: Building connections
|
||||
Progress: Parameterizing connections
|
||||
Progress: Validating
|
||||
Progress: Done reading input file
|
||||
Info: qsys-generate succeeded.
|
||||
Info: Finished: Create block symbol file (.bsf)
|
||||
Info:
|
||||
Info: Starting: Create HDL design files for synthesis
|
||||
Info: qsys-generate /home/ir/Documents/codelib/Quartus/Design/uart_screen.qsys --synthesis=VERILOG --output-directory=/home/ir/Documents/codelib/Quartus/Design/uart_screen/synthesis --family="Cyclone IV E" --part=EP4CE6E22C8
|
||||
Progress: Loading Design/uart_screen.qsys
|
||||
Progress: Reading input file
|
||||
Progress: Adding rs232_0 [altera_up_avalon_rs232 17.1]
|
||||
Progress: Parameterizing module rs232_0
|
||||
Progress: Building connections
|
||||
Progress: Parameterizing connections
|
||||
Progress: Validating
|
||||
Progress: Done reading input file
|
||||
Info: uart_screen: Generating uart_screen "uart_screen" for QUARTUS_SYNTH
|
||||
Info: rs232_0: Starting Generation of RS232 UART
|
||||
Error: rs232_0: The input clock frequency must be known at generation time.
|
||||
Info: rs232_0: "uart_screen" instantiated altera_up_avalon_rs232 "rs232_0"
|
||||
Info: uart_screen: Done "uart_screen" with 2 modules, 6 files
|
||||
Error: qsys-generate failed with exit code 1: 1 Error, 0 Warnings
|
||||
Info: Finished: Create HDL design files for synthesis
|
15
Quartus/Design/uart_screen/uart_screen_inst.v
Normal file
15
Quartus/Design/uart_screen/uart_screen_inst.v
Normal file
|
@ -0,0 +1,15 @@
|
|||
uart_screen u0 (
|
||||
.rs232_0_UART_RXD (<connected-to-rs232_0_UART_RXD>), // rs232_0_external_interface.RXD
|
||||
.rs232_0_UART_TXD (<connected-to-rs232_0_UART_TXD>), // .TXD
|
||||
.rs232_0_from_uart_ready (<connected-to-rs232_0_from_uart_ready>), // rs232_0_avalon_data_receive_source.ready
|
||||
.rs232_0_from_uart_data (<connected-to-rs232_0_from_uart_data>), // .data
|
||||
.rs232_0_from_uart_error (<connected-to-rs232_0_from_uart_error>), // .error
|
||||
.rs232_0_from_uart_valid (<connected-to-rs232_0_from_uart_valid>), // .valid
|
||||
.rs232_0_to_uart_data (<connected-to-rs232_0_to_uart_data>), // rs232_0_avalon_data_transmit_sink.data
|
||||
.rs232_0_to_uart_error (<connected-to-rs232_0_to_uart_error>), // .error
|
||||
.rs232_0_to_uart_valid (<connected-to-rs232_0_to_uart_valid>), // .valid
|
||||
.rs232_0_to_uart_ready (<connected-to-rs232_0_to_uart_ready>), // .ready
|
||||
.clk_clk (<connected-to-clk_clk>), // clk.clk
|
||||
.reset_reset_n (<connected-to-reset_reset_n>) // reset.reset_n
|
||||
);
|
||||
|
Reference in a new issue