当前位置:文档之家› SOPC自定义元件的添加及运行

SOPC自定义元件的添加及运行

SOPC自定义元件的添加及运行
SOPC自定义元件的添加及运行

SOPC自定义元件的添加及运行

Nios II 嵌入式系统驱动设计(二)

在SOPC中自定义元件的端口设置解析中讲述了自定义元件的端口设置,在本文中将详细讲述如何将自定义元件嵌入SOPC Builder中,以及将该元件加入SOPC系统,并通过运行软件测试该元件性能。

新建一个文件夹ip,将Ckecksum Hardware Accelerator的源文件checksu m_accelerator.v,checksum_transform.v,latency_aware_read_master.v,s lave.v复制到该文件夹下。

打开SOPC Builder,单击左上角的Create new component…,弹出如下对话框:

Introduction页面是对component editor的简单介绍。 HDL Files

单击Add…,选择刚才新建的ip文件夹,将该文件夹下的所有.v文件选中加入,component editor并会进行分析,主要是对端口的分析,将顶层文件的Top复选框打上勾。如果文件有改变可以点击Reanalyze HDL Files重新分析。

除了导入HDL文件外,component editor还提供另一种方法可以将端口exp ort到SOPC系统之外,直接在Signals页面手动加入信号或在Templates中加入已经定义好的端口信号,用户再自己修改。导入HDL文件后,Templates下拉菜单为灰色,无法加入。

Signals

这里的信号是component editor分析了HDL文件后自动从文件中提取的端口信号,用户需要设置interface,Signal Type,Width,Direction以使用户端口信号与Avalon总线信号相对应,如果用户端口信号的命名方式参考SOPC中自定义元件的端口设置解析中的要求,则component editor自动识别出相对应的信号设置。

interfaces

Interfaces的类型在SOPC中自定义元件的端口设置解析中有说明,主要有Master,sl ave,clock input等10种,在每种类型下面可以设置该类型interface的属性参数,如时序,流水线传输,interface的同步clock等。如果显示了除定义以外的interface,则点击Remove interfaces With No Signals删除。

Component Wizard

在Component Wizard中可以设置元件所属类型名称,元件显示名称,版本号等信息,点击Preview the GUI…可以预览,如果在顶层HDL文件中定义了一些P arameters,可以这里加入以便让用户在实例化时可以设置这些参数。

全部设置完后,点击Finish…在ip文件夹下产生checksum_accelerator_h w.tcl文件,该文件并是Component editor根据用户设置生成的文件,该文件提供给SOPC Builder所有需要的信息。

除了硬件文件外,为了能用软件执行给元件,需要添加软件驱动程序。在i p文件夹下新建HAL文件和inc文件,ip文件结构如下:

其中HAL文件夹下的inc文件夹下包含checksum_accelerator_routines.h为软件API的头文件,HAL文件夹下的src文件夹下包含checksum_accelerator_ro utines.c为软件API的源文件,以及component.mk,该文件在编译时提供驱动程序源文件信息。在ip文件夹下的inc文件提供元件的寄存器映射(register map)文件,该文件提供软件读写元件寄存器的地址。

所有的工作完成后,将ip文件复制到QuaetusII工程目录下,打开该工程的SOPC Builder,此时在左边栏出现刚才新增的元件。

为了测试新增元件的功能,建立带有该元件的SOPC系统:

同时建立以该硬件为基础的软件工程,将文件test_checksum.c的内容复制到应用工程的源文件中,编译,下载,运行后,console窗口出现如下结果:

软件首先产生64KB的随机数,然后分别用软件cheksum和硬件checksum,输出两次checksum的结果,可以看到硬件checksum比软件checksum快了65倍,硬件加速起到了很大的作用,因此在关键算法上可以采用硬件实现,以提高速度。基于Nios II的DMA传输总结(附源码)

Nios II中的DMA传输有以下三种形式:

1、存储器到存储器

这种情况下需要同时打开发送通道和接收通道,而且源地址和目标地址都是自增的。

tx = alt_dma_txchan_open("/dev/dma_0");//打开发送通道

dma_res = alt_dma_txchan_send(tx, tx_buf, 32, NULL, NULL); // tx _buf是源地址

rx = alt_dma_rxchan_open("/dev/dma_0");//打开接收通道

dma_res = alt_dma_rxchan_prepare(rx, rx_buf, 32, dma_done, NULL); // rx_buf是目标地址,dma_done()是DMA完成后被调用的回调函数。

2、存储器到外设

这种情况下只要打开发送通道,而且源地址是自增的,目标地址是固定的。

tx = alt_dma_txchan_open("/dev/dma_0"); // 打开发送通道

alt_dma_txchan_ioctl(tx, ALT_DMA_TX_ONLY_ON, (void *)dst_addr); / / dst_addr是目标地址

dma_res = alt_dma_txchan_send(tx, tx_buf, 32, dma_done, NULL); // tx_buf是源地址

3、外设到存储器

这种情况下只要打开接收通道,而且源地址是固定的,目标地址是自增的。

rx = alt_dma_rxchan_open("/dev/dma_0"); // 打开接收通道

alt_dma_rxchan_ioctl(rx, ALT_DMA_RX_ONLY_ON, (void *)source_addr); // source_addr是源地址

dma_res = alt_dma_rxchan_prepare(rx, rx_buf, 32, dma_done, NULL); // rx_buf是目标地址

其中通过alt_dma_txchan_ioctl,alt_dma_rxchan_ioctl还可以设置每次发送和接收的字节数。

下面给出两个实例,说明DMA传输的过程。

1、存储器到存储器

下面程序为SDRAM到onchip-memory的数据传输。

硬件连接图示:

程序如下:

#include

#include

#include

#include"system.h"

static volatile int rx_done = 0;

int rc;

alt_dma_txchan txchan;

alt_dma_rxchan rxchan;

static char buff[256];

void* tx_data = (void*) buff; /* 源地址 */

void* rx_buffer = (void*) 0x01801000; /* 目标地址,从上图看到0x01801000为onchip-memory的地址*/

//DMA传输结束回调函数

static void done_t(void* handle, void* data)

{

rx_done++;

}

int main (int argc, char* argv[], char* envp[])

{

/* 打开发送通道 */

if ((txchan = alt_dma_txchan_open("/dev/dma")) == NULL) {

printf ("Failed to open transmit channel\n");

exit (1);

}

/* 打开接收通道 */

if ((rxchan = alt_dma_rxchan_open("/dev/dma")) == NULL) {

printf ("Failed to open receive channel\n");

exit (1);

}

/* 开始发送数据 */

if ((rc = alt_dma_txchan_send (txchan,

tx_data,

128,

NULL,

NULL)) < 0)

{

printf ("Failed to post transmit request, reason = %i\n", rc); exit (1);

}

/* 开始接收数据*/

if ((rc = alt_dma_rxchan_prepare (rxchan,

rx_buffer,

128,

done_t,

NULL)) < 0)

{

printf ("Failed to post read request, reason = %i\n", rc);

exit (1);

}

/* 等待传输结束 */

while (!rx_done);

printf ("Transfer successful!\n");

return 0;

}

程序运行结束后在Nios IDE的console界面中显示:Transfer successful!

表明传输成功。

2、存储器到UART

下面程序为SDRAM到UART的数据传输

硬件连接图:

程序如下:

#include

#include

#include"sys/alt_dma.h"

#include"altera_avalon_uart_regs.h"

#include"system.h"

#include"alt_types.h"

static volatile int tx_done = 0;

volatile static alt_u8 chr[20] = {1,2,3,4,6,5,7,8,9,10,11,12,13,14,15, 16,17,18,19,20} ;//待发送的数据

//回调函数

static void done (void* handle)

{

tx_done++;

}

int main()

{

int rc;

alt_dma_txchan txchan;

void* source_buff_ptr = (void*) chr; /* 源地址 */

void* destination_buff_ptr = (void*)IOADDR_ALTERA_AVALON_UART_TXDATA (UART_BASE); /* 目标地址IOADDR_ALTERA_AVALON_UART_TXDATA(UART_BASE)函数读出txdata的地址 */

/* 打开发送通道 */

if ((txchan = alt_dma_txchan_open("/dev/dma")) == NULL)

{

printf ("Failed to open transmit channel\n");

exit (1);

}

/* 设置目标地址固定 */

if ((rc = alt_dma_txchan_ioctl(txchan, ALT_DMA_TX_ONLY_ON, destination _buff_ptr)) < 0)

{

printf ("Failed to set ioctl, reason = %i\n", rc);

exit (1);

}

//设置每次发送一个字节,即8位,因为UART每次只发送8位

if((rc = alt_dma_txchan_ioctl(txchan,ALT_DMA_SET_MODE_8 ,NULL))<0)

{

printf("Failed to set mode 8\n");

exit(1);

}

/* 开始发送 */

if ((rc = alt_dma_txchan_send(txchan, source_buff_ptr, 20, done, NULL)) < 0)

{

printf ("Failed to post transmit request, reason = %i\n", rc);

exit (1);

}

/* 等待发送结束 */

while (!tx_done);

printf ("Transfer successful!\n");

return 0;

}

不过该程序执行结束后,在串口调试器中显示Transfer successful!,却没有显示DMA发送的那20个数字。不知道哪里需要修改,放在这里和大家讨论下。

proteus常用元件汇总

proteus常用元件 2009-05-14 20:20 AND 与门 ANTENNA 天线 BATTERY 直流电源 BELL 铃,钟 BVC 同轴电缆接插件 BRIDEG 1 整流桥(二极管) BRIDEG 2 整流桥(集成块) BUFFER 缓冲器 BUZZER 蜂鸣器 CAP 电容 CAPACITOR 电容 CAPACITOR POL 有极性电容 CAPVAR 可调电容 CIRCUIT BREAKER 熔断丝 COAX 同轴电缆 CON 插口 CRYSTAL 晶体整荡器 DB 并行插口 DIODE 二极管 DIODE SCHOTTKY 稳压二极管 DIODE VARACTOR 变容二极管 DPY_3-SEG 3段LED DPY_7-SEG 7段LED DPY_7-SEG_DP 7段LED(带小数点) ELECTRO 电解电容 FUSE 熔断器 INDUCTOR 电感 INDUCTOR IRON 带铁芯电感 INDUCTOR3 可调电感 JFET N N沟道场效应管 JFET P P沟道场效应管 LAMP 灯泡 LAMP NEDN 起辉器 LED 发光二极管 METER 仪表

MICROPHONE 麦克风 MOSFET MOS管 MOTOR AC 交流电机 MOTOR SERVO 伺服电机 NAND 与非门 NOR 或非门 NOT 非门 NPN NPN三极管 NPN-PHOTO 感光三极管 OPAMP 运放 OR 或门 PHOTO 感光二极管 PNP 三极管 NPN DAR NPN三极管 PNP DAR PNP三极管 POT 滑线变阻器 PELAY-DPDT 双刀双掷继电器 RES1.2 电阻 RES3.4 可变电阻 RESISTOR BRIDGE ? 桥式电阻 RESPACK ? 电阻 SCR 晶闸管 PLUG ? 插头 PLUG AC FEMALE 三相交流插头 SOCKET ? 插座 SOURCE CURRENT 电流源 SOURCE VOLTAGE 电压源 SPEAKER 扬声器 SW ? 开关 SW-DPDY ? 双刀双掷开关 SW-SPST ? 单刀单掷开关 SW-PB 按钮 THERMISTOR 电热调节器 TRANS1 变压器 TRANS2 可调变压器 TRIAC ? 三端双向可控硅 TRIODE ? 三极真空管

用户定义数据类型与自定义函数

数据库系统原理实验报告 实验名称:__用户定义数据类型与自定义函数_ 指导教师:_叶晓鸣刘国芳_____ 专业:_计算机科学与技术_ 班级:__2010级计科班_ 姓名:_文科_____学号: 100510107 完成日期:_2012年11月10日_成绩: ___ ___一、实验目的: (1)学习和掌握用户定义数据类型的概念、创建及使用方法。 (2)学习和掌握用户定义函数的概念、创建及使用方法。 二、实验内容及要求: 实验 11.1 创建和使用用户自定义数据类型 内容: (1)用SQL语句创建一个用户定义的数据类型Idnum。 (2)交互式创建一个用户定义的数据类型Nameperson。 要求: (1)掌握创建用户定义数据类型的方法。 (2)掌握用户定义数据类型的使用。 实验 11.2 删除用户定义数据类型 内容: (1)使用系统存储过程删除用户定义的数据类型Namperson。 (2)交互式删除用户定义的数据类型Idnum。 要求: (1)掌握使用系统存储过程删除用户定义的数据类型。 (2)掌握交互式删除用户定义的数据类型。 实验 11.3 创建和使用用户自定义的函数 内容: (1)创建一个标量函数Score_FUN,根据学生姓名和课程名查询成绩。 (2)创建一个内嵌表值函数S_Score_FUN,根据学生姓名查询该生所有选课的成绩。 (3)创建一个多语句表值函数ALL_Score_FUN,根据课程名查询所有选择该课程学生的成绩信息。

要求: (1)掌握创建标量值函数的方法。 (2)掌握创建内嵌表值函数的方法。 (3)掌握创建多语句表值函数的方法。 实验 11.4 修改用户定义的函数 内容: (1)交互式修改函数Score_FUN,将成绩转换为等级输出。 (2)用SQL修改函数S_Score_FUN,要求增加一输出列定义的成绩的等级。要求: (1)掌握交互式修改用户定义函数的方法。 (2)掌握使用SQL修改用户定义函数的方法。 实验 11.5 输出用户定义的函数 内容: (1)交互式删除函数Score_FUN。 (2)用SQL删除函数S_Score_FUN。 要求: (1)掌握交互式删除用户定义函数的方法。 (2)掌握使用SQL删除用户定义函数的方法。

C# 自定义控件制作和使用实例

C# 自定义控件制作和使用实例 第一步:新建一个控件库项目:myControl 第二步:从工具箱里面拖动1个PictureBox、1个Button、6个Lable控件到用户界面上,布局如下: 如上图,设置pictureBox的Name为picBox,背景为白色,Button的Name为btnOpen,

另外靠左的三个Lable的Text属性分别为:文件名称,文件大小,文件尺寸,靠右的三个Lable的Name分别为:lblName, lblLength, lblSize. 第三步:添加处理程序代码 在btnOpen的Click事件写入代码,打开一个打开文件对话框,选择一个图形文件,打开并将它显示在picBox上。 private void btnOpen_Click(object sender, EventArgs e) { OpenFileDialog ofdPic = new OpenFileDialog(); ofdPic.Filter = "JPG(*.JPG;*.JPEG);gif文件(*.GIF)|*.jpg;*.jpeg;*.gif"; ofdPic.FilterIndex = 1; ofdPic.RestoreDirectory = true; ofdPic.FileName = ""; if (ofdPic.ShowDialog() == DialogResult.OK) { string sPicPaht = ofdPic.FileName.ToString(); FileInfo fiPicInfo = new FileInfo(sPicPaht); long lPicLong = fiPicInfo.Length / 1024; string sPicName = https://www.doczj.com/doc/b3519670.html,; string sPicDirectory = fiPicInfo.Directory.ToString(); string sPicDirectoryPath = fiPicInfo.DirectoryName; Bitmap bmPic = new Bitmap(sPicPaht); if (lPicLong > 400) { MessageBox.Show("此文件大小為" + lPicLong + "K;已超過最大限制的K范圍!"); } else { Point ptLoction = new Point(bmPic.Size); if (ptLoction.X > picBox.Size.Width || ptLoction.Y > picBox.Size.Height) { picBox.SizeMode = PictureBoxSizeMode.Zoom; } else { picBox.SizeMode = PictureBoxSizeMode.CenterImage; } } picBox.LoadAsync(sPicPaht); lblName.Text = sPicName; lblLength.Text = lPicLong.ToString() + " KB"; lblSize.Text = bmPic.Size.Width.ToString() + "×" + bmPic.Size.Height.ToString(); }

(完整版)5数据完整性课后习题

习题 一、选择题 1.一个表上可以建立多个名称不同、类型各异的触发器,每个触发器可以由三个动作来引发,但是每个触发器最多只能作用于()个表上。 A.一 B.二 C.三 D.四 2.激活触发器的数据修改语句,有效选项是()。 A.INSERT B.UPDATE C.DELETE D.SELECT 3.创建触发器不需要指定的选项有()。 A.触发器的名称 B.在其上定义触发器的表 C.触发器将何时触发 D.执行触发操作的编程语句 4.当希望执行对Book表的操作时,如果该操作不执行,而是执行对PRICE 表的更新操作,则应该创建什么类型的DML 触发器()。 A.FOR B.BEFORE C.AFTER D.INSTEAD OF 5.在DML触发器工作中,有可能生成的两个内存表是()。 A.INSERTED, DELETED B.UPDATED, INSERTED C.DELETED,ADDED D.ADDED, DELETED 6.关于触发器叙述正确的是()。 A.触发器是自动执行的,可以在一定条件下触发 B.触发器不可以同步数据库的相关表进行级联更改 C.SQL Server 2008不支持DDL触发器 D.触发器不属于存储过程 7.关于约束叙述正确的是()。 A.每个约束只能作用与一个列上 B.每个约束可以作用多个列,但是必须在一个表里 C.每个约束可以作用到多个表的多个列 D.以上都不对 8.用户定义的约束,是属于()完整性。 A.用户自定义 B.实体

C.参照 D.都不是 9.下述SQL命令的短语中,定义属性上约束条件的是()。 A.NOT NULL短语 B.UNIQUE短语 C.CHECK短语 D.HA VING短语 10.下列()是对触发器的描述 A.定义了一个有相关列和行的集合 B.当用户修改数据时,一种特殊形式的存储过程被自动执行 C.SQL语句的预编译集合 D.它根据一或多列的值,提供对数据库表的行的快速访问 二、填空题 1.数据库的实体完整性要求表中所有行唯一,可通过建主码、唯一约束、唯一索引、IDENTITY标识等约束来实现。 2.数据库域完整性可保证表中指定字段中数据的正确性。要求表中指定列的数据具有正确的数据类型、格式和有效取植范围。 3.关系完整性包括实体完整性、值域完整性、参照完整性_和用户自定义完整性。4.当指定基本表中某一列或若干列为主码时,则系统将在这些列上自动建立一个非空_______、_唯一__约束和___聚集__的索引。 5. SQL Server 2008中的触发器可以分为_DML_触发器和__DDL__触发器两种。 6.在SQL Server中,通过执行 CRETAE RULE 语句创建约束,使用 SP_bindrule 存储过程绑定约束,使用 SP_unbindrule 解除绑定,使用 DROP RULE 删除规则。 7.数据库的完整性是指数据的___正确性_____ 和___相容性_____。 8.数据库完整性的定义一般由SQL的___ DDL _____语句来实现。它们作为数据库模式的一部分存入数据字典中。 9.触发器按激活的方式分为After 和Instead Of 两种触发方式。后触发器在记录已经改变完之后被激活。替代触发器在记录变更之前被激活。 10.创建触发器使用 CRETAE TRIGGER 语句。在表或视图上执行INSERT 、UPDATE 和DELETE 语句可以激活触发器。 11.SQL Server为每一个触发器创建了两个inserted 和deleted 临时表。在触发器触发时时候创建,在触发器的工作完成之后时候删除。 三、问答题 1.试述关系模型的完整性规则。在参照完整性中,为什么外码属性的值也可以为空?什么情况下才可以为空? 解答: 关系模型的完整性规则是对关系的某种约束条件。关系模型中可以有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动支持。1) 实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值。2)参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:等于S中某个元组的主码值或者取空值(F的每个属性值均为空值);3)用户定义的完整性是针对某一具体关系数据库的约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求。在

FPGA习题集及参考答案

习题集及参考答案 一、填空题 1.一般把EDA技术的发展分为()个阶段。 2.FPGA/CPLD有如下设计步骤:①原理图/HDL文本输入、②适配、③功能仿真、④综合、 ⑤编程下载、⑥硬件测试,正确的设计顺序是①()⑤⑥。 3.在EDA工具中,能完成在目标系统器件上布局布线的软件称为()。 4.设计输入完成之后,应立即对文件进行()。 5.基于硬件描述语言的数字系统设计目前最常用的设计方法称为()设计法。 6.将硬件描述语言转化为硬件电路的过程称为()。 7.IP核在EDA技术和开发中具有十分重要的地位,以HDL方式提供的IP被称为() IP。 8.SOC系统又称为()系统。SOPC系统又称为()系统。 9.将硬核和固核作为()IP核,而软核作为()IP核。 10.IP核在EDA技术和开发中具有十分重要的地位,以HDL方式提供的IP被称为()。 11.HDL综合器就是逻辑综合的过程,把可综合的VHDL/Verilog HDL转化成硬件电路时, 包含了三个过程,分别是()、()、()。 12.EDA软件工具大致可以由五个模块构成,分别是设计输入编辑器、()、()、 ()和()。 13.按仿真电路描述级别的不同,HDL仿真器分为()仿真、()仿真、() 仿真和门级仿真。 14.系统仿真分为()、()和()。 15.()仿真是对设计输入的规范检测,这种仿真通过只能表示编译通过,说明设计 满足一定的语法规范,但不能保证设计功能满足期望。 16.()仿真是对综合后的网表进行的仿真,它验证设计模块的基本逻辑功能,但不 带有布局布线后产生的时序信息,是理想情况下的验证。 17.()仿真是布局布线后进行的后仿真,仿真时考虑了布线延时,和芯片实际的工 作情况更加接近。 18.目前Xilinx公司生产的FPGA主要采用了()配置存储器结构。 19.描述测试信号的变化和测试工程的模块叫做()。 20.现代电子系统设计领域中的EDA采用()的设计方法。 21.有限状态机可分为()状态机和()状态机两类。 22.Verilog HDL中的端口类型有三类:()、()、输入/输出端口。 23.Verilog HDL常用两大数据类型:()、()。 24.FPGA / CPLD设计流程为:原理图/HDL文本输入→()→综合→适配→()→ 编程下载→硬件测试。 25.()是描述数据在寄存器之间流动和处理的过程。 26.连续赋值常用于数据流行为建模,常以()为关键词。 27.Verilog HDL有两种过程赋值方式:()和()。 28.`timescale 1ns/100ps中1ns代表(),100ps代表()。 29.未来的集成电路技术的发展趋势,把整上系统集成在一个芯片上去,这种芯片被称为 ()。 30.从互连结构上可将PLD分为确定型和统计型两类。确定型结构的代表是(),

proteus 常用元件符号

自己收集的一些资料都给你得了: 原理图常用库文件: Miscellaneous Devices.ddb Dallas Microprocessor.ddb Intel Databooks.ddb Protel DOS Schematic Libraries.ddb PCB元件常用库: Advpcb.ddb General IC.ddb Miscellaneous.ddb 分立元件库 部分分立元件库元件名称及中英对照 AND 与门 ANTENNA 天线 BATTERY 直流电源 BELL 铃,钟 BVC 同轴电缆接插件 BRIDEG 1 整流桥(二极管) BRIDEG 2 整流桥(集成块) BUFFER 缓冲器 BUZZER 蜂鸣器 CAP 电容 CAPACITOR 电容 CAPACITOR POL 有极性电容 CAPVAR 可调电容 CIRCUIT BREAKER 熔断丝 COAX 同轴电缆 CON 插口 CRYSTAL 晶体整荡器 DB 并行插口 DIODE 二极管 DIODE SCHOTTKY 稳压二极管 DIODE VARACTOR 变容二极管 DPY_3-SEG 3段LED DPY_7-SEG 7段LED DPY_7-SEG_DP 7段LED(带小数点) ELECTRO 电解电容 FUSE 熔断器

INDUCTOR 电感 INDUCTOR IRON 带铁芯电感INDUCTOR3 可调电感 JFET N N沟道场效应管 JFET P P沟道场效应管 LAMP 灯泡 LAMP NEDN 起辉器 LED 发光二极管 METER 仪表 MICROPHONE 麦克风MOSFET MOS管 MOTOR AC 交流电机 MOTOR SERVO 伺服电机NAND 与非门 NOR 或非门 NOT 非门 NPN NPN三极管 NPN-PHOTO 感光三极管OPAMP 运放 OR 或门 PHOTO 感光二极管 PNP 三极管 NPN DAR NPN三极管 PNP DAR PNP三极管 POT 滑线变阻器 PELAY-DPDT 双刀双掷继电器RES1.2 电阻 RES3.4 可变电阻 RESISTOR BRIDGE ? 桥式电阻RESPACK ? 电阻 SCR 晶闸管 PLUG ? 插头 PLUG AC FEMALE 三相交流插头SOCKET ? 插座 SOURCE CURRENT 电流源SOURCE VOLTAGE 电压源SPEAKER 扬声器 SW ? 开关 SW-DPDY ? 双刀双掷开关 SW-SPST ? 单刀单掷开关 SW-PB 按钮 THERMISTOR 电热调节器

vb用户自定义的数据类型

用户自定义的数据类型------记录 保存多个相同或不同类型数值的结构称为记录(record)。 在VISUAL BASIC 中定义记录,用Type语句,其语法如下: Type varType Variable1 As varType Variable2 As varType … Variablen As varType End Type 例如定义一个名为CheckRecord的记录: Type CheckRecord CheckNumber as Integer CheckDate as Date CheckAmount as Single End Type CheckRecord结构可以像普通变量类型一样使用。要定义这个类型的变量,使用如下语句: Dim check1 As CheckRecord 要对结构的各个字段访问,可使用如下语句: check1. CheckNumber=123 check1. CheckDate=#08/14/1996# check1. CheckAmount=240.00 例: 简单例(自定义类型1.frm) 数组自定义类型1.FRM 用一维数组存放学生年龄。并可通过学生姓名输入或显示该学生的年龄。 Private Type StudentInformation StudentAge As Integer StudentName As String End Type Dim N As Boolean Dim Information(1 To 4) As StudentInformation Dim infIndex As Integer Dim stuName As String Private Sub cmdInputname_Click() For i = 1 To 4 Information(i).StudentName = InputBox("PL input name") Next i End Sub Private Sub cmdInput_Click() infIndex = 1 N = False

[C#] - 用户自定义控件(含源代码)-透明文本框=

[C#] - 用户自定义控件(含源代码)-透明文本框透明文本框 由于在https://www.doczj.com/doc/b3519670.html,只能下载*.dll的文件,没有代码,所以特意发出源代码。 using System; using System.Collections; using https://www.doczj.com/doc/b3519670.html,ponentModel; using System.Drawing; using System.Data; using System.Windows.Forms; using System.Drawing.Imaging; namespace ZBobb { ///

/// AlphaBlendTextBox: A .Net textbox that can be translucent to the background. /// (C) 2003 Bob Bradley / ZBobb@https://www.doczj.com/doc/b3519670.html, /// public class AlphaBlendTextBox : System.Windows.Forms.TextBox { #region private variables private uPictureBox myPictureBox; private bool myUpToDate = false; private bool myCaretUpToDate = false; private Bitmap myBitmap; private Bitmap myAlphaBitmap; private int myFontHeight = 10; private System.Windows.Forms.Timer myTimer1; private bool myCaretState = true; private bool myPaintedFirstTime = false; private Color myBackColor = Color.White; private int myBackAlpha = 10; /// /// Required designer variable. /// private https://www.doczj.com/doc/b3519670.html,ponentModel.Container components = null; #endregion// end private variables #region public methods and overrides public AlphaBlendTextBox() { // This call is required by the Windows.Forms Form Designer. InitializeComponent(); // TODO: Add any initialization after the InitializeComponent call this.BackColor = myBackColor; this.SetStyle(https://www.doczj.com/doc/b3519670.html,erPaint, false); this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); this.SetStyle(ControlStyles.DoubleBuffer, true);

实验十 用户自定义完整性

实验十用户自定义完整性 1、实验目的 学习用户自定义约束,并实践用户自定义完整性,利用SQL语言用短语NOT NULL、UNIQUE、CHECK保证用户定义完整性。 2、实验内容(建议将表改成Teachers,相应属性以T开始命名,如Tname)建 立Teacher表。 建立表Teacher,注意跟前面所建立的Teacher区分开来, (1)创建Worker,Teacher表,并自定义2个约束U1以及U2,其中U1规定 Wname Tname字段唯一,U2规定Wage, Tage (级别)字段的上限是28。 (2)在Worker, Teacher表中插入一条合法记录。 (3)演示插入违反U2约束的例子,U2规定元组的Wage,Tage属性的值必须 <=28。 (4)去除U2约束。 (5)重新插入(3)中想要插入的数据,由于去除了U2约束,所以插入成功。 (6)创建规则Rule_sex,规定插入或更新的值只能是M或F,并绑定到Worker Teacher的Wsex Tsex字段。 (7)演示违反规则Rule_sex的插入操作。 3、实验步骤 以系统管理员或sa帐号登录到SSMS,在新建查询窗口下输入如下命令,运行并观察结果。 (1) 在新建查询窗口中输入如下SQL语句: USE University_Mis CREATE TABLE Teacher( Tno CHAR(5), Tname CHAR(8) CONSTRAINT U1 UNIQUE, Tsex CHAR(1), Tage INT CONSTRAINT U2 CHECK (Tage<=28), Tdept CHAR(20), CONSTRAINT PK_Teacher PRIMARY KEY(Tno))

EDA技术课后参考答案

第一章 的英文全称及其中文含义是什么? 答:EDA是Electronic Design Automation,其中文含义是“电子设计自动化”。 2.什么叫EDA技术?简述EDA技术的发展历程。 答:EDA技术有狭义和广义之分,狭义EDA技术就是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术,或称为IES/ASIC自动设计技术。 3.简述用EDA技术设计电路的设计流程。 答 EDA设计流程包括:设计准备、设计输入、设计处理、设计校验、器件编程、器件测试和设计验证。 4.什么叫”综合”和”网表文件”? 答: (A)在电子设计领域中综合的概念可以表示为:将用行为和功能层次表达的电子系统转换为低层次的便于具体实现的模块组合装配的过程。(1)从自然语言转换到 VHDL 语言算法表示,即自然语言综合。(2)从算法表示转换到寄存器传输级(RegisterTransport Level,RTL),即从行为域到结构域的综合,即行为综合。(3)从 RTL 级表示转换到逻辑门(包括触发器)的表示,即逻辑综合。(4)从逻辑门表示转换到版图表示(ASIC 设计),或转换到 FPGA 的配置网表文件,可称为版图综合或结构综合。综合在电子设计自动化中处于核心地位。 (B)网表文件是描述电路的连接关系的文件,一般以文本文件的形式存在。英文为netlist file格式有cdl, spice, aucdl...等 5.从使用的角度来讲,EDA技术主要包括几个方面的内容?这几个方面在整个电子系统的设计中分别起什么作用? 答: EDA技术的学习主要应掌握4个方面的内容:① 大规模可编程逻辑器件;② 硬件描述语言;③ 软件开发工具;④ 实验开发系统。 6.目前流行的主流厂家的EDA的软件工具有哪些?比较这些EDA软件的差异。 答: (1)目前比较流行的主流厂家的EDA的软件工具有Altera的MAX+plus II、Quartus II 、Lattice的ispEXPERT、Xilinx的Foundation Series。 (2)Max+plus II 是A1tera公司推出的一个使用非常广泛的EDA软件工具,它支持原理图、VHDL和Verilog语言的文本文件,以及波形图与EDIF等格式的文件作为设计输入,并支持这些文件的任意混合设计。它具有门级仿真器,可以进行功能仿真和时序仿真,能够产生精确的仿真结果。在适配之后,Max+plus II生成供时序仿真用的Edif、VHDL和Verilog 3种不同格式的网表文件。Max+plus II界面友好,使用便捷,被誉为业界最易学易用的EDA 软件,并支持主流的第三方EDA工具,支持除APEx20K系列之外的所有A1tera公司的FPGA /CPLD大规模逻辑器件。 Quartus II是A1tera公司新近推出的EDA软件工具,其设计工具完全支持VHDL和Verilog 的设计流程,其内部嵌有VHDL、Verilog逻辑综合器。第三方的综合工具,如Leonardo Spectrum、Synplify pro和FPGA Compiler II有着更好的综合效果,Quartus II可以直接

proteus元件对照表(经典详细)

proteus常用元件中英文对照表元件名称中文名说明 7407 驱动门 1N914 二极管 74Ls00 与非门 74LS04 非门 74LS08 与门 74LS390 TTL 双十进制计数器 7SEG 4针BCD-LED 输出从0-9 对应于4根线的BCD码 7SEG 3-8译码器电路BCD-7SEG转换电路 ALTERNATOR 交流发电机 AMMETER-MILLI mA安培计 AND 与门 BATTERY 电池/电池组 BUS 总线 CAP 电容 CAPACITOR 电容器 CLOCK 时钟信号源 CRYSTAL 晶振 D-FLIPFLOP D触发器 FUSE 保险丝 GROUND 地 LAMP 灯 LED-RED 红色发光二极管 LM016L 2行16列液晶可显示2行16列英文字符,有8位数据总线D 0-D7,RS,R/W,EN三个控制端口(共14线),工作电压为5V。没背光,和常用的1602B功能和引脚一样(除了调背光的二个线脚) LOGIC ANALYSER 逻辑分析器 LOGICPROBE 逻辑探针 LOGICPROBE[BIG] 逻辑探针用来显示连接位置的逻辑状态 LOGICSTATE 逻辑状态用鼠标点击,可改变该方框连接位置的逻辑状态 LOGICTOGGLE 逻辑触发 MASTERSWITCH 按钮手动闭合,立即自动打开

MOTOR 马达 OR 或门 POT-LIN 三引线可变电阻器 POWER 电源 RES 电阻 RESISTOR 电阻器 SWITCH 按钮手动按一下一个状态 SWITCH-SPDT 二选通一按钮 VOLTMETER 伏特计 VOLTMETER-MILLI mV伏特计 VTERM 串行口终端 Electromechanical 电机 Inductors 变压器 Laplace Primitives 拉普拉斯变换 Memory Ics Microprocessor Ics Miscellaneous 各种器件 AERIAL-天线;ATAHDD;ATMEGA64;BATTERY;CELL;CRYSTAL-晶振;FUSE;METER-仪表; Modelling Primitives 各种仿真器件是典型的基本元器模拟,不表示具体型号,只用于仿真,没有PCB Optoelectronics 各种发光器件发光二极管,LED,液晶等等 PLDs & FPGAs Resistors 各种电阻 Simulator Primitives 常用的器件 Speakers & Sounders Switches & Relays 开关,继电器,键盘 Switching Devices 晶阊管 Transistors 晶体管(三极管,场效应管) TTL 74 series TTL 74ALS series TTL 74AS series TTL 74F series TTL 74HC series TTL 74HCT series

FPGA试卷+答案+超详细解答

20XX—20XX学年度第(X)学期期末考试试卷科目:<>(X)卷 考试形式:闭卷考试时间:100 分钟 院(系)别、班级:姓名:学号: 试题区:(试题区必须与答题区同时交回,含答题纸、试题纸、草稿纸的装订试卷不能分拆)一、单项选择题:(20分) 1.在VHDL语言中,下列对进程(PROCESS)语句的语句结构及语法规则的描述中,不正确的是___C___。 A.PROCESS为一无限循环语句;敏感信号发生更新时启动进程,执行完成后, 等待下一次进程启动。 B.敏感信号参数表中,不一定要列出进程中使用的所有输入信号; C.进程由说明部分、结构体部分、和敏感信号三部分组成; (进程由声明语句、顺序语句、敏感信号列表组成) D.当前进程中声明的变量不可用于其他进程。 2.在一个VHDL设计中idata是一个信号,数据类型为integer,数据范围0 to 127,下面哪个赋值语句是正确的___C___。(信号赋值符号 <= ) A.idata := 32; B.idata <= 16#A0#; (十进制数为:10*16= 160,idata范围为0~127) C.idata <= 16#7#E1;(十进制数为:7*16^1= 112) D.idata := B#1010#;

3.大规模可编程器件主要有FPGA、CPLD两类,下列对FPGA结构与工作原理的描述中,正确的是___C___。 A.FPGA是基于乘积项结构的可编程逻辑器件; (FPGA芯片基于查找表的可编程逻辑结构) B.FPGA是全称为复杂可编程逻辑器件; (FPGA 现场可编程逻辑门阵列,CPLD才是复杂可编程逻辑器件) C.基于SRAM的FPGA器件,在每次上电后必须进行一次配置; D.在Altera公司生产的器件中,MAX7000系列属FPGA结构。 (MAX7000系列属CPLD结构) 4.进程中的变量赋值语句,其变量更新是___A___。 (变量(variable)是立即完成的,信号(signal)有延时) A.立即完成; B.按顺序完成; C.在进程的最后完成; D.都不对。 5.VHDL语言是一种结构化设计语言;一个设计实体(电路模块)包括实体与结构体两部分,结构体描述___D___。(结构体实现实体的功能,通过对实体的逻辑功能进行描述) A.器件外部特性; B.器件的综合约束; C.器件外部特性与内部功能; D.器件的内部功能。 6.CASE语句是___A___。(case语句时顺序语句中最重要最常用的顺序语句) A. 顺序语句 B. 并行语句 C. 其它 D.组合逻辑控制电路语句 7. LIBRARY ___A___; --库的声明 USE IEEE.STD_LOGIC_1164.ALL; --库的引用,引用IEEE库中的std_logic_1164中的所有项目A. IEEE B. STD C.WORK D.ENTITY counter IS

proteus元器件对照表

proteus元器件对照表 1.Analog Ics Amplifier : 放大器 Comparators: 比较器 Display Drivers: 显示驱动器 Filters: 滤波器 Miscellaneous: 混杂器件 Regulators: 三端稳压器 Timers: 555定时器 Voltage References: 参考电压 2.Capacitors: Animated: 可显示充放电电荷电容 Audio Grade Axial: 音响专用电容 Axial Lead polypropene 径向轴引线聚丙烯电容 Axial Leda polystyrene 径向轴引线聚苯乙烯电容Ceramic Disc 陶瓷原片电容 Decoupling Disc 解耦圆片电容 Generic 普通电容 High Temp Radial 高温径向电容 High temp Axial Electrolytic 高温径向电解电容Metallised Polyester Film 金属聚酯膜电容 Metallised polypropene 金属聚丙烯电容 Metallised polypropene Film 金属聚丙烯莫电容Miniture Electorlytic 微型电解电容 Multilayer Metallised Polyester Film 多层金属聚酯膜电容

Mylar Film 聚酯膜电容 Nicket Barrier 溴删电容 Non Polarised 无极性电容 Polyester Layer 聚酯层电容 Radial Electrolytic 径向电解电容Tantalum Bead 树脂浊刻电容 Variable 可变电容 VX Axial Electrolytic VX 轴电解电容 3.CMOS 4000 series Adders 加法器 buffers&Drivers 缓冲和驱动器Comparators 比较器 Counters 计数器 Decoders 译码器 Encoders 编码器 Flip-Flops&Latches 触发器和锁存器Frequency Dividers&Timer 分频和定时器Gates & Inverters 门电路和反相器Memory 存储器 Misc.Logic 混杂逻辑电路 Mutiplexers 数据选择器 Multivibrators 多谐振荡器 Phase_Locked Loops(PLL) 锁相环Registors 寄存器 Signal Switcher 信号开关 4.Connectors 接头

C#自定义控件实现控件随窗口大小改变

1.新建用户控件,取名MyForm。 2.将默认的UserControl改成Form 3.在类中添加以下代码 private float X, Y; //获得控件的长度、宽度、位置、字体大小的数据 private void setTag(Control cons)//Control类,定义控件的基类 { foreach (Control con in cons.Controls) { con.Tag = con.Width + ":"+ con.Height + ":"+ con.Left + ":"+ con.Top + ":" + con.Font.Size;//获取或设置包含有关控件的数据的对象

if (con.Controls.Count > 0) setTag(con);//递归算法 } } private void setControls(float newx, float newy, Control cons)//实现控件以及字体的缩放 { foreach (Control con in cons.Controls) { string[] mytag = con.Tag.ToString().Split(new char[] { ':' }); float a = Convert.ToSingle(mytag[0]) * newx; con.Width = (int)a; a = Convert.ToSingle(mytag[1]) * newy; con.Height = (int)(a); a = Convert.ToSingle(mytag[2]) * newx; con.Left = (int)(a); a = Convert.ToSingle(mytag[3]) * newy; con.Top = (int)(a); Single currentSize = Convert.ToSingle(mytag[4]) * newy; con.Font = new Font(https://www.doczj.com/doc/b3519670.html,, currentSize, con.Font.Style, con.Font.Unit); if (con.Controls.Count > 0) { setControls(newx, newy, con);//递归 } } } private void MyForm_Resize(object sender, EventArgs e) { float newx = (this.Width) / X;//当前宽度与变化前宽度之比 float newy = this.Height / Y;//当前高度与变化前宽度之比 setControls(newx, newy, this); this.Text = this.Width.ToString() + ""+ this.Height.ToString(); //窗体标题显示长度和宽度

SQL_用户自定义的数据类型、规则、默认

用户自定义的数据类型、默认值、规则 一、用户自定义的数据类型 用户自定义数据类型可看做是系统数据类型的别名。 在多表操作的情况下,当多个表中的列要存储相同类型的数据时,往往要确保这些列具有完全相同的数据类型、长度和为空性(数据类型是否允许为空)。例如,对于student数据库中表student、grade和course三张表的xh,kh两个列必须具有相同的数据类型。 创建用户自定义数据类型时首先应考虑如下三个属性: (1)数据类型名称 (2)新数据类型所依据的系统数据类型(又称为基类型) (3)为空性 如果为空性未明确定义,系统将依据数据库或连接的ANSI NULL 默认设置进行指派。 1、创建用户自定义数据类型的方法如下: (1)利用企业管理器定义 (2)利用SQL命令定义数据类型 在SQL Server中,通过系统存储过程实现用户数据类型的定义。 语法格式如下: sp_addtype [@typename=] type, /*自定义类型名称*/ [@phystype=] system_data_type /*基类型*/ [,[@nulltype=] null_type /*为空性*/

[,[@owner=] owner_name] /*创建者或所有者*/ 其中: type:用户自定义数据类型的名称。 System_data_type:用户自定义数据类型所依据的基类型。如果参数中嵌入有空格或标点符号,则必须用引号将该参数引起来。 null_type:指明用户自定义数据类型处理空值的方式。取值可为’NULL’、’NOT NULL’、’NONULL’三者之一(注意:必须用单引号引起来)。如果没有用sp_addtype显式定义null_type,则将其设置为当前默认值,系统默认值一般为’NULL’。 例:定义学号字段的数据类型 sp_addtype ’student_xh’,’char(4)’,’not null’ 2、删除用户自定义数据类型 (1)利用企业管理器 (2)利用SQL语句 语法格式如下: sp_droptype [@typename=] type 其中type为用户自定义数据类型的名称,应用单引号括起来。 例:删除student_xh用户自定义数据类型 sp_droptype ’student_xh’ 说明: (1)如果在表定义内使用某个用户定义的数据类型,或者将

相关主题
文本预览
相关文档 最新文档