小编Qiu*_*Qiu的帖子

如何使Quartus II编译速度更快

我正在使用Altera Quartus 2来做一个自定义的8位处理器,并且需要永远在我的笔记本电脑上进行编译.我只是使用模拟并在原理图(框图)和VHDL中制作我的处理器.现在编译需要大约10分钟,这是一个痛苦,因为我更多的是在项目的调试阶段,我必须修复内部时间并进行很多很少的更改,看看会发生什么.

我实际上并没有把它放在FPGA上,所以我需要"fitter"和"assembler"的编译阶段吗?

我可以更改一个lpm_ram_dq的内存文件的内容并在模拟中测试它而无需重新编译吗?

总之,任何人都知道如何使其编译更快?

vhdl quartus

6
推荐指数
2
解决办法
1万
查看次数

通过Verilog VPI将256位线路传递给C功能

我在Verilog中有256位值:

reg [255:0] val;
Run Code Online (Sandbox Code Playgroud)

我想定义一个使用VPI调用外部C的系统任务$ foo,所以我可以像这样调用$ foo:

$foo(val);
Run Code Online (Sandbox Code Playgroud)

现在,在C定义函数"富",我不能简单地读取参数作为一个整数(PLI_INT32),因为我有太多的位,以适应在其中的一个.但是,我可以将参数作为字符串读取,这与字节数组相同.这是我写的:

static int foo(char *userdata) {
  vpiHandle systfref, args_iter, argh;
  struct t_vpi_value argval;
  PLI_BYTE8 *value;

  systfref = vpi_handle(vpiSysTfCall, NULL);
  args_iter = vpi_iterate(vpiArgument, systfref);

  argval.format = vpiStringVal;
  argh = vpi_scan(args_iter);
  vpi_get_value(argh, &argval);
  value = argval.value.str;

  int i;

  for (i = 0; i < 32; i++) {
    vpi_printf("%.2x ", value[i]);
  }
  vpi_printf("\n");

  vpi_free_object(args_iter);
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

如您所见,此代码将参数作为字符串读取,然后打印出字符串中的每个字符(也称为字节).这几乎完美.但是,该字节00始终被读取为20.例如,如果我按如下方式分配Verilog reg:

 val = 256'h000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f;
Run Code Online (Sandbox Code Playgroud)

并使用它调用它$foo(val),然后C函数在模拟时打印它:

VPI: 20 01 02 …
Run Code Online (Sandbox Code Playgroud)

c verilog

6
推荐指数
1
解决办法
1445
查看次数

定义包内的接口

IEEE Std 1800-2012中,我们可以找到包的描述和这些信息:

类型,网络,变量,任务,函数,序列,属性和检查器可以在包中声明

我想知道,如果有任何特殊原因导致无法在包内定义接口?在我看来它可能是有用的,但显然标准的创建者不会同意.

system-verilog

6
推荐指数
1
解决办法
3221
查看次数

Laravel Response::download() 在 Laravel 中显示图像

所以我想出了两种在laravel 5. 第一种方式:显示图像我有一个路线(例如loadFile/profil/{profilID}/main),它返回:

return Response::download($filepath)
Run Code Online (Sandbox Code Playgroud)

我的图像存储在存储文件夹中,因此我无法通过 url 访问它们,因为:www.domain.com/sotrage/files/...显然不起作用。

另一种可能性是将图像存储在公共文件夹中并通过它们的 url 访问它们。

我的问题:我应该使用两种可能性中的哪一种,以及在 Laravel 中存储图像的最佳实践是什么。

php image file laravel-5

6
推荐指数
2
解决办法
2万
查看次数

穿线很多会导致颠簸吗?

如果每个新线程想要访问内存(在我的情况下特别是相同的数据库)并在其生命周期内执行读/写操作,那么线程是否会导致颠簸?

我认为这是真的.如果我的假设是正确的,那么最大化CPU利用率的最佳方法是什么?我如何确定某些特定数量的线程将提供良好的CPU利用率?

如果我的假设是错误的,请做适当的插图让我清楚地了解情景.

multithreading cpu-usage

6
推荐指数
1
解决办法
1021
查看次数

如何在 UIImageView Swift 中使用 WebP 图像

我想在 UIImageView 我的 ios 项目中使用 webp 图像,该项目采用 Swift 语言。

我尝试使用Matt Thompson 库 ,但它不适用于 Swift 项目。我已经导入了框架并完成了所有必需的任务,但有很多链接错误。

如何在 swift 代码中使用 UIImageView 中的 webp Image?

uiimageview ios webp swift

6
推荐指数
2
解决办法
2万
查看次数

如何在使用 pdfkit.from_string() 生成的 pdf 中添加换行符?

我尝试使用 pdfkit 从字符串生成 pdf 文件。但是,在结果中,所有换行符都\n将被忽略。因此,我得到了一个 pdf 文件,其中的字符串被打印为单个句子。例如:

import pdfkit
s = "Some text\n"
s += "Ok, let's add something more\n"
s += "And more..."
pdfkit.from_string(s,"file.pdf",{'encoding':'utf-8'})
Run Code Online (Sandbox Code Playgroud)

以下代码会产生以下输出(即包含以下文本的 pdf 文件):

一些文字 好的,让我们添加更多内容 还有更多...

然而,这就是我想要实现的目标:

一些文字

好的,让我们添加更多内容

和更多...

python pdf pdfkit

6
推荐指数
1
解决办法
2731
查看次数

Modelsim 和 GHDL 无法将 vhdl 用户定义的信号类型转储到 vcd 中?

我正在尝试从由 modelsim 或 ghdl 执行的模拟中转储内部信号。一切正常使用:

对于modelsim,添加vhdl源,然后编译:

vsim -novopt work.uut_testbench
vcd file ../uut.vcd;
vcd limit 50000000;
vcd add -r /uut_testbench/uut_core/*;
run 6000
quit -sim
Run Code Online (Sandbox Code Playgroud)

对于 GHDL

ghdl -i --ieee=synopsys --warn-no-vital-generic --workdir=work --work=work ./uut*.vhd 
ghdl -m --ieee=synopsys --warn-no-vital-generic --workdir=work --work=work uut_testbench
./uut_testbench --stop-time=6000ns --vcd=../uut.vcd
Run Code Online (Sandbox Code Playgroud)

我可以看到模拟信号,但不是全部。信号定义为

Type InternalState is (Idle,Valid,Stalled);
Signal sState,sPrevState :InternalState;
Run Code Online (Sandbox Code Playgroud)

从 vcd 中省略。这种行为对于modelsim 和ghdl 很常见。

我可以在 ghdl 生成的 vcd 中看到以下行

$comment sstate is not handled $end
Run Code Online (Sandbox Code Playgroud)

Modelsim 只是悄悄地忽略了这些信号

有解决方法吗?选择?

signals vhdl modelsim ghdl

5
推荐指数
1
解决办法
1916
查看次数

构造对象时对对象的最终引用

说我有一个类的引用,它是最终的像:

public final Mycalss ref;
Run Code Online (Sandbox Code Playgroud)

和MyClass有几个属性(不是最终的).现在,当我像这样构造MyClass对象时:

ref = new MyClass( some arguments);
Run Code Online (Sandbox Code Playgroud)

这是否意味着其他线程可以安全地查看Myclass的内容,因为它是最终引用的?

java

5
推荐指数
1
解决办法
76
查看次数

关于双指针和三指针/双维数组

所以,我正在玩C指针和指针算术,因为我对它们不太满意.我想出了这段代码.

char* a[5] = { "Hi", "My", "Name", "Is" , "Dennis"};
char** aPtr = a; // This is acceptable because 'a' is double pointer
char*** aPtr2 = &aPtr; // This is also acceptable because they are triple pointers
//char ***aPtr2 = &a // This is not acceptable according to gcc 4.8.3, why ?

//This is the rest of the code, the side notes are only for checking
printf("%s\n",a[0]); //Prints Hi
printf("%s\n",a[1]); //Prints My
printf("%s\n",a[2]); //Prints Name
printf("%s\n",a[3]); //Prints Is
printf("%s\n",a[4]); …
Run Code Online (Sandbox Code Playgroud)

c pointers pointer-to-pointer

5
推荐指数
1
解决办法
142
查看次数