FPGA键盘程序分享:key_led.prj实用指南

版权申诉
0 下载量 111 浏览量 更新于2024-10-23 收藏 4KB RAR 举报
资源摘要信息:"key_led.rar_key fpga" 从给定的文件信息中,我们可以提取以下知识点: 1. FPGA简介 FPGA(Field-Programmable Gate Array,现场可编程门阵列)是一种可以通过编程来配置的集成电路。它的基本单元包含可配置的逻辑块(CLBs),输入输出模块和可编程的互连。与传统的 ASIC(Application Specific Integrated Circuit,应用特定集成电路)相比,FPGA 允许设计者在不制造新的芯片的情况下,对电路功能进行修改。FPGA广泛应用于原型设计、测试验证、学术研究以及需要快速部署的场合。 2. FPGA中的键盘程序 键盘程序在FPGA设计中属于人机交互部分,通常需要对键盘输入进行解码以供后续处理。实现键盘功能的FPGA程序可能涉及到矩阵键盘扫描、键盘去抖动处理、按键状态记录等关键技术点。具体到本压缩包中的“key_led.prj”文件,这很可能是一个项目文件,包含了FPGA项目的配置和实现,其中“led”可能意味着将按键状态用于LED灯的控制,这在FPGA初学者中是一个非常经典和实用的练习项目。 3. FPGA开发流程 FPGA的开发流程通常包括设计输入、综合(Synthesis)、实现(Implementation,包括布局布线)、生成配置文件等步骤。在描述中提到的文件名列表,暗示了这些文件可能是FPGA开发过程中的不同阶段的产物,下面详细说明这些文件可能代表的内容: - coreconsole: 这可能是一个核心控制台文件,用于在FPGA开发环境中进行项目配置、综合和仿真设置。 - stimulus: 这个文件可能包含了测试用例或测试激励信号,用于验证FPGA设计的功能正确性。 - hdl: 这个文件夹可能包含了硬件描述语言(如VHDL或Verilog)编写的代码,是实现具体硬件功能的基础。 - constraint: 约束文件,用于定义FPGA引脚分配、时序约束等,以确保设计在特定的FPGA硬件上正确实现。 - component: 可能包含了FPGA设计中重用的模块或组件代码。 - synthesis: 这个文件夹可能包含了综合操作的脚本和中间文件,是将HDL代码转换成FPGA可以实现的网表的关键步骤。 - smartgen: 可能是一个智能生成器,用于自动化地生成一些通用代码或配置文件。 - designer: 这个文件夹可能包含了用于硬件设计的图形界面文件或配置文件,如Xilinx的Vivado设计套件中的项目文件。 - phy_synthesis: 这个文件夹可能与物理综合相关,即在逻辑综合后进行物理布局和布线的过程。 4. 文件组织和项目结构 在FPGA开发项目中,良好的文件组织是必不可少的。通常,会有一个项目文件夹,其中包含若干子文件夹,每个子文件夹都有其特定用途。例如,HDL文件通常会被组织在一个专门的文件夹中,便于管理和维护。约束文件和综合文件夹确保了设计能够正确地映射到具体的硬件资源上。测试文件和模拟文件夹则是为了验证设计的正确性。 综上所述,该压缩包文件提供了FPGA键盘程序的完整开发过程,从设计输入到最终生成可用于FPGA配置的文件。每一个文件和文件夹都具有特定的功能和用途,它们共同构成了一个完整的FPGA键盘程序设计流程。这个资源对于学习FPGA设计和实践键盘控制应用的开发者来说,无疑是一个宝贵的学习资料。

grant execute on dbms_crypto to system; declare input_string VARCHAR2 (200) := 'Secret Message'; output_string VARCHAR2(2000); encrypted_raw RAW(2000); decrypted_raw RAW(2000); num_key_bytes NUMBER := 256/8; key_bytes_raw RAW(32); encryption_type PLS_INTEGER := DBMS_CRYPTO.ENCRYPT_AES256 + DBMS_CRYPTO.CHAIN_CBC + DBMS_CRYPTO.PAD_PKCS5; begin DBMS_OUTPUT.PUT_LINE(input_string); key_bytes_raw := DBMS_CRYPTO.RANDOMBYTES(num_key_bytes); encrypted_raw := DBMS_CRYPTO.ENCRYPT ( src => UTL_I18N.STRING_TO_RAW(input_string, 'AL32UTF8'), typ => encryption_type, key => key_bytes_raw ); decrypted_raw := DBMS_CRYPTO.DECRYPT ( src => encrypted_raw, typ => encryption_type, key => key_bytes_raw ); output_string := UTL_I18N.RAW_TO_CHAR(decrypted_raw, 'AL32UTF8'); DBMS_OUTPUT.PUT_LINE(output_string); end; declare l_src_data varchar2(20); l_type pls_integer :=DBMS_CRYPTO.ENCRYPT_AES128 + DBMS_CRYPTO.CHAIN_CBC + DBMS_CRYPTO.PAD_PKCS5; l_key varchar2(20) :='0123456789123456'; l_encval raw(2000); CURSOR secret_cursor IS select phonenumber from customer; begin OPEN secret_cursor; LOOP FETCH secret_cursor INTO l_src_data; l_encval :=dbms_crypto.encrypt( src=>utl_i18n.string_to_raw(l_src_data,'AL32UTF8'), typ=>l_type, key=>utl_i18n.string_to_raw(l_key,'AL32UTF8')); DBMS_OUTPUT.PUT_LINE (l_encval); EXIT WHEN secret_cursor%NOTFOUND; END LOOP; CLOSE secret_cursor; end; declare ;_src_data row(100) :=hextoraw("190248129038903853275ijdkvjkad'); l_type pls_integer :=dbms_crypto.encrypt_aes128+ + DBMS_CRYPTO.CHAIN_CBC + DBMS_CRYPTO.PAD_PKCS5; l_key varchar2(20) :='0123456789123456'; l_decval raw(200); begin l_decval :=dbms_crypto.decrypt( src=>l_src_data, typ=>l_type, key=>utl_i18n.string_to_raw(l_key,'AL32UTF8')); end; SELECT Price FROM PRODUCT WHERE ProductID = 5;修正这一段代码

107 浏览量
129 浏览量

grant execute on dbms_crypto to system; -- 第一个代码块 declare input_string VARCHAR2 (200) := 'Secret Message'; output_string VARCHAR2(2000); encrypted_raw RAW(2000); decrypted_raw RAW(2000); num_key_bytes NUMBER := 256/8; key_bytes_raw RAW(32); encryption_type PLS_INTEGER := DBMS_CRYPTO.ENCRYPT_AES256 + DBMS_CRYPTO.CHAIN_CBC + DBMS_CRYPTO.PAD_PKCS5; begin DBMS_OUTPUT.PUT_LINE(input_string); key_bytes_raw := DBMS_CRYPTO.RANDOMBYTES(num_key_bytes); encrypted_raw := DBMS_CRYPTO.ENCRYPT(src => UTL_I18N.STRING_TO_RAW(input_string, 'AL32UTF8'), typ => encryption_type, key => key_bytes_raw); decrypted_raw := DBMS_CRYPTO.DECRYPT(src => encrypted_raw, typ => encryption_type, key => key_bytes_raw); output_string := UTL_I18N.RAW_TO_CHAR(decrypted_raw, 'AL32UTF8'); DBMS_OUTPUT.PUT_LINE(output_string); end; -- 第二个代码块 declare l_src_data varchar2(20); l_type pls_integer := DBMS_CRYPTO.ENCRYPT_AES128 + DBMS_CRYPTO.CHAIN_CBC + DBMS_CRYPTO.PAD_PKCS5; l_key varchar2(20) := '0123456789123456'; l_encval raw(2000); cursor secret_cursor is select phonenumber from customer; begin open secret_cursor; loop fetch secret_cursor into l_src_data; exit when secret_cursor%notfound; l_encval := dbms_crypto.encrypt(src => utl_i18n.string_to_raw(l_src_data,'AL32UTF8'), typ => l_type, key => utl_i18n.string_to_raw(l_key,'AL32UTF8')); dbms_output.put_line(l_encval); end loop; close secret_cursor; end; -- 第三个代码块 declare l_src_data raw(100) := hextoraw('190248129038903853275ijdkvjkad'); l_type pls_integer := DBMS_CRYPTO.ENCRYPT_AES128 + DBMS_CRYPTO.CHAIN_CBC + DBMS_CRYPTO.PAD_PKCS5; l_key varchar2(20) := '0123456789123456'; l_decval raw(200); begin l_decval := dbms_crypto.decrypt(src => l_src_data, typ => l_type, key => utl_i18n.string_to_raw(l_key,'AL32UTF8')); end; -- SQL 查询语句 SELECT Price FROM PRODUCT WHERE ProductID = 5;declare * ERROR at line 18: ORA-06550: line 18, column 1: PLS-00103: Encountered the symbol "DECLARE"报错

204 浏览量