An image watermarking tool designed to be run on a Nexys FPGA board while utilizing a softcore 32-bit MIPS processor. It outputs the watermarked image to VGA.
Report: https://docs.google.com/document/d/1GC-dp1_2LBRvRK9D-Qm_UGnKsI6Cl1z8ytL7r9njO7Y/edit?usp=sharing
Slides: https://docs.google.com/presentation/d/1RRghf2R7uE7MKgTz-8tXAMK0WJGQOxzPDTWaPTrblRY/edit?usp=sharing
- Run Vivado 2018.3 (or greater)
- Open project -> ImageWatermark/FPGA/watermark/vivado/MIPS.xpr
- Select -> Open Hardware Manager
- Select -> Connect
- Select -> Program Device
- Connect FPGA's VGA port to a monitor
- Switch J15 controls which image is selected
- Switch L16 controls which watermark is selected
- Open ImageWatermark/Images/image_convert.m in MATLAB
- Change the file input name and the destination name
- Open project -> ImageWatermark/FPGA/watermark/vivado/MIPS.xpr
- Add your MATLAB generated *.mem file to the project
- Other *.mem files are located -> ImageWatermark/FPGA/vga
- To create custom programs, design MIPS assembly to run in SPIM or QtSPIM
- Test code is located -> ImageWatermark/FPGA/processor/setup
- Convert your program to hexadecimal (http://www.kurtm.net/mipsasm/index.cgi)
- Paste the hexadecimal code between a 'begin' and 'end' statement (see text files under /setup)
- Run the following command: "python convert_inst.py <YOUR_FILE_NAME.txt>"
- Paste the generated Verilog code -> ImageWatermark/FPGA/processor/inst_memory.v
- Jacob London
- Paul Barrameda
- Dylan Reyes
- Tiffany Dewitt
- Devin Kawamoto-Kindred
- Dr. Mohamed Aly