旋转
更新于 2015.05.14
设计
旋转
版本
1.0
更改于
2015-05-28
源文件
IP-GUI
功能
根据给定的角度对图像进行旋转。
将会在帧输入使能后的1个周期后给出第一个输出。
文件
名字 | 功能 |
---|---|
Rotate.v | 顶层文件 |
Rotate_TB.sv | 测试平台 |
Multiplier13Sx20SRTT.xci | Xilinx IP文件。 |
Multiplier13Sx20SRTT_funcsim.v | 用于功能仿真的模型文件。 |
CosLUT.v | Source file. |
SinLUT.v | Source file. |
FixedRoundSigned2.v | Source file. |
BRam8x512x512_funcsim.v | Simulation file. |
FrameController.v | Simulation file. |
FrameController2.v | Simulation file. |
Multiplier12x12FR2_funcsim.v | Simulation file. |
参数
名字 | 类型 | 范围 | 默认值 | 说明 | work_mode | 无符号 | 0为流水线模式,1为请求响应模式 | 0 | 模块的工作模式。 |
---|---|---|---|---|
data_width | 无符号 | 1 - 12 | 8 | 数据位宽。 |
im_width | 无符号 | 1 - 4096 | 320 | 图像宽度。 |
im_height | 无符号 | 1 - 4096 | 240 | 图像高度。 |
im_width_bits | 无符号 | 取决于图像宽度 | 9 | 图像宽度的位宽。 |
mul_delay | 无符号 | 取决于乘法器配置,1-14 | 3 | 乘法器延迟。 |
ram_RL | 无符号 | 取决于帧控制器 | 7 | 帧控制器输出延迟。 |
端口
名字 | 端口 | 类型 | 范围 | 默认值 | 说明 | clk | 输入 | 无符号 | 无 | 无 | Clock. |
---|---|---|---|---|---|
rst_n | 输入 | 无符号 | 无 | 无 | 复位,低有效。 |
angle | input | 无符号 | 0 - 359 | 无 | 旋转角度。 |
in_enable | 输入 | 无符号 | 无 | 无 | 输入数据使能,在流水线模式下,它是另一个复位信号,在请求响应模式下,只有在它有效的时候in_data才会被真正地改变。 |
frame_in_ready | 输入 | 无符号 | 无 | 无 | 连接到帧控制器的out_ready。 |
frame_in_data | 输入 | 无符号 | data_width - 1 : 0 | 无 | 连接到帧控制器的out_data。 |
frame_enable | output | 无符号 | 无 | 无 | 连接到帧控制器的in_enable。 |
frame_out_count_x | output | 无符号 | im_width_bits - 1 : 0 | 无 | 连接到帧控制器的in_count_x。 |
out_count_y | output | 无符号 | im_width_bits - 1 : 0 | 无 | 连接到帧控制器的in_count_y。 |
out_ready | output | 无符号 | 无 | 无 | 输出数据有效,在两种模式下,这个信号都会在out_data可以被读取的时候有效。 |
out_data | output | 无符号 | color_width - 1 : 0 | 无 | 输出数据,将会和out_ready同步输出。 |
子模块
名字 | 类型 | 说明 |
---|---|---|
Sin | SinLUT | 获取角度的正弦。 |
Cos | CosLUT | 获取角度的余弦。 |
MulX1 | Multiplier13Sx20SRTT | 13位有符号数和20位有符号数的乘法器,被用于定点数的乘法。你可以自己配置这个乘法器,然后更改"mul_delay",但所有的乘法器必须拥有相同的流水线级数,并且不能更改端口的配置! |
MulX2 | Multiplier13Sx20SRTT | 13位有符号数和20位有符号数的乘法器,被用于定点数的乘法。你可以自己配置这个乘法器,然后更改"mul_delay",但所有的乘法器必须拥有相同的流水线级数,并且不能更改端口的配置! |
MulY1 | Multiplier13Sx20SRTT | 13位有符号数和20位有符号数的乘法器,被用于定点数的乘法。你可以自己配置这个乘法器,然后更改"mul_delay",但所有的乘法器必须拥有相同的流水线级数,并且不能更改端口的配置! |
MulY2 | Multiplier13Sx20SRTT | 13位有符号数和20位有符号数的乘法器,被用于定点数的乘法。你可以自己配置这个乘法器,然后更改"mul_delay",但所有的乘法器必须拥有相同的流水线级数,并且不能更改端口的配置! |
FRSX1 | FixedRoundSigned | 用于有符号浮点数的舍入。 |
FRSX2 | FixedRoundSigned | 用于有符号浮点数的舍入。 |
FRSY1 | FixedRoundSigned | 用于有符号浮点数的舍入。 |
FRSY2 | FixedRoundSigned | 用于有符号浮点数的舍入。 |
仿真
此模块的仿真只支持512x512的图像的灰度模式!
波形
流水线模式
请求响应模式
原始图像
结果图像
Conf for testing:
angle |
---|
45 |
131 |
270 |
左侧为请求响应模式下的HDL功能仿真结果,中间为流水线模式下的HDL功能仿真结果,右侧为软件仿真结果
PSNR
1-131 | 1-270 | 1-45 | Total |
---|---|---|---|
1000000.00 | 54.89 | 1000000.00 | 666684.96 |
资源消耗
512x512,色彩位宽为8。
Slice LUTs* | Slice Registers | DSP |
---|---|---|
543 | 245 | 4 |
时序
512x512,色彩位宽为8。
最大的数据路径延迟为4.414ns,所以:
FMax = 226.55MHz
感谢
用于仿真的图像:
041-マツムシソウ