⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clock_gen.v

📁 使用Libero提供的异步通信IP核实现UART通信
💻 V
字号:
// Copyright 2007 Actel Corporation.  All rights reserved.
// ANY USE OR REDISTRIBUTION IN PART OR IN WHOLE MUST BE HANDLED IN 
// ACCORDANCE WITH THE ACTEL LICENSE AGREEMENT AND MUST BE APPROVED 
// IN ADVANCE IN WRITING.  
// Rev: 3.0  21FEB07  HJ  : v3.0 CoreConsole Release  
`define CUARTO  \
1 \
'b \
0
`define CUARTI  \
1 \
'b \
0
`define CUARTl  \
1 \
'b \
1
`define CUARTOI  \
1 \
'b \
1
`timescale 1ns/1ns
module
Clock_gen
(
clk
,
reset_n
,
baud_val
,
baud_clock
,
xmit_pulse
)
;
input
clk
;
input
reset_n
;
input
[
7
:
0
]
baud_val
;
output
baud_clock
;
output
xmit_pulse
;
wire
baud_clock
;
wire
xmit_pulse
;
reg
[
7
:
0
]
CUARTII
;
reg
CUARTlI
;
reg
CUARTOl
;
reg
[
3
:
0
]
CUARTIl
;
always
@
(
posedge
clk
or
negedge
reset_n
)
begin
:
CUARTll
if
(
reset_n
===
1
'b
0
)
begin
CUARTII
<=
8
'b
00000000
;
CUARTlI
<=
1
'b
0
;
end
else
begin
if
(
CUARTII
===
8
'b
00000000
)
begin
CUARTII
<=
baud_val
;
CUARTlI
<=
1
'b
1
;
end
else
begin
CUARTII
<=
CUARTII
-
1
'b
1
;
CUARTlI
<=
1
'b
0
;
end
end
end
always
@
(
posedge
clk
or
negedge
reset_n
)
begin
:
CUARTO0
if
(
reset_n
===
1
'b
0
)
begin
CUARTIl
<=
4
'b
0000
;
CUARTOl
<=
1
'b
0
;
end
else
begin
if
(
CUARTlI
===
1
'b
1
)
begin
CUARTIl
<=
CUARTIl
+
1
'b
1
;
if
(
CUARTIl
===
4
'b
1111
)
begin
CUARTOl
<=
1
'b
1
;
end
else
begin
CUARTOl
<=
1
'b
0
;
end
end
end
end
assign
xmit_pulse
=
CUARTOl
&
CUARTlI
;
assign
baud_clock
=
CUARTlI
;
endmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -