基于Verilog HDL设计简易8位频率计

版权申诉
5星 · 超过95%的资源 2 下载量 92 浏览量 更新于2024-11-14 2 收藏 2.9MB ZIP 举报
资源摘要信息:"本实验报告详细介绍了如何使用Verilog HDL(硬件描述语言)设计一个简易的8位数字显示频率计。该频率计能够对10Hz至10MHz范围内的方波信号进行测试,且具备复位功能。在设计过程中,采用了分层次、分模块的方法,确保了设计的模块化和可重用性。实验报告包含了设计要求、设计思路、模块划分、Verilog代码实现、测试仿真程序以及实验结果分析等重要部分。" 知识点详细说明: 1. 频率计的概念及应用 频率计是一种用于测量周期性电信号频率的电子仪器。在本项目中,设计的是一个数字式频率计,它可以将输入信号的频率转换为数字形式,并通过8位数字显示出来。 2. Verilog HDL基础 Verilog HDL是一种硬件描述语言,广泛应用于电子系统设计中。它允许设计师以文本形式描述数字逻辑电路,并且可以用于仿真、测试以及实现到FPGA或ASIC中。Verilog代码通常分为模块,每个模块对应电路中的一个功能单元。 3. 8421BCD码 BCD码(Binary-Coded Decimal)是一种二进制编码形式,用于表示十进制数字。8421BCD码中的每一位表示一个十进制数的权值(8、4、2、1),每四位二进制数可以表示一个十进制数的0到9。 4. 分层次、分模块设计方法 在数字逻辑设计中,分层次和分模块的方法可以使设计更易于管理和修改。这种方法将复杂的系统分解成多个更小、更易管理的部分,每个部分可以独立设计、测试和验证,从而提高设计的效率和可靠性。 5. 电路输入基准时钟的概念 基准时钟是数字电路中一个重要的概念,它提供了一个时间基准,使电路能够按照预定的频率运行。在这个项目中,输入的基准时钟为1Hz,意味着每秒钟有一个脉冲信号。 6. 方波信号测试 方波是一种基本的数字信号波形,它交替在两个固定电平之间变化。在本频率计设计中,需要对频率范围为10Hz至10MHz的方波信号进行测量。 7. 复位键的功能 在数字电路设计中,复位键通常用于将电路状态恢复到初始状态。这对于确保电路可靠工作和简化故障排除过程是至关重要的。 8. 测试仿真程序的编写 在硬件设计过程中,仿真是一种验证设计是否正确的重要手段。通过编写测试仿真程序,设计师可以在实际硬件实现之前测试和验证电路的行为是否符合预期。 9. 数字显示与频率测量 数字显示通常用于直观地显示电路的输出结果。在频率计的设计中,需要将测量到的频率值转换为8421BCD码,并输出到8位数字显示器上,以便观察和记录。 10. Verilog代码的实现及模块划分 在设计过程中,需要编写各个模块的Verilog代码,并将其集成到整个系统中。主要模块可能包括时钟分频器、计数器、BCD编码器等。 通过对本实验报告的深入分析和总结,可以了解到频率计设计的整个流程,包括设计要求、模块划分、代码编写、仿真测试以及结果分析。这个过程中涵盖的知识点对于理解数字逻辑设计、Verilog HDL编程以及数字系统测试具有重要意义。

请帮我看看这个sql语句是否正确,并改正:select a.ebeln, a.ebelp, a.art, a.kdauf, a.zbw, a.size1, a.txz01, a.menge, b.quantity, (a.menge - b.quantity) as OWE_MATERIAL, ( select sum(THIS_PLAN_QTY) as HAVE_PLAN , a.ebeln , a.ebelp , a.kdauf from SCM_OUTSOURCE_PRODUCTION_PLAN_LIST c , SCM_PROCESS_PURCHASE_ORDER_D a group by c.order_no , c.order_seq , c.sales_order , a.ebeln , a.ebelp , a.kdauf having c.order_no = a.ebeln And c.order_seq = a.ebelp And c.sales_order = a.kdauf ) , ( select a.menge - t.HAVE_PLAN as OWN_PLAY from (select sum(THIS_PLAN_QTY) as HAVE_PLAN , c.order_no , c.order_seq , c.sales_order from SCM_OUTSOURCE_PRODUCTION_PLAN_LIST c , SCM_PROCESS_PURCHASE_ORDER_D a group by c.order_no , c.order_seq , c.sales_order , a.ebeln , a.ebelp , a.kdauf having c.order_no = a.ebeln And c.order_seq = a.ebelp And c.sales_order = a.kdauf ) t , SCM_PROCESS_PURCHASE_ORDER_D a where a.ebeln = t.order_no and a.ebelp = t.order_seq and a.menge = t.sales_order ) , d.scan_qty, (d.quantity - d.scan_qty) as OWN_PRODUCE, e.scan_qty, (e.quantity - e.scan_qty) as OWE_SHIP from SCM_PROCESS_PURCHASE_ORDER_D a left join MMS_INOUT_BILL_M b On a.ebeln = b.purchase_order_number And a.ebelp = b.purchase_order_seq And a.kdauf = b.sales_order left join SCM_OUTSOURCE_PRODUCTION_PLAN_LIST c on a.ebeln = c.order_no And a.ebelp = c.order_seq And a.kdauf = c.sales_order left join SCM_PROCESS_OUTPUT d on a.ebeln = d.order_no And a.ebelp = d.order_seq And a.kdauf = d.sales_order left join SCM_OUTSOURCE_SHIP e on a.ebeln = e.qr_code and a.ebelp = e.order_no and a.kdauf = e.order_seq where a.art = 'IE7181' Order by a.ebeln desc, a.ebelp;

2023-05-24 上传
2023-06-10 上传
2023-07-17 上传

将#!/usr/bin/env python2.7 -- coding: UTF-8 -- import time import cv2 from PIL import Image import numpy as np from PIL import Image if name == 'main': rtsp_url = "rtsp://127.0.0.1:8554/live" cap = cv2.VideoCapture(rtsp_url) #判断摄像头是否可用 #若可用,则获取视频返回值ref和每一帧返回值frame if cap.isOpened(): ref, frame = cap.read() else: ref = False #间隔帧数 imageNum = 0 sum=0 timeF = 24 while ref: ref,frame=cap.read() sum+=1 #每隔timeF获取一张图片并保存到指定目录 #"D:/photo/"根据自己的目录修改 if (sum % timeF == 0): # 格式转变,BGRtoRGB frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) # 转变成Image frame = Image.fromarray(np.uint8(frame)) frame = np.array(frame) # RGBtoBGR满足opencv显示格式 frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR) imageNum = imageNum + 1 cv2.imwrite("/root/Pictures/Pictures" + str(imageNum) + '.png', frame) print("success to get frame") #1毫秒刷新一次 k = cv2.waitKey(1) #按q退出 #if k==27:则为按ESC退出 if k == ord('q'): cap.release() break和#!/usr/bin/env python2.7 coding=UTF-8 import os import sys import cv2 from pyzbar import pyzbar def main(image_folder_path, output_file_name): img_files = [f for f in os.listdir(image_folder_path) if f.endswith(('.png'))] qr_codes_found = [] print("Image files:") for img_file in img_files: print(img_file) for img_file in img_files: img_path = os.path.join(image_folder_path,img_file) img = cv2.imread(img_path) barcodes = pyzbar.decode(img) for barcode in barcodes: if barcode.type == 'QRCODE': qr_data = barcode.data.decode("utf-8") qr_codes_found.append((img_file, qr_data)) unique_qr_codes = [] for file_name, qr_content in qr_codes_found: if qr_content not in unique_qr_codes: unique_qr_codes.append(qr_content) with open(output_file_name,'w') as f: for qr_content in unique_qr_codes: f.write("{}\n".format(qr_content)) if name == "main": image_folder_path = '/root/Pictures' output_file_name = 'qr_codes_found.txt' main(image_folder_path,output_file_name)合并一下

2023-07-14 上传